diff --git a/SETUP.md b/SETUP.md index 4acaf39..7bc12f8 100644 --- a/SETUP.md +++ b/SETUP.md @@ -14,7 +14,24 @@ Setting up MTSatellite takes six steps: 6. [Start the Minetest server](#markdown-header-start-the-minetest-server) ## Convert world database into interleaved format -**TODO: Write me!** + +MTSatellite operates best if the block data of the world is stored in a LevelDB database with +a key scheme called interleaved. With this key scheme you can pick up sets of neighbored blocks a +lot quicker than with a plain database. +See [Z-order curve](http://en.wikipedia.org/wiki/Z-order_curve) at Wikipedia for grasping the core ideas. +MTSatellite can run on plain LevelDB or SQlite3 world databases but this reduces the performance significantly. +This is also not tested very well and will likely break your database. So do not use it! Stay with the +interleaved format! + +To convert your original plain SQLite3 or LevelDB database (Redis is not supported atm) to the interleaved +LevelDB format you have to use `mtdbconverter`: + + mtdbconverter -source-backend=sqlite /path/to/your/world/map.sqlite /path/to/your/world/map.db + +Depending on the size of your world and the speed this conversion will take some time. +Change `-source-backend=sqlite` to `-source-backend=leveldb` if your world is stored as a LevelDB. +`mtdbconverter` can also be used to convert your world back to the plain key scheme. +See `mtdbconverter --help` for all options. ## Configure the Minetest server **TODO: Write me!**