Do SavedData IO Saving Async#9408
Conversation
|
Been using this in production for over 3 months with 0 problems, saved data io and portal travel are 2 main natural causes of lag spikes (ticks over 250ms) from what I've seen (I have maps disabled lol). |
|
I'm still in a general conflict with this sorta thing, the lack of means to ensure that we get behind all data saves is generally a nuisance, while 99.999999999999...% of the time this is not going to cause issues, there is still a small technical risk of mangling the data on the disk |
uses a thread per dim store, this is not ideal but generally not a huge risk, maybe we could handle this on the shared IO pool but it's generally not a big deal or likely worth the effort
|
Not 100% on it, but I generally feel that that would be more closer to making me happy here |
We've just started using this patch to solve an issue we reported in #paper-help, world saving no longer lags for us! :) |
|
I've been trying to fix world save lag spikes for a month. This patch fixed the issue, thanks |
|
Closing in favour of #10171 which should be getting merged soon, thank you for your contribution! |
This work stems from a discovery of some fairly heavy main-thread IO writing going on with SavedData coming, at least in the below screenshot, from DimensionDataStorage saving:

We should be able to safely perform async IO writes of this data when doing typical incremental saves. There was some debate about which executor to use, so open to discussion on that and more.
Download the paperclip jar for this pull request: paper-9408.zip