omniscale / imposm3

Imposm imports OpenStreetMap data into PostGIS
http://imposm.org/docs/imposm3/latest/
Apache License 2.0
719 stars 157 forks source link

Experimental RocksDB support #138

Closed olt closed 2 years ago

olt commented 7 years ago

The rocksdb branch provides experimental support for RocksDB as the cache engine.

Reasons for RocksDB

At the moment, Imposm can use LevelDB or the optimized HyperLevelDB fork of LevelDB. HyperLevelDB is faster then LevelDB for the workload of Imposm. However, HyperLevelDB is not actively maintained anymore.

RocksDB is maintained and fast.

Implementation

This branch uses minimal cgo bindings from ledisdb. gorocksdb and similar bindings are not used as they implement the complete RocksDB API and the API changed in the past. This results in compatibility issues between the gorocksdb and RocksDB versions for API functions that are not used by Imposm.

The actual changes to the Imposm code are minimal since the API of Levigo (the LevelDB bindings) and RocksDB are similar.

Issues