Redcrab: The following information comes from OldCoder on IRC:
Regarding the 4GB problem, please take a look at thexyz's fork of minetest - it fixes that problem by switching over to LevelDB. From what I'm being told, it's faster and uses less disk space (40% to 75% of the previous size) than the current SQLite format.
The existing map will have to be migrated over to the newer format, which I am told is not difficult.
That said, if the world doesn't port over properly, it might be in everyone's best interest if you back up the map and reset it with the same seed as we have now, and use worldedit (latest git version only - with fixed metasave/metaload) to copy over everything that's worth saving. That way we all have a mostly complete base to continue building from, but without any possible map corruption from the previous crashes. Plus Moreores will work better then. ;-)
In any case, I highly recommend you put thexyz's fork into use before the map generator blows up again. Oldcoder provided the following versions:
Basic version with just the necessary database changes:
https://github.com/minetest/minetest/tree/db_backendsExtended version of the above with some bugfixes and additional patches:
http://minetest.org/minetestsrc-databases-patched.tar.gzList of patches in that second one: Taoki anaglyphic, Turn Atlas off by default, Prevent corruption by decreasing compiler optimizations, Prevent bind error by setting port reuse, Jordach apples, Turn off superfluous sound card messages, Fix a possible build error
Instructions from Oldcoder for converting the old map to the new format:
<OldCoder> Maybe do a /clearobjects first
[10-29 21:14] <OldCoder> Needs Boost and MySQL libraries to build
[10-29 21:14] <OldCoder> When built
[10-29 21:14] <OldCoder> Shut down world
[10-29 21:14] <OldCoder> Back up world to be safe
[10-29 21:14] <OldCoder> Go to world directory
[10-29 21:14] <OldCoder> Do this:
[10-29 21:14] <OldCoder> Edit world.mt
[10-29 21:14] <OldCoder> Append the line
[10-29 21:14] <OldCoder> backend = sqlite3
[10-29 21:14] <OldCoder> Run the command:
[10-29 21:15] <OldCoder> minetestdir/minetestserver --world `pwd` --migrate leveldb
[10-29 21:15] <OldCoder> If it finishes
[10-29 21:15] <OldCoder> Edit world.mt
[10-29 21:15] <OldCoder> Change the backend setting to leveldb
[10-29 21:16] <OldCoder> Delete the SQLite3 file (which you should have backed up previously)
[10-29 21:16] <OldCoder> Verify there is a map.db folder
[10-29 21:16] <OldCoder> Start the world normally
[10-29 21:16] <OldCoder> When you stop the world for shutdown
[10-29 21:16] <OldCoder> Use SIGINT and allow 1 to 5 minutes
[10-29 21:16] <OldCoder> It may be slower for shutdown
[10-29 21:16] <OldCoder> as there is a separate thread
Oldcoder recommends taking frequent backups of the converted world in addition to keeping a backup of the current SQLite version.
OldCoder says he'd be happy to assist if you need help. Here's his comment regarding how to properly build this fork:
[10-29 21:30] <OldCoder> Here is my cmake command:
[10-29 21:30] <OldCoder> cmake \
[10-29 21:30] <OldCoder> -DCMAKE_BUILD_TYPE=release \
[10-29 21:30] <OldCoder> -DCMAKE_INSTALL_PREFIX=$PREFIX \
[10-29 21:30] <OldCoder> -DRUN_IN_PLACE=0 \
[10-29 21:30] <OldCoder> -DCMAKE_C_FLAGS="-O2 -g -DNDEBUG" \
[10-29 21:30] <OldCoder> -DCMAKE_CXX_FLAGS="-O2 -g -DNDEBUG" \
[10-29 21:30] <OldCoder> -DCMAKE_C_FLAGS_RELEASE="-O2 -g -DNDEBUG" \
[10-29 21:30] <OldCoder> -DCMAKE_CXX_FLAGS_RELEASE="-O2 -g -DNDEBUG" \
[10-29 21:30] <OldCoder> . || exit 1
[10-29 21:30] <OldCoder>
[10-29 21:30] <OldCoder> where PREFIX is set to the appropriate path
[10-29 21:30] <OldCoder> The -g may be omitted
[10-29 21:31] <OldCoder> -DNDEBUG can't be omitted. There's a bug in MT that may kick in unless it is used.
[10-29 21:31] <OldCoder> The -O2 flags may be required to avoid corruption