Nachbau des Mapnik-Stils mit CartoCSS für OSM.org

Für die Umstellung sicher die richtige Entscheidung. Trotzdem ist jetzt hoffentlich der Zeitpunkt gekommen, mal ein paar Dinge zu bearbeiten, die beim Mapnik-Stil schon länger im Argen liegen. Vor allem hoffe ich doch, dass man von den Franzosen das Rendern der Sportplatzmarkierungen übernimmt.

Man wird sehen muessen wie viel “Manpower” fuer Verbesserungen zur verfuegung steht. Aber der ganze Sinn hinter der Umstellung auf Carto war es Aenderungen einfacher zu machen womit sich hoffentlich wieder jemand findet der das Stylesheet oderdentlich maintained. Zunaechst wird wohl gravitystorm (der ersteller der OpenCycleMap) der Maintainer des Stiles werden, nachdem Steve Chilton der frueher die Hauptarbeit gemacht hat schon eine Weile nicht mehr aktiv zu sein scheint. Aber wenn jemand anderes, mit hilfe von pull requests, zeigt das er gute Arbeit in der Hinsicht erledigt kann es gut sein das die “Maintainer Position” an jemanden weiter gegeben wird.

Der groesste Vorteil von Carto duerft wohl sein, das es dafuer mit TileMill einen semi-wysiwyg Editor gibt, das das Bearbeiten des Styles deutlich erleichtern sollte. Somit wird es hoffentlich auch leichter fuer Drittanbieter den OSM-Style als Basis zu verwenden und dann zum Beispiel das Farbschema an ihre Beduerfnisse einfach anzupassen.

Insofern duerfte hoffentlich in der Tat der Zeitpunkt gekommen sein in dem man Sachen (nach fast einem Jahr Pause) wieder verbessert.

Schaetzungsweise ist die beste Stelle Verbesserungsvorschlaege einzureichen unter https://github.com/gravitystorm/openstreetmap-carto . Wobei “bitte rendert dieses oder jenes obscure tagging feature” erst einmal nicht sonderlich hoch auf der Prioritaetenliste stehen duerfte. Allerdings beherscht der neue Renderingserver nun auch Z19 (auch wenn das auf osm.org noch nicht aktiviert ist), womit wieder deutlich mehr Platz ist um spaeter einmal das rendern von POIs auszubauen, wenn die groesseren Probleme abgearbeitet sind.

In Zukunft auch Z19 anbieten zu können, klingt sehr gut. Es gibt doch einige Bereiche, die in OSM mittlerweile sehr dicht erfasst sind. Dort würde man mit Z19 sicher einiges mehr zeigen/sehen können.

Ansonsten scheint mir die Umstellung auf Carto sehr gut gelungen. Ich konnte bisher keine Probleme finden. Erst mit dem Hinweis von tyr_asd auf http://bl.ocks.org/tyrasd/raw/6164696/ konnte ich einige kleine Unterschiede in der Farbgebung (trunk, primary, tertiary) erkennen. Ansonsten war der Wechsel osm.org mit Carto zu Mapnik-alt (vom Wikimedia-Server) in der Vergleichskarte nur gelegentlich an der Platzierung von Namen und einer leicht anderen Auswahl an POI zu erkennen. Das mag teilweise jedoch auch an unterschiedlichen Datenständen liegen (Beispiel Bonn-Endenich).

Edbert (EvanE)

Klar, aber eine andere Vergleichsgrundlage kenne ich nicht. Zumindest der Mapnik-Stil sollte aber auf dem Toolserver und dem alten OSM-Server der gleiche gewesen sein.

Logisch, alles andere wäre Unsinn. Das Tool hilft dabei sich einen Eindruck vom Fortschritt zu verschaffen. :sunglasses:

Das stimmt, aber mittlerweile sind wir schon bei Version 2.3.2 angelangt, und einige sichtbare Änderungen haben es auch schon in das Style geschafft. Z.B. die etwas dunklere Farbe der primary-roads oder größere Zeilenabstände.

In welchen Intervallen fließen denn die Änderungen am carto-Stil, die schon im github-master sind, in neue Renderings ein? Gibt es da Aussagen von Andy Allan zu?

Geplant ist wohl das es zukuenftig “releases” [1] des Stylesheets gibt. Wie haeufig es neue releases geben wird haengt vermutlich davon ab wie viele und wie wichtig die Aenderungen sind. Da aber bei jeder Aenderung des Stylesheets nun automatisch ein komplettes Neurendern einsetzt (z0 - z12 als pre-rendering und der Rest on demand) und dies die rendering Server dann einige Tage “ueberlastet” wodurch die normalen Updates im generellen Neurendern untergehen und somit nicht die gewohnte Aktuallitaet erzielt werden kann, kann man vermutlich davon ausgehen das es nicht wegen jeder kleinen Aenderung geschieht. Es sollte aber haeufiger geschehen als zuletzt mit dem alten Style, der ja quasi gar nicht mehr aktualisiert wurde.

