My thought is it is probably better to store map and user data in a databases, such as sqlite, rather than as a set of flat chunk files. It would require a good bit of refactoring, but there would definitely be a significant performance improvement.
The chunk files store (roughly) one byte per block in a chunk; that's equivalent to 16*128*16, which is 32,768 bytes per chunk.
If you wanted to place an entire chunk within an SQL engine, it would need to be built for performance, which is possible but most users don't build their databases and tables for data loading/saving that much at a time.
In other words, I don't think SQL would be the best choice for world chunks; keep it as flat files in my opinion.
However, SQL for
other data such as player data/inventory, world time, user permissions, etc. could be transferred to SQL since there's little to work with at a single moment; and for what there is, it takes little to no effort to read/write it in SQL.
Also, the whole SQL idea was brought up a while ago, but I forgot by whom and when.
The way I see it, the point of this project is to make up for the design mistakes made with the original Minecraft server.
I don't know much about the how the current map data is stored in mineserver, but at first glance it looks very similar to how the original server was implemented.
Yes, mineserver is meant to be an improvement over the original "vanilla" server. That doesn't mean, however, that we don't implement its concepts and features. Being that it's written in C++, those same concepts and features will run better, since code is being ran natively on the CPU instead of in an interpreter ran in a JVM (Java Virtual Machine).
Besides, many people (including myself) wish to use mineserver, but have the exact same, if not close to, the features that the vanilla server has. And because of how mineserver is being written, it'll be easy to implement our own ideas, even our own recipes for furnaces/workbenches (which means one could make a stone block turn into a diamond pickaxe, if one wanted to, or one could also smelt a sapling and turn it into wood, again if one wanted to).
I'm curious what everyone's thoughts on this issue are.
I'm not trying to harp on you, but I am giving you insights as to why some things are done the way they are, and why some things haven't been done yet.
In fact, that's what these forums are for--to discuss what mineserver is, will be, and what it can do.
Regards,
- Jailout2000