public class CompactionManager extends java.lang.Object implements CompactionManagerMBean
Modifier and Type | Class and Description |
---|---|
static class |
CompactionManager.AllSSTableOpStatus |
static interface |
CompactionManager.CompactionExecutorStatsCollector |
Modifier and Type | Field and Description |
---|---|
static int |
GC_ALL |
static CompactionManager |
instance |
static java.lang.ThreadLocal<java.lang.Boolean> |
isCompactionManager |
static java.lang.String |
MBEAN_OBJECT_NAME |
static int |
NO_GC |
Constructor and Description |
---|
CompactionManager() |
Modifier and Type | Method and Description |
---|---|
static SSTableWriter |
createWriter(ColumnFamilyStore cfs,
java.io.File compactionFileLocation,
long expectedBloomFilterSize,
long repairedAt,
SSTableReader sstable) |
void |
disableAutoCompaction() |
void |
finishCompactionsAndShutdown(long timeout,
java.util.concurrent.TimeUnit unit) |
void |
forceShutdown()
Shutdowns both compaction and validation executors, cancels running compaction / validation,
and waits for tasks to complete if tasks were not cancelable.
|
void |
forceUserDefinedCompaction(java.lang.String dataFiles)
Triggers the compaction of user specified sstables.
|
int |
getActiveCompactions() |
javax.management.openmbean.TabularData |
getCompactionHistory()
compaction history
|
java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getCompactions()
List of running compaction objects.
|
java.util.List<java.lang.String> |
getCompactionSummary()
List of running compaction summary strings.
|
long |
getCompletedTasks() |
int |
getCoreCompactorThreads()
Returns core size of compaction thread pool
|
int |
getCoreValidationThreads()
Returns core size of validation thread pool
|
int |
getMaximumCompactorThreads()
Returns maximum size of compaction thread pool
|
int |
getMaximumValidatorThreads()
Returns size of validator thread pool
|
int |
getPendingTasks() |
com.google.common.util.concurrent.RateLimiter |
getRateLimiter()
Gets compaction rate limiter.
|
long |
getTotalBytesCompacted() |
long |
getTotalCompactionsCompleted() |
void |
interruptCompactionFor(java.lang.Iterable<CFMetaData> columnFamilies,
boolean interruptValidation)
Try to stop all of the compactions for given ColumnFamilies.
|
void |
interruptCompactionForCFs(java.lang.Iterable<ColumnFamilyStore> cfss,
boolean interruptValidation) |
boolean |
isCompacting(java.lang.Iterable<ColumnFamilyStore> cfses) |
static boolean |
needsCleanup(SSTableReader sstable,
java.util.Collection<Range<Token>> ownedRanges)
Determines if a cleanup would actually remove any data in this SSTable based
on a set of owned ranges.
|
void |
performAnticompaction(ColumnFamilyStore cfs,
java.util.Collection<Range<Token>> ranges,
Refs<SSTableReader> validatedForRepair,
long repairedAt)
Make sure the {validatedForRepair} are marked for compaction before calling this.
|
CompactionManager.AllSSTableOpStatus |
performCleanup(ColumnFamilyStore cfStore,
int jobs) |
void |
performMaximal(ColumnFamilyStore cfStore) |
CompactionManager.AllSSTableOpStatus |
performScrub(ColumnFamilyStore cfs,
boolean skipCorrupted,
boolean checkData,
int jobs) |
CompactionManager.AllSSTableOpStatus |
performSSTableRewrite(ColumnFamilyStore cfs,
boolean excludeCurrentVersion,
int jobs) |
java.util.List<SSTableReader> |
runIndexSummaryRedistribution(IndexSummaryRedistribution redistribution) |
void |
setCoreCompactorThreads(int number)
Allows user to resize maximum size of the compaction thread pool.
|
void |
setCoreValidationThreads(int number)
Allows user to resize maximum size of the compaction thread pool.
|
void |
setMaximumCompactorThreads(int number)
Allows user to resize maximum size of the compaction thread pool.
|
void |
setMaximumValidatorThreads(int number)
Allows user to resize maximum size of the validator thread pool.
|
void |
stopCompaction(java.lang.String type)
Stop all running compaction-like tasks having the provided
type . |
com.google.common.util.concurrent.ListenableFuture<?> |
submitAntiCompaction(ColumnFamilyStore cfs,
java.util.Collection<Range<Token>> ranges,
Refs<SSTableReader> sstables,
long repairedAt) |
java.util.List<java.util.concurrent.Future<?>> |
submitBackground(ColumnFamilyStore cfs)
Call this whenever a compaction might be needed on the given columnfamily.
|
java.util.concurrent.Future<?> |
submitCacheWrite(AutoSavingCache.Writer writer) |
java.util.concurrent.Future<?> |
submitIndexBuild(SecondaryIndexBuilder builder)
Is not scheduled, because it is performing disjoint work from sstable compaction.
|
java.util.List<java.util.concurrent.Future<?>> |
submitMaximal(ColumnFamilyStore cfStore,
int gcBefore) |
java.util.concurrent.Future<?> |
submitUserDefined(ColumnFamilyStore cfs,
java.util.Collection<Descriptor> dataFiles,
int gcBefore) |
java.util.concurrent.Future<java.lang.Object> |
submitValidation(ColumnFamilyStore cfStore,
Validator validator)
Does not mutate data, so is not scheduled.
|
void |
waitForCessation(java.lang.Iterable<ColumnFamilyStore> cfss) |
public static final java.lang.String MBEAN_OBJECT_NAME
public static final CompactionManager instance
public static final int NO_GC
public static final int GC_ALL
public static final java.lang.ThreadLocal<java.lang.Boolean> isCompactionManager
public com.google.common.util.concurrent.RateLimiter getRateLimiter()
public java.util.List<java.util.concurrent.Future<?>> submitBackground(ColumnFamilyStore cfs)
public boolean isCompacting(java.lang.Iterable<ColumnFamilyStore> cfses)
public void forceShutdown()
public void finishCompactionsAndShutdown(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
java.lang.InterruptedException
public CompactionManager.AllSSTableOpStatus performScrub(ColumnFamilyStore cfs, boolean skipCorrupted, boolean checkData, int jobs) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public CompactionManager.AllSSTableOpStatus performSSTableRewrite(ColumnFamilyStore cfs, boolean excludeCurrentVersion, int jobs) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public CompactionManager.AllSSTableOpStatus performCleanup(ColumnFamilyStore cfStore, int jobs) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public com.google.common.util.concurrent.ListenableFuture<?> submitAntiCompaction(ColumnFamilyStore cfs, java.util.Collection<Range<Token>> ranges, Refs<SSTableReader> sstables, long repairedAt)
public void performAnticompaction(ColumnFamilyStore cfs, java.util.Collection<Range<Token>> ranges, Refs<SSTableReader> validatedForRepair, long repairedAt) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.io.IOException
cfs
- ranges
- Ranges that the repair was carried out onvalidatedForRepair
- SSTables containing the repaired ranges. Should be referenced before passing them.InterruptedException,
- ExecutionException, IOExceptionjava.lang.InterruptedException
java.util.concurrent.ExecutionException
java.io.IOException
public void performMaximal(ColumnFamilyStore cfStore) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public java.util.List<java.util.concurrent.Future<?>> submitMaximal(ColumnFamilyStore cfStore, int gcBefore)
public void forceUserDefinedCompaction(java.lang.String dataFiles)
CompactionManagerMBean
forceUserDefinedCompaction
in interface CompactionManagerMBean
dataFiles
- a comma separated list of sstable filename to compactpublic java.util.concurrent.Future<?> submitUserDefined(ColumnFamilyStore cfs, java.util.Collection<Descriptor> dataFiles, int gcBefore)
public java.util.concurrent.Future<java.lang.Object> submitValidation(ColumnFamilyStore cfStore, Validator validator)
public void disableAutoCompaction()
public static boolean needsCleanup(SSTableReader sstable, java.util.Collection<Range<Token>> ownedRanges)
public static SSTableWriter createWriter(ColumnFamilyStore cfs, java.io.File compactionFileLocation, long expectedBloomFilterSize, long repairedAt, SSTableReader sstable)
public java.util.concurrent.Future<?> submitIndexBuild(SecondaryIndexBuilder builder)
public java.util.concurrent.Future<?> submitCacheWrite(AutoSavingCache.Writer writer)
public java.util.List<SSTableReader> runIndexSummaryRedistribution(IndexSummaryRedistribution redistribution) throws java.io.IOException
java.io.IOException
public int getActiveCompactions()
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getCompactions()
CompactionManagerMBean
getCompactions
in interface CompactionManagerMBean
public java.util.List<java.lang.String> getCompactionSummary()
CompactionManagerMBean
getCompactionSummary
in interface CompactionManagerMBean
public javax.management.openmbean.TabularData getCompactionHistory()
CompactionManagerMBean
getCompactionHistory
in interface CompactionManagerMBean
public long getTotalBytesCompacted()
getTotalBytesCompacted
in interface CompactionManagerMBean
CompactionMetrics.bytesCompacted
public long getTotalCompactionsCompleted()
getTotalCompactionsCompleted
in interface CompactionManagerMBean
CompactionMetrics.totalCompactionsCompleted
public int getPendingTasks()
getPendingTasks
in interface CompactionManagerMBean
CompactionMetrics.pendingTasks
public long getCompletedTasks()
getCompletedTasks
in interface CompactionManagerMBean
CompactionMetrics.completedTasks
public void stopCompaction(java.lang.String type)
CompactionManagerMBean
type
.stopCompaction
in interface CompactionManagerMBean
type
- the type of compaction to stop. Can be one of:
- COMPACTION
- VALIDATION
- CLEANUP
- SCRUB
- INDEX_BUILDpublic int getCoreCompactorThreads()
CompactionManagerMBean
getCoreCompactorThreads
in interface CompactionManagerMBean
public void setCoreCompactorThreads(int number)
CompactionManagerMBean
setCoreCompactorThreads
in interface CompactionManagerMBean
number
- New maximum of compaction threadspublic int getMaximumCompactorThreads()
CompactionManagerMBean
getMaximumCompactorThreads
in interface CompactionManagerMBean
public void setMaximumCompactorThreads(int number)
CompactionManagerMBean
setMaximumCompactorThreads
in interface CompactionManagerMBean
number
- New maximum of compaction threadspublic int getCoreValidationThreads()
CompactionManagerMBean
getCoreValidationThreads
in interface CompactionManagerMBean
public void setCoreValidationThreads(int number)
CompactionManagerMBean
setCoreValidationThreads
in interface CompactionManagerMBean
number
- New maximum of compaction threadspublic int getMaximumValidatorThreads()
CompactionManagerMBean
getMaximumValidatorThreads
in interface CompactionManagerMBean
public void setMaximumValidatorThreads(int number)
CompactionManagerMBean
setMaximumValidatorThreads
in interface CompactionManagerMBean
number
- New maximum of validator threadspublic void interruptCompactionFor(java.lang.Iterable<CFMetaData> columnFamilies, boolean interruptValidation)
columnFamilies
- The ColumnFamilies to try to stop compaction upon.interruptValidation
- true if validation operations for repair should also be interruptedpublic void interruptCompactionForCFs(java.lang.Iterable<ColumnFamilyStore> cfss, boolean interruptValidation)
public void waitForCessation(java.lang.Iterable<ColumnFamilyStore> cfss)
Copyright © 2017 The Apache Software Foundation