public abstract class AbstractCompactionStrategy
extends java.lang.Object
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 |
enabled |
protected boolean |
isActive
pause/resume/getNextBackgroundTask must synchronize.
|
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 |
---|---|
void |
disable() |
void |
enable() |
java.util.List<SSTableReader> |
filterSSTablesForReads(java.util.List<SSTableReader> sstables) |
static java.lang.Iterable<SSTableReader> |
filterSuspectSSTables(java.lang.Iterable<SSTableReader> originalCandidates)
Filters SSTables that are to be blacklisted from the given collection
|
AbstractCompactionTask |
getCompactionTask(java.util.Collection<SSTableReader> sstables,
int gcBefore,
long maxSSTableBytes) |
abstract int |
getEstimatedRemainingTasks() |
abstract AbstractCompactionTask |
getMaximalTask(int gcBefore) |
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.
|
abstract AbstractCompactionTask |
getNextBackgroundTask(int gcBefore) |
java.util.List<ICompactionScanner> |
getScanners(java.util.Collection<SSTableReader> toCompact) |
java.util.List<ICompactionScanner> |
getScanners(java.util.Collection<SSTableReader> sstables,
Range<Token> range)
Returns a list of KeyScanners given sstables and a range on which to scan.
|
abstract AbstractCompactionTask |
getUserDefinedTask(java.util.Collection<SSTableReader> sstables,
int gcBefore) |
boolean |
isAffectedByMeteredFlusher() |
boolean |
isEnabled() |
void |
pause()
For internal, temporary suspension of background compactions so that we can do exceptional
things like truncate or major compaction
|
void |
replaceFlushed(Memtable memtable,
SSTableReader sstable)
Handle a flushed memtable.
|
void |
resume()
For internal, temporary suspension of background compactions so that we can do exceptional
things like truncate or major compaction
|
boolean |
shouldBeEnabled() |
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 final 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 isActive
protected volatile boolean enabled
protected AbstractCompactionStrategy(ColumnFamilyStore cfs, java.util.Map<java.lang.String,java.lang.String> options)
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 AbstractCompactionTask getMaximalTask(int gcBefore)
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(java.util.Collection<SSTableReader> sstables, int gcBefore, long maxSSTableBytes)
public abstract int getEstimatedRemainingTasks()
public abstract long getMaxSSTableBytes()
public boolean isEnabled()
public void enable()
public void disable()
public boolean isAffectedByMeteredFlusher()
public long getMemtableReservedSize()
public void replaceFlushed(Memtable memtable, SSTableReader sstable)
memtable
- the flushed memtablesstable
- the written sstable. can be null if the memtable was clean.public java.util.List<SSTableReader> filterSSTablesForReads(java.util.List<SSTableReader> sstables)
public static java.lang.Iterable<SSTableReader> filterSuspectSSTables(java.lang.Iterable<SSTableReader> originalCandidates)
originalCandidates
- The collection to check for blacklisted SSTablespublic java.util.List<ICompactionScanner> getScanners(java.util.Collection<SSTableReader> sstables, Range<Token> range)
public java.util.List<ICompactionScanner> 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()
Copyright © 2014 The Apache Software Foundation