[Talk-de] Warum immer die ...more OSM coming soon Kacheln

Kai Krueger kakrueger at gmail.com
Mi Aug 19 13:36:33 UTC 2009


Hallo,

da es doch immer wieder Fragen zum rendering gibt wollte ich noch mal 
kurz den ganzen mapnik Prozess beschreiben um hoffentlich etwas Klarheit 
zu schaffen, den die Ergebnisse sind aus Usersicht wirklich nicht immer 
offensichtlich.

Wenn sich ein User eine Gegend auf der Karte anschaut und tiles vom 
Server anfordert, schaut dieser (der Server), ob die tiles bereits 
gerendert wurden und sie auf aktuellen Daten basieren. Wenn sie es tun, 
ist alles in Ordnung und werden an den User uebertragen. Wenn einer der 
tiles zwar vorhanden ist, aber alt ist, versucht der Server die tile 
on-the-fly neu zu renderen vorausgesetzt er ist nicht zu beschaeftigt 
(basierend auf load average). Ansonsten wird sofort die alte tile 
uebertragen und ein Vermerk in einer Warteschlange gemacht das diese 
tile neu gerendert werden muss. Dies geschieht dann im Hintergrund der 
Reihe nach und kann bis zu 10 - 15 Minuten dauern.  Fuer das  on-the-fly 
rendering gibt es jedoch einen 3 Sekunden timeout, nachdem wiederum die 
alte tile herausgegeben wird. Ich weis zwar nicht was der Grenzwert des 
load averages ist, aber ich wuerde sagen das dieser tags ueber fast 
immer ueberschritten ist. Somit sind dann die tiles erst bei der zweiten 
Ansicht ein paar Minuten spaeter aktuell. Wenn eine tile gar nicht 
vorhanden ist, passiert im Prinzip das gleiche nur das der load average 
Grenzwert etwas hoeher ist, da es nicht die Möglichkeit gibt auf eine 
alte tile zurueck zu fallen. Aber auch dieser ist zu Stosszeiten 
vermutlich haeufig ueberschritten, woraufhin man dann die "more OSM 
coming soon..." tiles bekommt.

Das updaten der rendering Datenbank, (sie ist separat von der haupt OSM 
Datenbank), geschieht per "minutely-diff". Somit sind diese Daten  ca. 5 
- 10 Minuten hinter dem Stand der haupt Datenbank.  Beim updaten der 
Datenbank wird gleichzeitig all die tiles die betroffen sind als "dirty" 
markiert, also als alt. Damit werden sie das naechste mal wenn sie 
betrachtet werden, wie oben beschrieben, neu gerendert, jedoch nicht 
vorher. Ausserdem werden nur die zoom stufen 10 und hoeher als dirty 
markiert. Low zoom tiles werden nicht automatisch durch die minutely 
tiles upgedatet und koennen somit ein paar Wochen alt sein.

Mit den minutely diffs gibt es leider jedoch Probleme und es werden 
immer mal wieder Daten verschluckt die in sehr grossen changesets 
hochgeladen wurden. Ausserdem habe ich gehoert das es moeglicherweise 
Probleme mit Multi-Polygonen und den imports der minutely-difs gibt. Des 
weiteren veraendert sich auch gelegentlich das rendering style sheet 
welches dann das neu rendern aller tiles benoetigt. Insofern werden in 
unregelmaessigen Intervallen (alle paar Wochen) die gesamte rendering 
Datenbank neu importiert. Dies dauert jedoch inzwischen fast 24 Stunden 
und bis die Datenbank neu geladen ist koennen in der Zwischenzeit 
keinerlei tiles neu gerendert werden auch fehlende tiles nicht.

