public abstract class AbstractCompactionStrategy
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
AbstractCompactionStrategy.ScannerList |
Modifier and Type | Field and Description |
---|---|
protected ColumnFamilyStore |
cfs |
protected static java.lang.String |
COMPACTION_ENABLED |
protected static long |
DEFAULT_TOMBSTONE_COMPACTION_INTERVAL |
protected static float |
DEFAULT_TOMBSTONE_THRESHOLD |
protected static boolean |
DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION |
protected boolean |
disableTombstoneCompactions |
protected boolean |
isActive
pause/resume/getNextBackgroundTask must synchronize.
|
static java.lang.String |
ONLY_PURGE_REPAIRED_TOMBSTONES |
protected java.util.Map<java.lang.String,java.lang.String> |
options |
protected static java.lang.String |
TOMBSTONE_COMPACTION_INTERVAL_OPTION |
protected static java.lang.String |
TOMBSTONE_THRESHOLD_OPTION |
protected long |
tombstoneCompactionInterval |
protected float |
tombstoneThreshold |
protected static java.lang.String |
UNCHECKED_TOMBSTONE_COMPACTION_OPTION |
protected boolean |
uncheckedTombstoneCompaction |
Modifier | Constructor and Description |
---|---|
protected |
AbstractCompactionStrategy(ColumnFamilyStore cfs,
java.util.Map<java.lang.String,java.lang.String> options) |
Modifier and Type | Method and Description |
---|---|
abstract void |
addSSTable(SSTableReader added) |
SSTableMultiWriter |
createSSTableMultiWriter(Descriptor descriptor,
long keyCount,
long repairedAt,
MetadataCollector meta,
SerializationHeader header,
LifecycleTransaction txn) |
void |
disable() |
void |
enable() |
static java.lang.Iterable<SSTableReader> |
filterSuspectSSTables(java.lang.Iterable<SSTableReader> originalCandidates)
Filters SSTables that are to be blacklisted from the given collection
|
AbstractCompactionTask |
getCompactionTask(LifecycleTransaction txn,
int gcBefore,
long maxSSTableBytes) |
Directories |
getDirectories() |
abstract int |
getEstimatedRemainingTasks() |
abstract java.util.Collection<AbstractCompactionTask> |
getMaximalTask(int gcBefore,
boolean splitOutput) |
abstract long |
getMaxSSTableBytes() |
long |
getMemtableReservedSize()
If not affected by MeteredFlusher (and handling flushing on its own), override to tell MF how much
space to reserve for this CF, i.e., how much space to subtract from `memtable_total_space_in_mb` when deciding
if other memtables should be flushed or not.
|
java.lang.String |
getName() |
abstract AbstractCompactionTask |
getNextBackgroundTask(int gcBefore) |
AbstractCompactionStrategy.ScannerList |
getScanners(java.util.Collection<SSTableReader> toCompact) |
AbstractCompactionStrategy.ScannerList |
getScanners(java.util.Collection<SSTableReader> sstables,
java.util.Collection<Range<Token>> ranges)
Returns a list of KeyScanners given sstables and a range on which to scan.
|
AbstractCompactionStrategy.ScannerList |
getScanners(java.util.Collection<SSTableReader> sstables,
Range<Token> range) |
abstract AbstractCompactionTask |
getUserDefinedTask(java.util.Collection<SSTableReader> sstables,
int gcBefore) |
java.util.Collection<java.util.Collection<SSTableReader>> |
groupSSTablesForAntiCompaction(java.util.Collection<SSTableReader> sstablesToGroup)
Method for grouping similar SSTables together, This will be used by
anti-compaction to determine which SSTables should be anitcompacted
as a group.
|
boolean |
isAffectedByMeteredFlusher() |
void |
pause()
For internal, temporary suspension of background compactions so that we can do exceptional
things like truncate or major compaction
|
abstract void |
removeSSTable(SSTableReader sstable) |
void |
replaceFlushed(Memtable memtable,
java.util.Collection<SSTableReader> sstables)
Handle a flushed memtable.
|
void |
replaceSSTables(java.util.Collection<SSTableReader> removed,
java.util.Collection<SSTableReader> added) |
void |
resume()
For internal, temporary suspension of background compactions so that we can do exceptional
things like truncate or major compaction
|
boolean |
shouldBeEnabled() |
boolean |
shouldDefragment() |
void |
shutdown()
Releases any resources if this strategy is shutdown (when the CFS is reloaded after a schema change).
|
void |
startup()
Performs any extra initialization required
|
static java.util.Map<java.lang.String,java.lang.String> |
validateOptions(java.util.Map<java.lang.String,java.lang.String> options) |
protected boolean |
worthDroppingTombstones(SSTableReader sstable,
int gcBefore)
Check if given sstable is worth dropping tombstones at gcBefore.
|
protected static final float DEFAULT_TOMBSTONE_THRESHOLD
protected static final long DEFAULT_TOMBSTONE_COMPACTION_INTERVAL
protected static final boolean DEFAULT_UNCHECKED_TOMBSTONE_COMPACTION_OPTION
protected static final java.lang.String TOMBSTONE_THRESHOLD_OPTION
protected static final java.lang.String TOMBSTONE_COMPACTION_INTERVAL_OPTION
protected static final java.lang.String UNCHECKED_TOMBSTONE_COMPACTION_OPTION
protected static final java.lang.String COMPACTION_ENABLED
public static final java.lang.String ONLY_PURGE_REPAIRED_TOMBSTONES
protected java.util.Map<java.lang.String,java.lang.String> options
protected final ColumnFamilyStore cfs
protected float tombstoneThreshold
protected long tombstoneCompactionInterval
protected boolean uncheckedTombstoneCompaction
protected boolean disableTombstoneCompactions
protected boolean isActive
protected AbstractCompactionStrategy(ColumnFamilyStore cfs, java.util.Map<java.lang.String,java.lang.String> options)
public Directories getDirectories()
public void pause()
public void resume()
public void startup()
public void shutdown()
public abstract AbstractCompactionTask getNextBackgroundTask(int gcBefore)
gcBefore
- throw away tombstones older than thispublic abstract java.util.Collection<AbstractCompactionTask> getMaximalTask(int gcBefore, boolean splitOutput)
gcBefore
- throw away tombstones older than thispublic abstract AbstractCompactionTask getUserDefinedTask(java.util.Collection<SSTableReader> sstables, int gcBefore)
sstables
- SSTables to compact. Must be marked as compacting.gcBefore
- throw away tombstones older than thispublic AbstractCompactionTask getCompactionTask(LifecycleTransaction txn, int gcBefore, long maxSSTableBytes)
public abstract int getEstimatedRemainingTasks()
public abstract long getMaxSSTableBytes()
public void enable()
public void disable()
public boolean isAffectedByMeteredFlusher()
public long getMemtableReservedSize()
public void replaceFlushed(Memtable memtable, java.util.Collection<SSTableReader> sstables)
memtable
- the flushed memtablesstables
- the written sstables. can be null or empty if the memtable was clean.public static java.lang.Iterable<SSTableReader> filterSuspectSSTables(java.lang.Iterable<SSTableReader> originalCandidates)
originalCandidates
- The collection to check for blacklisted SSTablespublic AbstractCompactionStrategy.ScannerList getScanners(java.util.Collection<SSTableReader> sstables, Range<Token> range)
public AbstractCompactionStrategy.ScannerList getScanners(java.util.Collection<SSTableReader> sstables, java.util.Collection<Range<Token>> ranges)
public boolean shouldDefragment()
public java.lang.String getName()
public void replaceSSTables(java.util.Collection<SSTableReader> removed, java.util.Collection<SSTableReader> added)
public abstract void addSSTable(SSTableReader added)
public abstract void removeSSTable(SSTableReader sstable)
public AbstractCompactionStrategy.ScannerList getScanners(java.util.Collection<SSTableReader> toCompact)
protected boolean worthDroppingTombstones(SSTableReader sstable, int gcBefore)
sstable
- SSTable to checkgcBefore
- time to drop tombstonespublic static java.util.Map<java.lang.String,java.lang.String> validateOptions(java.util.Map<java.lang.String,java.lang.String> options) throws ConfigurationException
ConfigurationException
public boolean shouldBeEnabled()
public java.util.Collection<java.util.Collection<SSTableReader>> groupSSTablesForAntiCompaction(java.util.Collection<SSTableReader> sstablesToGroup)
public SSTableMultiWriter createSSTableMultiWriter(Descriptor descriptor, long keyCount, long repairedAt, MetadataCollector meta, SerializationHeader header, LifecycleTransaction txn)
Copyright © 2016 The Apache Software Foundation