Datenbankproblem

Hi,

zum wiederholten Mal ist es passiert, daß in der Karte bestimmte Taggings nicht zu sehen waren.

z.B.: 3 kleine Waldstücke http://www.openstreetmap.org/?lat=53.964271&lon=11.059894&zoom=18&layers=M

Der Tip von ‘wambacher’ Tag löschen, hochladen. nach einigen Minuten Tag wieder einfügen und hochladen ebhob das Problem.

Du bist schon ein erfahrener Nutzer. Eigentlich solltest du wissen wie das Rendering bei openstreetmap funktioniert.
Es sind zwei getrennte Datenbanken, welche mittels diffs auf dem gleichen Stand gehalten werden. Hinzu kommt noch das du nicht alleine auf dem Server zugreifst und manchmal auch andere Tiles eher gerendert werden, wenn deine schon da und nur veraltet sind.

Eher nicht.

Es aber wohl so, daß sich das Problem nicht von alleine löst.
BTW, auch das direkte Rendern des Tiles verlief negativ.

Wie hast du denn die Tiles direkt gerendert? das kannst du gar nicht!
Was passiert eigentlich? Wenn eine Veränderung an der Datenbank gemacht wird, erstellt osmosis daraus ein Diff. Dieses Diff wird dann in die Rendergingdatenbank eingetragen und gleichzeitig die davon betroffenen Tiles als veraltet markiert. In Abhängikeit von Alter, Zoomstufe und einiger anderen Dinge bekommt das rendering des Tiles eine Priorität zum neurendering.
Jetzt kann es passieren, dass die Änderung an der DB übsehen wurde. Dadurch wird dein Objekt gar nicht ins Diff übertragen. Bei den Geofabrikextrakten konnte man sowas immer schön sehen. Dort sind auch nach mehreren Tagen bestimmte Objekte nicht gefunden wurde, weil es bei den Diffs ein Problem gab.
Das zweite ist, deine Tiles haben eine geringere Priorität als andere Jobs. Daher werden die Tiles nicht neu erstellt.
Wenn du jetzt die Tiles mit dirty makierst wird das Tile nicht sofort erstellt, sondern du veränderst die Priorität.
Den ersten Fehler kann man nur durch das von dir beschriebene Verfahren beheben. Indem man osmosis die Neuheit vorgaugelt.
Bei den anderen Dingen sollte man abwarten. Eine sehr gute Möglichkeit der Prüfung ist die beiden größten Zoomstufen anzuschauen. Diese Tiles werden in der Regel nicht vorgerendert sondern erst bei Aufruf. Sind sie jedoch einmal da, werden sie nicht gleich wieder neu erstellt. Also nicht das ändern anschauen und weiter ändern, sondern alles fertig machen und dann etwas Zeit lassen wenigstens 5 Minuten und dann kontrollieren.

doch, das geht. mit dem Argument /dirty kann man eine das Tile neu rendern lassen.

Bitte lese nochmals genau was viw geschrieben hat!

Wenn die Warteschlange voll ist, dann hilft “dirty” übrigens nicht, es wird einfach verworfen.

Gruß,
Mondschein

Man kann aber mit /status sehen wann die Tiles gerendert wurden. Somit kannst Du erkennen ob /dirty verarbeitet wurde.

Christian

Danke für die Auskunft.

Die nicht sichtbaren landuse waren schon am Tag zuvor da. Ergo bleibt da nichts anderes übrig, als die beschriebene Aktion zu starten, wenn ich Dich richtig verstanden habe. Oder kann man davon ausgehen, daß sich der Fehler irgendwann von alleine behebt.

Richtig, diese Information ist aber nicht immer ganz aktuell.

Falsch, ob “/dirty” der Auslöser war, lässt sich damit nicht feststellen.

Gruß,
Mondschein

Es ist eigentlich der reine Zufall, bis mal jemand an der kritischen Stelle eine Änderung macht und das so unwissend auspoliert.
Ich glaube aber gelesen zu haben, dass die Daten für Mapnik alle paar Monate mal total ersetzt werden, um genau die hier diskussierten Probleme zu korrigieren.
Der anstehende Lizenzwechsel wäre imho ein prima Zeitpunkt dafür.

Die Allermeissten von euch mit eigener DB haben das Problem eh nicht, da sie die lokale Kopie alle paar Tage/Wochen neu aufbauen und keine Diffs verarbeiten.

Gruss
Walter

Wäre aber eindeutig zu lang. Das /status Argument wäre dann IMHO eine geeignetere Möglichkeit als /dirty, dies zu prüfen, auch wenn dies, wie Mondschein schrieb, nicht immer aktuell ist. Oder eben grundsätzlich nach gut einem Tag die Aktion.

Wenn ich das richtig gelesen und verstanden habe, ist das Problem noch nicht richtig erkannt. Die Lösung Der umständliche Behelf ist aber bekannt (2xiges umtaggen des Objekts).
In dem Ort [1] waren sehr viele MP (type=multipolygon), welche als outer eine Fläche (landuse=residental/commercial/farmyard/industrial), und als inner Gebäude (building=yes) hatte. Nach dem Löschen nur des/der MP verschwand die landuse-Fläche. Es wurde also neu gerendert. (Änderung wurde also nicht übersehen) D.h. es gab ein Diff, nur es war Fehlerhaft!

[1] http://www.openstreetmap.org/?lat=54.08533&lon=9.79403&zoom=15&layers=M

Das changeset war vom 26. Februar 2012, 00:27 Uhr, es wurden 128 MPs gelöscht. Bis heute hat sich das nicht “von selbst” korrigiert (auch nach /dirty markieren der Tiles). Der richtige Weg währe vielleicht den Fehler zu finden (in osmosis??) und zu korrigieren!?

Gruß
Masi