Wenn ich Änderungen in OSM vornehme, wie lange dauert es, bis diese in der Kartenansicht zu sehen sind? Manchen Änderungen sind sehr schnell zu sehen, andere Male dauert es recht lange, bis diese zu sehen sind. Das kann etwas verwirrend sein, da man nicht weiß, ob man alles richtig gemacht hat.

asked 14 Mar '12, 05:48

apmon's gravatar image

apmon
5.9k174455
accept rate: 20%

edited 30 May '13, 00:31

aseerel4c26's gravatar image

aseerel4c26 ♦
28.1k13209483

(14 Mar '12, 07:56) apmon

10

Die Frage bezueglich der Updatefrequenz in OSM ist leider etwas kompliziert und dadurch wohl eine der meist gestellten Fragen ueberhaupt.

Zunaechst einmal ist festzustellen, das Aenderungen sofort in die OSM Datenbank aufgenommen werden und unmittelbar oeffentlich fuer jeden ueber die Daten-API zur Verfuegung stehen. Es gibt kein Review-Prozess der die Daten erst prueft bevor sie akzeptiert werden. Allerdings kann es eine Weile dauern bis die neuen Daten aus der Hauptdatenbank in die diversen auf OSM Daten basierenden Anwendungen uebernommen werden. Dies kann von wenigen Minuten bis mehreren Monaten dauern und ist von Karte zu Karte und Anwendung zu Anwendung sehr verschieden.

Die folgende Antwort bezieht sich insofern nur auf die Standard-Kartenansicht auf OSM.org. (Die Update-Zyklen der Radfahrer-, Transport- und Mapquest Karten, die ebenfalls auf osm.org angezeigt werden, sind bereits verschieden).

Die kurze Antwort auf die Frage ist das in hohen Zoomstufen (Z13 - Z18) die Karte normalerweise innerhalb weniger Minuten bis Stunden neu gerendert wird. Bei niedrigen Zoomstufen (Z4 - Z12) hingegen werden die Updates nur alle paar Wochen neu berechnet, da in diesen Uebersichtskarten die meisten Aenderungen garnicht oder nur kaum sichtbar sind, und die Generierung recht ressourcenintensiv ist. Aenderungen an Kuestenlinien werden ebenfalls nur alle paar Wochen in der Standard Ansicht uebernommen.

Fuer die lange Antwort muss der Prozess etwas genauer erlaeutert werden da dieser etwas kompliziert ist, um zu verstehen wann welche Teile der Karte wieso neu berechnet werden, und somit Aenderungen in der Standard Ansicht erscheinen:

Die Generierung der Karte geschieht von einer Sekundaer- (oder Rendering-) Datenbank. Diese Datenbank muss mit der Hauptdatenbank (in der alle Aenderungen sofort zu sehen sind) synchronisiert werden. Dies geschieht im minuetlichen Rythmus durch so genannte Diff-files mit einer Verzoegerung von ueblicherweise 2 - 3 Minuten nach dem die Aenderungen hoch geladen wurden. In seltenen Faellen kann es durch Stoerung oder Ueberlastung auch in diesem Schritt zu weiteren Verzoegerungen kommen. Die aktuelle Situation kann man im folgenden Graphen betrachten.

Nachdem die Aenderungen in die Renderingdatenbank uebernommen worden sind, muss ermittelt werden welche Teile der Karte (Kartenkachel oder Englisch tiles) sich geaendert haben und somit potenziell neu gerendert werden muessen. Der hierfuer verwendete Algorithmus schaut sich saemtliche Knoten (Nodes) der geaenderten POIs, Wege und Relationen an und ermittelt in welchen Kacheln sich diese Knoten befinden. Diese werden dann zum neu rendern markiert. Obwohl dies in den aller meisten Faellen die korrekten Kacheln ermittelt, kann es in seltenen Faellen (z.B. die Innenflaechen von sehr grossen Polygonen, oder bei Wegen mit sehr weit aus einander liegenden Knoten) dazu kommen das nicht alle betroffenen Kacheln erfasst werden. In diesen Faellen muss manuell interveniert werden (s. Unten) oder gewartet werden bis in der Region weitere Aenderungen die Kacheln zum neu rendern markieren.

Da die Ressourcen des Renderingservers nicht ausreichen um alle geaenderten Kacheln sofort neu zu rendern, werden diese zunaechst nur als veraltet ("dirty") markiert. Nun kommt der Prozess der entscheidet welche Kartenkacheln neu gerendert werden sollen. Dies geschieht auf der Basis von welche Kacheln betrachtet werden. Wenn z.B. jemand die Karte auf osm.org betrachtet und der Browser eine bestimmte Kachel vom Server anfragt, schaut sich der Server an, ob diese Kachel zum neu rendern markiert wurde. Wenn nicht, wird die vorhandene Kachel sofort an den Benutzer ausgeliefert. Wenn doch, sendet der Server eine Anfrage fuer die Kachel an den renderer. Sollte der Renderer diese innerhalb von 3 Sekunden neuberechnet bekommen, wird die aktualisierte Kachel ausgeliefert, ansonsten wird die alte Kachel ausgeliefert und die Kachel wird im Hintergrund weiter gerendert, so das sie beim naechsten Betrachten dann bereits neu gerendert ist.

Allerdings, um den Renderer nicht zu ueberlasten, werden jeweils nur maximal 8 Kacheln gleichzeitig neu gerendert. Sollten mehr Anfragen gleichzeitig herein kommen, werden diese in eine Warteschlange gestellt und dann der Reihe nach im Hintergrund abgearbeitet (wobei Kacheln die noch nie gerendert wurden Prioritaet haben). In diesen Faellen kann es dann zu etwas laengeren Verzoegerungen kommen. Ob es eine Warteschlange gibt, bzw. wie lange diese ist, kann man unter dem folgenden Graphen sehen. In seltenen Faellen kann der Server so ueberlastet sein, das auch die Warteschlange voll ist (maximal 1000 Kacheln). In diesen Faellen werden die ueberschuessigen Renderanfragen verworfen und die Kachel muss erst neu von einem Benutzer betrachtet werden um eine erneute Renderinganfrage in die Warteschlange zu schicken.

Obwohl dieser Prozess normalerweise alle betrachtete Kacheln innerhalb weniger Stunden nach einer Aenderung neuberechnet hat, kann es unter Umstaenden in selten betrachteten Gegenden deutlich laengere updatezyklen geben, da eine Aktuellisierung der Kacheln erst mit dem ersten Betrachten iniziert wird.

Normalerweise funktioniert dieser Prozess relativ gut und die Kacheln erscheinen relativ aktuell. Allerdings kann es gelegentlich zu Problemen kommen. In diesen Faellen gibt es ein paar Moeglichkeiten in den Prozess manuell einzugreifen. Zunaechst einmal kann man schauen wann eine Kachel zu letzt neu berechnet wurde. Wenn man in der betrachteten Karte rechts klickt und "Copy Image URL" anklickt, erhaelt man einen Link in der folgenden Form: http://c.tile.openstreetmap.org/17/68747/43834.png Um das rendering Datum der Kachel zu betrachten kann man ein "/status" anhaengen, also in diesem Beispiel "http://c.tile.openstreetmap.org/17/68747/43834.png/status". Weiterhin kann man manuell ein neu renderd einer Kachel inizieren in dem man ein "/dirty" anhaengt. Also "http://c.tile.openstreetmap.org/17/68747/43834.png/dirty". Allerdings hat diese manuell angeforderte Aktualisierung die gleiche oder geringere Priorität wie das automatische Rendering durch Betrachtung der Kachel. Insofern ist das Vorgehen nur in seltenen Fällen sinnvoll.

Der hier beschriebene Prozess bezieht sich auf die Zoom stufen Z13 - Z18, also die höheren Zoomstufen. Die Übersichts-Zoomstufen (Z4 - Z12) werden nicht automatisch zum neu rendern markiert. Anstelle dessen werden diese ca. einmal im Monat im Hintergrund neu gerendert, unabhaengig ob sie sich geaendert haben oder betrachtet wurden. Ein manuelles neu rendering durch die oben beschriebenen "/dirty" Methode ist jedoch möglich.

Weiterhin werden Küstenlinien getrennt behandelt. Diese werden nicht direkt aus der Datenbank genommen, sondern müssen in einem separaten Schritt vorverarbeitet werden. Diese Vorverarbeitung geschieht nur ca. einmal am Tag, so dass Änderungen an den Küstenlinien in allen Zoomstufen nur mit recht grosser Verzögerung erscheinen. Da die Änderungen nicht in der Renderingdatenbank enthalten sind, hilft hierbei auch das manuelle Neurendern nichts.

Seit Kurzem kommt noch ein weiterer verkomplizierender Schritt hinzu. Da die Nutzung der OSM Karten stark angestiegen ist, kann der Karten-Server alleine nicht mehr die Auslieferung bewaeltigen. Desshalb sind sogenannte Proxyserver vorgeschaltet die die Kacheln fuer eine Zeit zwischen speichern. Diese Zwischenspeicherung kann zwischen ein paar Stunden und bis zu 6 Tagen liegen und haengt davon ab wann eine Kachel sich zu letzt geaendert hat. Wenn eine Kachel im Proxyserver zwischen gespeichert wurde (z.B. durch Betrachtung bevor man eine Aenderung an den Daten vorgenommen hat), erreicht die Anfrage nicht den Haupt-Kachelserver. Somit kann dieser dann nicht das neurendern inizieren wodurch es leider zu deutlich laengeren Verzoegerungen (in seltenen Faellen eben bis zu 6 Tagen) kommen kann.

Sollten also Änderungen nicht sofort in der Karte erscheinen, ist dieses durchaus normal und kein Grund zur Sorge. Sollten sie nach ein paar Tagen immer noch nicht erschienen sein, sollte man zunaechst einmal den lokalen Browser-cache, sowie die Proxyserver umgehen und wenn das immer noch nicht hilft ein manuelles Rendering inizieren.

permanent link

answered 14 Mar '12, 07:55

apmon's gravatar image

apmon
5.9k174455
accept rate: 20%

edited 02 Feb '14, 21:24

Frederik%20Ramm's gravatar image

Frederik Ramm ♦
59.1k72553923

Aus meiner Erfahrung (zumindest mit meinem Browser Firefox) kann ich sagen, dass eine Verzögerung deiner Kartenansicht heutzutage in den hohen Zoomstufen (nah ran, circa Level 16+) meist daran liegt, dass dein Browser eine alte Version der jeweiligen Kartenkacheln in seinem Cache gespeichert hat (falls du diese Stelle zuvor schon einmal betrachtetest). Drücke, üblicherweise, Strg+F5 gleichzeitig, um eine neue Version (unter Umgehung des Caches) vom Kartenserver zu laden.

Ein paar Minuten (meist aber unter 10 min) muss man aber damit warten, sonst ist auch auf dem Server noch keine neue Kartenversion erstellt (und man bekommt wieder eine alte Version geliefert). Das ist das, was apmon in seiner Antwort ausführlich beschrieben hat. Besonders die Sache mit "/dirty" habe ich aber noch nie (in nun circa 1,5 Jahren) gebraucht.

permanent link

answered 02 Feb '14, 22:52

aseerel4c26's gravatar image

aseerel4c26 ♦
28.1k13209483
accept rate: 17%

edited 03 Feb '14, 01:13

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×361
×305
×275
×208
×121

question asked: 14 Mar '12, 05:48

question was seen: 11,368 times

last updated: 12 Mar '14, 09:36

powered by OSQA