The Meaning of Life, the Universe, and Everything.
I was talking to a server owner the other day and i asked him why had he turned off firetick. The server owner replied to me that it was because it would cause major issues with the server so i asked how could it be solved?
The server owner replied to me that mojang had designed the server software to be singlethreaded whereas if it were multithreaded then it'd be able to handle alot more information.
The current way the server works(I think) is every tick the game checks all "fully loaded" chunks for blocks that need updating, such as fire, crops, saplings, etc.
Steps for firetick would be something like:
Does fire spread?
Where does it spread?
Can it spread there?
Does fire extinguisher?
This can lagg the server alot since nothing else can update at this time. (Just explaining for people who might not know)
If this tick was handled on a separate thread the resources would likely take more RAM, but with that you free the rest of the server up.
A downside I can see is that more fire could make fires last longer just because it would have to wait the same time as if the server was lagging due to fire. That being said it would free up resources for other things.
This ought to be applied to not just fire, but Mobs and plant growth as well.
Implementing this would be great and I 100% support this. This could also help improve lagg from changes in light levels as well.
If you look at the last line in first section in the upper right you'll see "Tick: 2.1 ms" - that means that each tick takes 2.1 milliseconds on average, out of a maximum of 50 before the server starts lagging, or only 4.2% of the maximum time - for processing everything that it needs to process, including fires, of which there are likely more of than in vanilla since I added more caves to the Nether and slightly increased the amount of solid ground to offset them, increasing the surface area that fires can generate on.
That said, I did fix the following bug but it only becomes apparent if you move around a lot and I never had any issues in the Nether before I fixed it (I don't explore very far though, a few hundred blocks in all directions from the portal, which from testing still lead to a several fold increase in the number of ticking fire blocks; more significant is the memory used by loading additional chunks, both of which will be amplified on a multiplayer server):
(shamefully for Mojang, a very simple fix is provided - I do not understand why so many bugs like this go unfixed for so long)
Actively spreading fires cause more lag due to light updates but again this sounds more like an anti-griefing measure unless the performance of fires/light updates is really that bad in current versions (I don't play on them so I wouldn't know, aside from general trends; 1.13 is said to be particularly laggy by many and I've also seen reports of issues with 1.14 despite new rendering and lighting engines).