Re: [Talk-de] Liste aller Grenzrelationen der Staaten - L ücken in Diffs
On Mon, 12 Oct 2009 09:23:29 +0200, Frederik Ramm frede...@remote.org wrote: Hallo, marcus.wolsc...@googlemail.com wrote: Eine Datenbank, die regelmaessig nur mit diffs gefuettert wird - Ausnahme die minute-replicate-Diffs - wird langsam inkonsistent, weil prinzipbedingt ein ganz kleiner Teil von Edits verloren gehen *kann* bei so einem Diff (auch Stunden- oder Tagesdiffs). Kannst du das näher erläutern? Osmosis erzeugt die Diffs auf dem zentralen Server aufgrund der History-Tabelle mit einem Query, der alles abfragt, was zwischen zwei Zeitpunkten passiert ist. Aufgrund der Transaktionsisolierung bekommt Osmosis aber nur die Daten, die einen Timestamp im fraglichen Fenster haben UND deren Transaktion schon committed ist. Durch diff-Uploads kann es einige sehr lang laufende Transaktionen geben. Beispiel: Das stuendliche Diff fuer den Zeitraum 13:00-14:00 wird um 14:20 erzeugt und hat alle Daten mit Timestamp 13:00-14:00. Wenn um 12:59 eine Transaktion begonnen wird, die bis 13:21 laeuft, so erscheinen um 13:21 ploetzlich lauter Daten in der Datenbank, die einen Timestamp von 12:59 haben. Diese verpasst das Diff, und sie werden auch im 14:00-15:00-Diff nicht drin sein. Fuer alle anderen Arten von diffs gilt das vergleichbar. Danke für die Erklährung Frederik. Mir ist da gerade etwas zu eingefallen: Werden die Changeset-IDs linear hochgezählt? Falls ja könnte man die Query so gestalten: Select * from changesets where id [grösste Chageset ID des letzten Laufes] OR id in [alle nicht aufgetauchten changeset IDs in einem geeignetem Intervall] der zweite Teil könnte möglicherweise genau diese Lücken finden. Marcus ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Liste aller Grenzrelationen der Staaten - L ücken in Diffs
Hallo, marcus.wolsc...@googlemail.com wrote: Werden die Changeset-IDs linear hochgezählt? Ich glaube ja (ist halt eine Postgres-Sequenz). Falls ja könnte man die Query so gestalten: Select * from changesets where id [grösste Chageset ID des letzten Laufes] OR id in [alle nicht aufgetauchten changeset IDs in einem geeignetem Intervall] der zweite Teil könnte möglicherweise genau diese Lücken finden. Grundsaetzlich ja, aber die normalen Diffs gehen nicht nach Changesets, dort werden einfach nodes/ways/relations in einem bestimmten Zeitfenster rausgesucht! Die minute-replicate-Diffs machen es ungefaehr so, wie Du oben beschreiben hast. Die sind relativ neu, einige Hinweise dazu finden sich im Thread hourly diffs are missing edits (too) auf der dev-Liste. Bye Frederik ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] Liste aller Grenzrelationen der Staaten - L ücken in Diffs
Frederik Ramm wrote: Die minute-replicate-Diffs machen es ungefaehr so, wie Du oben beschreiben hast. Die sind relativ neu, einige Hinweise dazu finden sich im Thread hourly diffs are missing edits (too) auf der dev-Liste. Ich habe das mal ausprobiert, läuft ganz gut. Auf dem Server werde ich das wohl so verwenden. Für meine Workstation daheim finde ich es etwas unpraktisch. Der Rechner ist über Nacht aus, dann bin ich ein paar Stunden arbeiten. Dann ist es doch wieder ein größeres Stück das fehlt. Da würden Stunden-Diffs auch reichen. Eventuell wären die auch ein wenig kleiner. Ist bekannt ob es wenn die Minutendiffs rund laufen das auch für Stunden/Tage geben wird? Stephan ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de