diff --git a/compact.go b/compact.go new file mode 100644 index 0000000..d566af6 --- /dev/null +++ b/compact.go @@ -0,0 +1,18 @@ +package klevdb + +import ( + "context" + "time" +) + +func Compact(ctx context.Context, l Log, age time.Duration, boff DeleteMultiBackoff) error { + updatesBefore := time.Now().Add(-age) + if _, _, err := CompactUpdatesMulti(ctx, l, updatesBefore, boff); err != nil { + return err + } + deletesBefore := time.Now().Add(-age * 2) + if _, _, err := CompactDeletesMulti(ctx, l, deletesBefore, boff); err != nil { + return err + } + return l.GC(0) +}