Open dktapps opened 5 years ago
Since this was written, chunk saving has been split into 3 parts:
1) Terrain is now only written if modified. 2) Biomes are only written if modified. (This will become significantly more important in 1.18 when 3D biomes arrive.) 3) Entities and tiles are always written.
Each of these steps happens independently.
Implementing terrain writing on a per-subchunk basis might be quite a bit more complicated, though.
We've currently barely scratched the surface of performance improvements that can be made to world I/O with LevelDB.
LevelDB is extremely nice (much nicer than Anvil) because it allows reading/writing parts of chunks on disk without accessing the entire thing. This is hugely beneficial because:
The bottom line here is that because of the modularity of LevelDB chunks, it's possible to get substantial I/O performance improvements simply by being more selective about the data we read and write.