Author |
Message |
05/01/2007 12:54:51
|
harald kotte
Joined: 31/12/2006 15:14:43
Messages: 5
Offline
|
Hallo Marc,
beim Aufruf von http://ws.geonames.org/findNearbyWikipedia
bekomme ich in den letzten Tagen des öfteren die Fehlermeldung
Code:
<status message="java.sql.SQLException: ERROR: canceling statement due to statement timeout" value="12"/>
Auch der direkte Aufruf im Browser liefert solch ein Ergebnis.
Woran kann das liegen?
Viele Grüße
Harald
|
|
|
05/01/2007 17:28:21
|
marc
Joined: 08/12/2005 07:39:47
Messages: 4416
Offline
|
Hallo Harald
Die Fehlermeldung ist ein Datenbanktimeout und tritt auf, wenn eine Query zu lange dauert. Dann wird die Query vorzeitig abgebrochen, um zu verhindern, dass Langläufer den Server lahm legen.
In den Letzten Tagen haben die Zugriffe auf die Reverse-Geocoding Dienste von geonames massiv zugenommen und die beiden Server sind an die Grenzen ihrer Leistungsfähigkeit gestossen. Heute musste ich gar eine IP Adresse blockieren, da zu viele Zugriffe von dort erfolgt sind. Das ist zwar nicht die Idee von geonames, aber es bleibt nichts anderes übrig, wenn jemand sehr viele Zugriffe macht und die Server mit der Last nicht mehr mitkommen.
So wie es aussieht müssen wir uns für die Zukunft etwas anderes überlegen und die kostenlosen Zugriffe auf eine gewisse Zahl pro Tag beschränken. Diejenigen Benutzer, die ein Service Level Agreement mit garantierten Antwortzeiten und garantierter minimaler Verfügbarkeit benötigen, können sich finanziell an den Serverkosten beteiligen und greifen dann auf einen eigenen Server zu.
Da nicht alle Dienste gleich viele Server-Ressourcen verwenden, muss ein Credit System eingeführt werden, bei dem die unterschiedlichen Dienste unterschiedlich viele Credits benötigen. Am wenigsten Ressourcen benötigen die Suchdienste und werden folglich nur wenige Credits pro Zugriff benötigen, während die Reverse-Geocoding Dienste die Server sehr stark in Anspruch nehmen und deshalb 'teurer' sein werden.
Gruss
Marc
|
|
|
|
06/01/2007 17:16:04
|
harald kotte
Joined: 31/12/2006 15:14:43
Messages: 5
Offline
|
Hallo Marc,
Ich bin dabei. Kannst du schon eine Aussage über
entstehende Kosten treffen?
Gruß Harald
|
|
|
07/01/2007 16:59:24
|
noiv
Joined: 10/06/2006 16:36:57
Messages: 19
Location: ExploreOurPla.net
Offline
|
Ich auch,
wenn die Zugriffe dann gleichbleibende Antwortzeiten
rund um die Uhr haben, ist das eine tolle Sache.
--
noiv
|
noiv - ExploreOurPla.net |
|
|
09/01/2007 19:33:43
|
marc
Joined: 08/12/2005 07:39:47
Messages: 4416
Offline
|
Ich bin noch dabei die Faktoren zusammen zustellen, die dabei wichtig sind.
Ich denke es braucht eine Limite für Spitzenzeiten (max Anz Req pro Stunde), eine für den konstanten Load (max Anz Req pro Woche) und eine wie Lange der Service gebraucht wird (Anz Requests). Die Limite braucht es damit nicht jemand mehr Resourcen ziehen kann, als ihm zusteht.
Dann kann aus den drei Parametern eine Mischrechung und eine Kostenabschätzung gemacht werden. Ich denke da an drei Varianten : wenige Zugriffe mit kleinem Load, eine mittlere Anz. Zugriffe mit mittlerem Load und viele Zugriffe mit hohem Load.
Gruss
Marc
|
|
|
|
09/01/2007 22:08:37
|
noiv
Joined: 10/06/2006 16:36:57
Messages: 19
Location: ExploreOurPla.net
Offline
|
Genial wäre ein Fallback, der beim Überschreiten der Limits auf den offenen Server zurückgreift.
So bleiben die Dienste auf den Webseiten im Erfolgsfall benutzbar.
|
noiv - ExploreOurPla.net |
|
|
10/01/2007 06:54:44
|
marc
Joined: 08/12/2005 07:39:47
Messages: 4416
Offline
|
Stimmt, das ist eine gute Idee. Werden wir machen.
Marc
|
|
|
|
21/01/2007 20:00:14
|
marc
Joined: 08/12/2005 07:39:47
Messages: 4416
Offline
|
Ich habe versucht aus den Logfiles abzuleiten wie aufwändig die einzelnen Services sind und wieviele man davon auf
einem einzelnen Server laufen lassen kann, ohne dass die Performance zusammenzufallen beginnt.
Lasst mich wissen falls Ihr interesse daran habt.
Hier die Tabelle, die dabei herausgekommen ist :
Code:
--------------|-------------------|-------------------|-------------------|---------------|
| | | | |
Total Credits | max credits/hour | max credits/day | max credits/week | price in Euro |
| | | | |
--------------|-------------------|-------------------|-------------------|---------------|
| | | | |
500.000 | 1.000 | 10.000 | 50.000 | 20 € |
| | | | |
--------------|-------------------|-------------------|-------------------|---------------|
| | | | |
2.000.000 | 5.000 | 50.000 | 200.000 | 40 € |
| | | | |
--------------|-------------------|-------------------|-------------------|---------------|
| | | | |
5.000.000 | 10.000 | 100.000 | 500.000 | 60 € |
| | | | |
--------------|-------------------|-------------------|-------------------|---------------|
Credits needed for a single web service call :
==============================================
postalCodeSearch 1 credit per request
search 1 credit per request
findNearbyWikipedia 2 credits per request
wikipediaSearch 1 credit per request
findNearestAddress 1 credit per request
gtopo30 0 credits per request
findNearByWeatherJSON 2 credits per request
wikipediaSearch 1 credit per request
findNearbyPlaceName 4 credits per request
rssToGeoRSS 1 per item in feed (for geocoding)
rssToGeoRSS 0 if lat/lng are already included in feed
cities 4 credits per request
fullnearby 4 credits per request
All other web services need 1 credit per request.
If the credits are exceeded within a timeframe further requests will automatically be forwarded to the free server. This means your application will still work, even if you exceed your credit limits, but it will use the free server which does not have the same quality of service.
|
|
|
|
21/01/2007 20:18:06
|
noiv
Joined: 10/06/2006 16:36:57
Messages: 19
Location: ExploreOurPla.net
Offline
|
citiesJSON = 4 Credits
|
noiv - ExploreOurPla.net |
|
|
|