[Java Edition] Performance Enhancements For Minecraft Servers (Multithreading?)
Performance is a serious issue for servers, and since the release of 1.13 the issues preventing servers from upgrading only seem to rise. Adding multithreading support will allow for Minecraft Servers to be able to upgrade to 1.14, which is known to have issues with chunk loading and lighting.
The inability to use more than one thread is a huge restriction for servers. There are certain processes that can and should be done in parallel, some ideas are below. Server software like Spigot and PaperSpigot has implemented some of these, but others require such far reaching changes to Minecraft that only Mojang can implement it and have it work for everyone.
Some things that should be added include
- multithreaded chunk loading
- multithreaded chunk generation
- per-dimension tick threads, with synchronization on going through a portal
- chunk serialization and gzipping for saving to disk to be done in a separate thread
- an option to make lighting not calculated server side
- all mobs AI should be ticked simultaneously, this includes mob pathing to players and other things
- move as much packet handling as possible to the netty thread
Post is closed for comments.