Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Pruning object tombstones (MystenLabs#14373)
## Description This PR implements the main logic of pruning sui object tombstones. Given the fact that we are using range deletes and `ignore_range_deletions` read option to improve read performance, it makes tombstone deletion tricky because once a tombstone is deleted, we need to make sure that all prior versions of the object must also be deleted. Otherwise, it'll leak object. To not hurt performance much (pending performance evaluation), we decided to use scan-and-point-delete when encounter an object tombstone. In this case, we guarantee that all prior versions are not visible to readers after the deletion. The tombstone pruning logic currently is only tested in unit test. I wanted to enable it in integration test, but the PR becomes messy. It will come up in a follow up PR. ## Test Plan Unit test: this PR Integration test: follow up PR cluster test for performance testing --- If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process. ### Type of Change (Check all that apply) - [ ] protocol change - [ ] user-visible impact - [ ] breaking change for a client SDKs - [ ] breaking change for FNs (FN binary must upgrade) - [ ] breaking change for validators or node operators (must upgrade binaries) - [ ] breaking change for on-chain data layout - [ ] necessitate either a data wipe or data migration ### Release notes
- Loading branch information