Allow users to explicitly mark keys as not eligible for Garbage Collection
Author: andrewnguyen22Created Apr 16, 2025Updated Jun 21, 2026
LabelsStale
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.
Source: dgraph-io/badger