[OSM-dev] Reducing osm2pgsql memory usage using a database method

Joerg Ostertag (OSM Munich/Germany) openstreetmap at ostertag.name
Sun Mar 11 09:45:06 GMT 2007


On Saturday 10 March 2007 22:52, Frederik Ramm wrote:
> Hi,
>
> > 1. We can re-write osm2pgsql in c++ and take advantage of dynamic
> > structures e.g std::map, safe formatting and casting
> > boost::lexiacal_cast,  boost::format and more.

I think it would be great if we just could precalculate the planet.osm to a 
geo-sql format and put it on the server for download. If we do this 
automagically after creation of planet.osm it would ease things a lot for 
many people.

> Hate to spoil your fun & don't want to start an advocacy debate here &
> am a C++ user myself BUT (1) hash tables etc. are readily available in
> plain C (glib), and (2) if you need flexibility why don't you do the
> importer in Perl?

There are several perl interface to osm, but working with planet.osm in perl 
 - takes 40 minutes only for reading 
 - takes 100Bytes of memory for each node stored in memory. 
   Which is more than 10 times more than really needed.

And if you try to use something like a tied has ...
 - It only will take 10 hours to complete reading only

Well this doesn't seem to be the right way into the future.
Everything i tried up to now either would need >4GB RAM in the future, or is 
painfully slow.
Oh the values above are with a Hyperthreading 3GHz 2BG RAM Machine.
This is why for GPSDrive i currently tend to precalculate the SQL stuff and 
make it available on the Server and tend to use a C Program in the long term.

-- 
Jörg (Germany, Munich)

http://www.ostertag.name/
TeamSpeak2: ts2.ostertag.name, user: tweety, Channel: "GPS Drive"
irc://irc.oftc.net/#osm
Tel.: +49 89 420950304




More information about the dev mailing list