-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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=MaxInt64DiscardTs>KeyTsdeletedorexpiredkey 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