Rechner an der Grenze

Ich bin ja seit einiger Zeit sehr begeistert vom OpenStreetMap-Projekt.

Deshalb habe ich mir gestern die Zeit genommen mich mal mit der Datenstruktur des Projekts zu befassen. Alle Kartendaten werden nämlich als XML-Datei zur Verfügung gestellt. Zum Test hatte ich eigentlich vor, eine kleine Umkreissuche zu implementieren, mit der man alle Orte die kleiner einer wählbaren Entfernung von einem Punkt entfernt sind, erhält.

Die Idee war: Schreibe ein XSLT-Stylesheet, das für alle Orte die Information vom Ortstyp (village, town, city), den Namen und den zugehörigen Längen- und Breiteninformation, aus dem planet.osm extrahiert. Auf diesem erheblich kleineren XML könnte dann entweder ein weiteres XSLT arbeiten oder es könnte einfach in eine Datenbank eingelesen werden.

Zum Testen habe ich mir die Daten von Baden-Württemberg geladen, die sind entpackt 386MB groß. Dazu habe ich mir ein kleines Template geschrieben, das die Daten extrahiert. Heute Nacht habe ich die Transformation aber leider nicht mehr durchgeführt bekommen. Mein Rechner mit seinem einen Gigabyte RAM ging sowohl mit Xalan, als auch mit procxslt in die Knie. Selbst der Server im Flur mit 2GB RAM hat es nicht gepackt. Heute hat mein Kumpel fritsch seine Kiste dafür zur Verfügung gestellt. Seine 4GB RAM wurden auch fast komplett genutzt.

Xalan baut einen DOM-Baum, das kostet einfach zu viel Speicher. Eigentlich hätte ich gerne noch Saxon getestet, weil der sequentiell arbeitet, aber leider hat die aktuelle Version wohl einen Bug, der das unmöglich macht. Auf alle Fälle muss eine andere Technik her. Die Ideen gehen vom selbstgebauten Parser, über einen Komplett-Import in eine Datenbank. Das planet.osm mit Daten für den ganzen Planeten ist momentan gepackt etwa 4,4GB groß. Es gibt also noch jede Menge Optimierungsbedarf.

Kommentare

One Kommentar zu “Rechner an der Grenze”

  1. nurich am October 22nd, 2010 00:18

    hehe 4,4 GB … schön wärs ja :)

Schreibe einen Kommentar