# Functions
ElideTombstonesOutsideOf is used when tombstones can be elided if they don't overlap with a set of "in use" key ranges.
MakeRangeDelSpanCompactor creates a new compactor for RANGEDEL spans.
MakeRangeKeySpanCompactor creates a new compactor for range key spans.
NewIter creates a new compaction iterator.
NewOutputSplitter creates a new OutputSplitter.
NewRunner creates a new Runner.
NoTombstoneElision is used when no tombstones can be elided (e.g.
SetupTombstoneElision calculates the TombstoneElision policies for a compaction operating on the given version and output level.
SplitAndEncodeSpan splits a span at upToKey and encodes the first part into the table writer, and updates the span to store the remaining part.
# Constants
NoSplit may be returned by an OutputSplitter to indicate that it does NOT recommend splitting compaction output sstables between the previous key and the next key.
SplitNow may be returned by an OutputSplitter to indicate that it does recommend splitting compaction output sstables between the previous key and the next key.
# Structs
Frontiers is used to track progression of a task (eg, compaction) across the keyspace.
Iter provides a forward-only iterator that encapsulates the logic for collapsing entries during compaction.
IterConfig contains the parameters necessary to create a compaction iterator.
IterStats are statistics produced by the compaction iterator.
OutputSplitter is used to determine where to split output tables in a compaction.
OutputTable contains metadata about a table that was created during a compaction.
RangeDelSpanCompactor coalesces RANGEDELs within snapshot stripes and elides RANGEDELs in the last stripe if possible.
RangeKeySpanCompactor coalesces range keys within snapshot stripes and elides RangeKeyDelete and RangeKeyUnsets when possible.
Result stores the result of a compaction - more specifically, the "data" part where we use the compaction iterator to write output tables.
Runner is a helper for running the "data" part of a compaction (where we use the compaction iterator to write output tables).
RunnerConfig contains the parameters needed for the Runner.
Stats describes stats collected during the compaction.
TombstoneElision is the information required to determine which tombstones (in the bottom snapshot stripe) can be elided.
# Type aliases
ShouldSplit indicates whether a compaction should split between output files.
Snapshots stores a list of snapshot sequence numbers, in ascending order.