This is about a new PaperMC project. PaperMC is a set of GPLv3-licensed patches to make the Minecraft Java Edition server software run faster. It's currently used to run most of the medium-large servers, so it is one of the more critical projects in the Minecraft community.
Folia is supposed to take these patches even further with multi-threading. From their announcement today:
---
> As you all know, the Minecraft server is single threaded. As time goes on, it is becoming more clear that performance is bottlenecked by this fact. I have been working on a project, which have been teased here before, for the past six months to multithread the ticking logic.
> This project is called Folia. Folia groups nearby loaded chunks to form an "independent region." Each independent region has its own tick loop, which is ticked at the regular Minecraft tickrate (20TPS). The tick loops are executed on a thread pool in parallel. There is no main thread anymore, as each region effectively has its own "main thread" that executes the entire tick loop. Note that each region does not have a unique thread, but rather shares threads from a configurable threadpool.
> For a server with many spread out players, Folia will create many spread out regions and tick them all in parallel - which will perform significantly better than the current method of ticking all worlds one after the other.
> Folia will be a standalone project from the Paper server software, but will be under the PaperMC organization, as we expect that most plugins need some level of changes to function correctly given the changes. There is no planned release date for either the API or server jar at the moment, that will come when it is ready.
> However, for today we plan to run a public test server to see how many players it can run at smoothly. We will be pushing this server live at 2023-03-11T00:00:00.000Z, and I will be in the
#folia-testing voice channel along with others to answer any other questions. Please forward discussion to the
#folia-testing channel, as I will not be watching general.
Folia is supposed to take these patches even further with multi-threading. From their announcement today:
---
> As you all know, the Minecraft server is single threaded. As time goes on, it is becoming more clear that performance is bottlenecked by this fact. I have been working on a project, which have been teased here before, for the past six months to multithread the ticking logic.
> This project is called Folia. Folia groups nearby loaded chunks to form an "independent region." Each independent region has its own tick loop, which is ticked at the regular Minecraft tickrate (20TPS). The tick loops are executed on a thread pool in parallel. There is no main thread anymore, as each region effectively has its own "main thread" that executes the entire tick loop. Note that each region does not have a unique thread, but rather shares threads from a configurable threadpool.
> For a server with many spread out players, Folia will create many spread out regions and tick them all in parallel - which will perform significantly better than the current method of ticking all worlds one after the other.
> Folia will be a standalone project from the Paper server software, but will be under the PaperMC organization, as we expect that most plugins need some level of changes to function correctly given the changes. There is no planned release date for either the API or server jar at the moment, that will come when it is ready.
> However, for today we plan to run a public test server to see how many players it can run at smoothly. We will be pushing this server live at 2023-03-11T00:00:00.000Z, and I will be in the #folia-testing voice channel along with others to answer any other questions. Please forward discussion to the #folia-testing channel, as I will not be watching general.
> For those technically inclined, here is the general specification for how regions are formed and destroyed: https://gist.github.com/Spottedleaf/924b8ca8df8e3c869fc6daf5...