Update Strategie gesucht: osm2pgsql extrem langsam im --append Modus ?

Hallo,

Ich arbeite immer noch an der richtigen Updatestrategie für meine Rendertoolchain und komme irgendwie nicht richtig weiter.

Problem: mein Zielgebiet ist grenzüberschreitend, ich kann also keinen kleineren Bereich runterladen. Ich muss mir also mein Zielgebiet aus der europe.osm oder planet.osm selbst ausschneiden.

Das Ausschneiden und einlesen in die DB habe ich soweit aber mittlerweile im Griff, nur mit dem aktuell halten der DB tue ich mir noch etwas schwer. Alle paar Wochen die europe.osm neu runterladen ist keine Option, da ich Änderungen auch kurzfristig einsehen möchte auf meiner Karte.

Also ist die Alternative, die DB aktuell zu halten mit den planet diffs. Das ist allerdings auch nicht so trivial, da die Änderungen ja global sind und ich nur einen Bereich in der DB habe.

Also mache ich es momentan so, dass ich die hourly diffs per cronjob runterlade und dann 1 x pro Woche die OSM Datei aktualisiere mit --apply-change . Aus der letzten Version und der aktuellen Version erstelle ich mir dann mit osmosis und --derive-change die Änderungen, die ich dann mit osm2pgsl --append in die Datenbank einlese.

Dazu hätte ich 2 Fragen: apply-change ist relativ schnell, in der Dokumentation steht aber, dass osm stream und change stream sortiert sein müssen, der change stream ist ja mit osmosis automatisch sortiert … wie sieht das mit dem OSM stream aus ? ist der nach --apply-change zusmmen mit --bb schon sortiert oder muss ich da noch —sort drüberlaufen lassen für das nächste mal, was allerdings dann den Zeitaufwand wieder deutlich erhöhen würde. Anschlussfrage: wenn ich einfach mit --bb meinen Bereich ausschneide aus der europe.osm, ist das Ergebnis dann sortiert ?

Dann eine Frage zu dem einlesen der Änderungen mit osm2pgsql. Die Wochenänderungen bei meinem Gebiet sind gepackt als change.osc.gz etwa 30MB groß. Ich hatte mich schon gefreut, dass die ja gar nicht so viel ist und hoffentlich auch schnell gehen würde. Aber --append scheint extrem langsam zu sei, das einlesen der 30MB Datei dauert ja eine gefühlte Ewigkeit.

Trotz allem scheint mir das vorgehen so das einzige mögliche zu sein um einen Bereich aktuell zu halten. Oder hat jemand noch andere Vorschläge ?

Grüsse

misterboo

Meine Karte zum Testen: http://dev.misterboo.de/map/