Direkte Aussagen von Andy sind mir dazu jedoch nicht bekannt. Das wird vermutlich wie das meiste einfach nach Gefuehl gemacht… :wink:

[1] https://github.com/gravitystorm/openstreetmap-carto/releases

Hi,

nachdem das ganze Rendering umgestellt wurde , scheint der /dirty-Trick nicht mehr zu funktionieren. Zumindest sehe ich keine Reaktion. Auch bei /status sehe ich nicht vernünftiges.
Kann das jemand bestätigen?

Weiterhin gibt es anscheinend noch keine Munin-Ausgabe der neuen Rendering-Queue oder die Statistik hängt: http://munin.openstreetmap.org/openstreetmap/yevaud.openstreetmap/renderd_queue.html
Any Infos?

Gruss
walter

Ich habe gerade getestet und nicht ungewöhnliches festgestellt.

Die fehlende Statistik kann ich bestätigen.

sonst weiß ich aber auch nichts.

Die “fehlende” Statistik liegt daran das der Server gewaechselt wurde. Die Kacheln werden nun von Orm gerender und ausgeliefert. Dem entsprechend finden sich die Statistiken nun unter http://munin.openstreetmap.org/openstreetmap/orm.openstreetmap/index.html . Yevaud wird gerade neu installiert und ebenfalls auf Carto umgestellt. Nach dem neu Import wird er dann als zweiter tile Server wieder zur Verfuegung stehen. Im Moment ist so weit ich weis geplant diese unabhaengig von einander zu Betreiben und manche Laender ueber den einen Server und andere Laender ueber den anderen Server laufen zu lassen.

Bezueglich /diry: das sollte im Prinzip schon funktionieren. Da nach dem Stylechange wie oben erwaehnt der komplette Cache “invalidiert” wird und somit alles neu gerendert werden muss, ist der Server damit derzeit etwas ueberlastet und verwirft somit viele /dirty Anfragen ( http://munin.openstreetmap.org/openstreetmap/orm.openstreetmap/renderd_processed.html die dropped Statistik ) Das gilt auch fuer das renderen von sich geaenderten Tiles, wodurch die automatische Aktualisierung der Tiles nicht so gut wie normalerweise funktioniert. Das duerfte sich in ca 1 - 2 Tagen wieder legen wenn der Server ausreichend Kacheln neu gerendert hat um mit der Menge an Anfragen wieder klar zu kommen.

Da das bei jedem Style-Update wieder geschehen wird, ueberlege ich mir gerade in mod_tile / renderd eine weitere Prioritaetsstuffe einzubauen um die Aktualitaet waerend der cache invalidation Phase nicht (oder weniger) zu gefaehrden.

Was ich mich schon lange frage: warum ist die Queue auf eine derart geringe Länge (1000) beschränkt? Wenn nicht gerade massenhaft Niedrigzoomkacheln gerendert werden müssen, trägt Mapnik diese Queue in zwei Minuten ab. Bei höherem Limit (zunächst etwa 10^5; bei positiven Ergebnissen auch mehr) würden weniger Anfragen (dirty) verworfen und stattdessen einfach später ausgeführt.

Der noch gueltige Hauptgrund duerfte sein das es als etwas “verkappte” Prioritisierung fungiert. Wenn der Renderer ueberlastet ist und X% der Anfragen verwirft hat jede Anfrage eine gewisse Wahrscheinlichkeit das just in dem Moment ein Platz in der Queue frei ist und diese somit dann gerendert wird. Sehr beliebte Kacheln senden viele Anfragen an den Renderer und sehen somit eine deutlich erhoehte Wahrscheinlichkeit das wenigstens eine der Anfragen in die Queue rein kommt. Damit werden die viel besuchten Tiles prioritisiert.

Historisch hat es noch einen Performance Grund. Bei jeder Anfrage muss die Queue durchsucht werden um Duplikate zu finden. Da die Queue urspruenglich als linear list umgesetzt war, war die Queue Laenge stark begrenzt. Das ist aber schon seit langem nicht mehr der Fall. Das Limit wurde aber nie angepasst.

Abgesehen davon ist es fraglich wie weit eine verlaengert Queue tatsaechlich etwas bringt. Zumindestens in Faellen wie jetzt, wo die Queue ueber Tage hinweg am Anschlag ist (inklusive waerend der Nacht) gibt es kein wirklich naehe liegendes “Spaeter” auf das man es verschieben kann. Mit der gestiegenen Performance (Orm schaft inzwischen ca 14 metatiles / s) wird die Queue zeitlich gesehen jedoch immer kuerzer. Die 1000 metatile queue ist inzwischen gerade einmal knapp ueber einer Minute. Insofern ist denke ich eine gewisse Erhoehung durch aus sinnvoll und moeglich.

Für Situationen, wo der ganze Cache verworfen werden muss (insbesondere bei Änderungen des Styles), sollte man sich eventuell eine andere Strategie überlegen, wie von dir bereits angedeutet.

@Oli-Wan:
Ich würde die Cache-Größe nicht gleich um den Faktor 10 erhöhen. Eine Verdoppelung auf 2000 könnte man jedoch durchaus mal ausprobieren. Je nach dem, wie sich das in den verschiedenen Situationen (Normalbetrieb / Cache verworfen) auswirkt, kann man dann weiter erhöhen oder ggfs. auch wieder einen niedrigeren Wert einstellen.

Eine Queue-Größe von 2000 würde bei 14 Meta-Tiles/sek einen Backlog von knapp über 2 Minuten noch ohne Ausfälle bewältigen. Wenn man jedoch wie zur Zeit ca. 200 Metatiles pro Sekunde verwerfen muss, dann hilft eine Queue-Größe von 10000 wahrscheinlich auch nicht mehr viel.
Wenn in Zukunft das Verwerfen des Cache öfter notwendig wird, dann hilft wahrscheinlich nur eine Anpassung der Strategie. Dabei stellt sich natürlich die Frage, was wichtiger ist: angefragte Kacheln oder geänderte Kacheln.

Edbert (EvanE)

@amm: Danke für die Erläuterungen, damit wird einiges klarer.

Die behelfsmäßige Priorisierung würde mit einer längeren Queue genauso funktionieren, sobald diese gesättigt ist, nur daß die “erfolgreichen” Requests länger bis zur Ausführung warten müßten. Bis die Queue voll ist, werden zumindest alle noch eingestellt statt verworfen, und gewöhnliche Lastspitzen (also alles außer einer Style-Änderung) könnten besser abgefangen werden. Wobei ich mich frage, ob bei einer Style-Änderung überhaupt alles neu gerendert werden muß - dafür, daß bloß hier und da ein paar Objekte neu auftauchen oder sich einzelne Symbole ändern. Meist sind es ja Änderungen im Detail, die sich in den niedrigen Zoomstufen kaum auswirken. Es wird ja wohl nicht von heute auf morgen das Meer lila werden.

@EvanE: Ich habe nicht einen Faktor 10 vorgeschlagen, sondern einen Faktor 100. Das ist immer noch ein Aufkommen, das im Normalfall in zwei oder drei Stunden abgearbeitet ist. Einen Faktor 2 würde man vermutlich kaum sehen.

Prima, dass man das auch mal erfährt :frowning: Im Wiki steht immer noch Yevaud als Renderer drin und da schaut man dann natürlich nach, wenn es mal klemmt.

Gruss
walter

Sorry, da habe ich falsch gerechnet / unaufmerksam gelesen.
In dem Fall ersetze Faktor 2 durch Faktor 10. Das sollte für einen Test erst einmal genügen. Man weiß ja nie im voraus, ob nicht irgendwelchen unerwarteten Nebeneffekte auftreten.

Edbert (EvanE)

Auf welche Wiki Seite beziehst du dich? (Es gibt wahrscheinlich viele Seiten auf denen etwas falsches steht… ;)) Dann kann man sie vielleicht aendern.

