-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Uninline slab when it is overwritten or removed
Currently, Set() and Remove() return overwritten or removed storable. If storable is inlined slab, it is not stored in storage (because it is removed from its parent slab which is in storage), so any future changes to it would be lost. On the other hand, if overwritten or removed storable is SlabIDStorable, any future changes to it can still be persisted because it is in its own slab in storage. This inconsistency (not merged or deployed yet) can cause potential data loss or unexpected behavior if deployed. This commit uninlines inlined slabs that is overwritten or removed, stores them in storage, and returns their SlabID as storable to caller.
- Loading branch information
Showing
4 changed files
with
1,229 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.