fabric icon indicating copy to clipboard operation
fabric copied to clipboard

Improve data resiliency of PersistentState

Open raoulvdberge opened this issue 1 year ago • 1 comments

Currently, PersistentState is not safe to use because if a crash/unexpected power loss happens and there's a large PersistentState that takes a large amount of time to write to disk, it could end up only being partially written and then fail to deserialize on startup.

This has been fixed in NeoForge via following PR: https://github.com/neoforged/NeoForge/pull/1001

Refined Storage is currently having following PersistentState implementation as a stop-gap solution: https://github.com/refinedmods/refinedstorage2/blob/develop/refinedstorage-platform-common/src/main/java/com/refinedmods/refinedstorage/platform/common/support/AbstractSafeSavedData.java

raoulvdberge avatar Jul 14 '24 00:07 raoulvdberge

As discussed if we make this change it should only apply to mods, and not effect the vanilla states. How we actually determine this is not super clear to me though.

modmuss50 avatar Jul 14 '24 00:07 modmuss50