[Mapnik-de] Neues Datenbanklayout

Sven Geggus lists at fuchsschwanzdomain.de
Mi Okt 24 16:06:26 CEST 2012


Masi Master <masi-master at gmx.de> wrote:

> Wenn man (so wie ich) die Kacheln live rendern will, müsste man das
> Rendern optimieren, und nicht das Erstellen/Updaten der Datenbank.

Das eigentliche rendern ist fast immer schnell genug.

Nach meiner Erfahrung gibt es bei postgresql backends eigentlich nur zwei
Flaschenhälse:

1. Der Renderer muss zu viele Daten wegwerfen, die gar nicht in der zu
   rendernden Bounding Box liegen, was zu einem Flaschenhals in der
   Übertragung zwischen DB und Renderer führt.
2. Die Tabelle enthält zu viele Objekte, die durch einen full Table scan
   eliminiert werden müssen, was die Abfrage innerhalb der Datenbank stark
   verlangsamt.

Punkt 1 hatte ich zum Beispiel mal bei Höhenlinien, die 1-2 Größenordnungen
größere Objekte abgedeckt haben als die zu rendernden Kacheln.
Punkt 2 hat man zum Beispiel in den Zoomleveln 7-10, wenn man aus der
Fläschentabelle alles außer Gebäude selektiert und letztere per Full Table
scan eliminiert werden müssen.

Bei Punkt zwei hilft aber ein partieller Datenbankindex ein wenig. Es gibt
einen osm2pgsql patch von kay Krüger, der genau eine solchen erzeugt.

Wie auch immer, dass man osm2pgsql eigentlich mal neu schreiben müsste ist
ja nun nichts wirklich neues. Aber bis dato ist es halt das einzige tool,
das inkrementelle updates verarbeiten kann.

Gruss

Sven

-- 
"A strategy for rewarding artists that regulates 'copies' makes as much sense
in the digital age as a strategy for controlling greenhouse gases that
regulates breathing." (Lawrence Lessig)
/me is giggls at ircnet, http://sven.gegg.us/ on the Web