Des weiteren, nach einem gesamt Import sind automatisch alle tiles als 
dirty markiert (inklusive der low zoom tiles), somit muessen sie auch 
alle ploetzlich neu gerendert werden. Da das nicht auf einen Schlag 
passieren kann, ist in der Zeit nach einem Import der rendering Server 
vollkommen ueberlastet. Da auch die Warteschlangen eine sehr begrenzte 
Länge von 1000 (meta)tiles haben, werde in der Zeit auch viele tiles die 
eigentlich neu gerendert werden sollten auch im Hintergrund nicht neu 
gerendert und sie muessen ein weiteres mal besucht werden bevor sie 
moeglicherweise gerendert werden. Bis sich das ganze wieder 
einigermassen stabilisiert hat vergehen schon ein paar Tage, sodass nach 
dem Import fast eine ganze Woche vergeht bis sich das ganze wieder 
vollkommen eingependelt hat. In der Zeit ist es dann nicht voraussagbar 
was neu gerendert wird und wann das geschieht.

Wer mehr Informationen erhalten moechte wie es um die Performance des 
tile servers steht kann unter 
http://munin.openstreetmap.org/openstreetmap/tile.openstreetmap.html 
nach schauen. Dort kann man auch sehen wie viele tiles gerade gerendert 
werden und welcher Prozentsatz davon on-the-fly gerendert werden, bzw. 
ob die Queues voll sind.



Insgesamt fuert dieses Komplexe System also zu einigen sichtbaren 
Artefakten in den Karten. In sich schnell aendernden Gegenden, kann es 
immer wieder dazu kommen das benachbarte tiles unterschiedlichen Alters 
sind und somit neue Wege ploetzlich an Tilegrenzen aufhoeren, versetzt 
oder sonst wie inkonsistent sind. Meist sind diese Probleme dann behoben 
wenn man in einer halben Stunde noch mal nachschaut, da dann der 
Hintergrund Prozess die tiles neu gerendert hat. Machmal kann es aber 
eben auch schon mal tage dauern bis alles wieder fluessig laueft und 
uptodate ist. Hinzu kommt dann noch das aus Performance Gruenden (sowohl 
Server als auch client seitig) die tiles zum Teil in Proxy servern und 
im browser cache zwischen gespeichert werden. Aber das beschreibe ich 
jetzt nicht mehr, da sonst die email noch laenger und unuebersichtlicher 
wird.



Ich hoffe das bringt etwas mehr Klarheit in den Prozess wie die mapnik 
Karten auf OSM gerendert werden und die gelegentlichen Artefakte sind 
wohl ein Preis den wir fuer die normalerweise sehr hohe Aktualitaet 
zahlen muessen.

Schoene Gruesse,

Kai

P.S.  Das urspruengliche Probleme des Threads das einer der tileserver 
im browser geblockt ist und somit ca. ein drittel aller tiles mit "more 
OSM coming soon" angezeigt werden haben zwar mit meiner Beschreibung des 
Rendering Prozesses nichts zu tun, dennoch dachte ich das es 
einigermassen in diesen Thread passt und nuetzlich sein kann.

On 22/07/28164 20:59, Adiac wrote:
> Am Sonntag 16 August 2009 09:32:29 schrieb Jens von Elling:
>> In letzter Zeit gibt?s immer wieder diese häßlichen "more OSM coming
>> soon" Kacheln.
> Das kann ich bei der höchsten Zoomstufe bestätigen. Dann wollte ich mir diese
> eine Kachel anschauen, die dann auch nicht da war. Beim klick auf den
> Zurück-Button war ich leider wieder ganz woanders. Dann war aber auch
> die "OSM com..." Kachel weg und alles war okay.
> Im Browser (Firefox) habe ich in den Einstellungen nichts dazu gefunden.
> Auch seltsam finde ich dieses ominöse Ende des Weges, der da eigentlich gar
> nicht aufhört - beim rauszoomen erkennbar:
> http://www.openstreetmap.org/?latP.98606&lon=6.176&zoom
>
> MfG
>
>





Mehr Informationen über die Mailingliste Talk-de