Wobei die Information sich vermutlich in den naechsten Tagen schon wieder aendern werden. Yevaud ist halb durch mit dem re-import und wenn der fertig ist wird Yevaud dann schaetzungsweise auch wieder in den Dienst gestellt. Wie genau die Arbeitsteilung dann zwischen Orm und Yevaud aussehen wird weis ich nicht. Ich weis auch nicht ob das ueberhaupt schon entschieden ist. Wenn sich das System etwas mehr heraus kristalisiert hat, wird man schauen koennen ob man die Statistiken dafuer verbessern kann und die relevanten Information einfacher zugaenglich machen kann.

http://wiki.openstreetmap.org/wiki/Platform_Status
Direkt auf der Wiki-Hauptseite verlinkt.

Gruß,
Mondschein

Ah, der gute alte Platform Status. Den hatte ich ganz vergessen… Naja, ich habe den jetzt geaendert und werde versuchen dran zu denken den auch wieder weiter zu aendern wenn yevaud wieder ebenfalls verwendet wird.

Nicht ganz:
Platform_Status wurde inzwischen angepasst - ich meinte aber Servers - da hatte ich nachgesehen, weil ich dort den neuen Server suchte.

Danke für’s Anpassen und Schwamm drüber.
Walter

ps: wenn ich die lokale IP wüßte, könnte ich es sogar ändern; aber amm wird das schon hinkriegen. :wink:

Man hat generell zwei Optionen:

  • Lastverteilung: Ein Render-Server für Europa/Asien/Afrika,
    Ein Render-Server für Amerika, Ozeanien, Pazifik.
  • Ausfallsicherheit: Beide Render-Server erzeugen die gleichen Daten.

Das sollte man sorgfältig abwägen.
Mit verteilten Tile-Servern hat man ja bereits Erfahrungen, auf denen man ggfs. aufbauen kann.

Edbert (EvanE)