Details
-
Task
-
Resolution: Fixed
-
Major
-
None
-
None
Description
CompactKVStore API should take a list of keys to be dropped.
Additionally, we can look to reuse purger code for this type of selective compaction. we can extract the predicate function that purger uses to pick a table for compaction. right now it is only cfg.NeedsPurging. we can make it based on keyID.
we have to make sure before purger runs, any in-flight flushes/compactions have finished (which may be using the keyID we're about to drop).
Attachments
For Gerrit Dashboard: MB-61789 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
213564,25 | MB-61789 magma: Drop encryption keys through compaction | master | magma | Status: MERGED | +2 | +1 |
213687,7 | MB-61789 magma: Refactor blocking purge compaction | master | magma | Status: MERGED | +2 | +1 |
213747,6 | MB-61789 magma: Grab compactionMutex for purger | master | magma | Status: MERGED | +2 | +1 |
213769,3 | MB-61789 magma: Add API to get encryption key ID from table | master | magma | Status: MERGED | +2 | +1 |
213770,3 | MB-61789 magma: Rename stats/methods to expiryPurger | master | magma | Status: MERGED | +2 | +1 |
213775,13 | MB-61789 lsm: Add safety check to continue purging | master | magma | Status: MERGED | +2 | +1 |
213888,11 | MB-61789 magma: Ensure WAL trim drops older encryption keys | master | magma | Status: MERGED | +2 | +1 |
215744,3 | MB-61789 magma: Always do purge compaction to drop encryption keys | master | magma | Status: MERGED | +2 | +1 |
215745,4 | MB-61789 test: No-op compaction if kvstore doesn't use given DEKs | master | magma | Status: MERGED | +2 | +1 |