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

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)

Ich würde Lastverteilung bevorzugen. Damit geht das Rendern neuer Seiten überall für alle schneller.
Ausfallsicherheit erscheint mir nicht ganz so wichtig, solange die vorgeschalteten Tile-Server überhaupt etwas ausliefern - und das tun sie ja.

Gruss
walter

…und im Ernstfall könnte man immer noch dem überlebenden Tile-Server sagen, er soll alle Cache-Server beliefern.