-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
Is your feature request related to a problem? Please describe
In managed mode, a user may want to mark keys as not eligible for garbage collection.
With the following conditions:
KeepNumVersions=MaxInt64
DiscardTs
>KeyTs
deleted
orexpired
key at a higher Ts
A key will be eligible for garbage collection.
Describe the solution you'd like
Expose a method in Entry
that allows users in Managed Mode to set a Never Discard
bit.
// WithNeverDiscard sets merge bit in entry's metadata. This
// prevents the compactor from marking the key eligible for GC.
func (e *Entry) WithNeverDiscard() *Entry {
e.meta = bitMergeEntry // this works -- but could use another bit
return e
}
Describe alternatives you've considered
Allow users to explicitly mark keys eligible for garbage collection when DiscardTs
is unset.
Additional context
This is useful when users want to leverage the Multi-Version
system of BadgerDB in Managed Mode to maintain multiple versions of keys.
Metadata
Metadata
Assignees
Labels
No labels