Package org.apache.cassandra.db
Class ColumnFamilyStore
- java.lang.Object
-
- org.apache.cassandra.db.ColumnFamilyStore
-
- All Implemented Interfaces:
ColumnFamilyStoreMBean
public class ColumnFamilyStore extends java.lang.Object implements ColumnFamilyStoreMBean
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classColumnFamilyStore.RefViewFragmentstatic classColumnFamilyStore.ViewFragment
-
Field Summary
Fields Modifier and Type Field Description longadditionalWriteLatencyNanosSecondaryIndexManagerindexManagerKeyspacekeyspaceTableMetadataRefmetadataTableMetricsmetricjava.lang.StringnameOpOrderreadOrderinglongsampleReadLatencyNanosstatic java.lang.StringSNAPSHOT_DROP_PREFIXstatic java.lang.StringSNAPSHOT_TRUNCATE_PREFIXTableViewsviewManager
-
Constructor Summary
Constructors Constructor Description ColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamilyName, int generation, TableMetadataRef metadata, Directories directories, boolean loadSSTables, boolean registerBookeeping, boolean offline)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddSSTable(SSTableReader sstable)voidaddSSTables(java.util.Collection<SSTableReader> sstables)static java.lang.Iterable<ColumnFamilyStore>all()voidapply(PartitionUpdate update, UpdateTransaction indexer, OpOrder.Group opGroup, CommitLogPosition commitLogPosition)Insert/Update the column family for this key.voidbeginLocalSampling(java.lang.String sampler, int capacity, int durationMillis)begin sampling for a specific sampler with a given capacity.voidcleanupCache()protected static voidclearEphemeralSnapshots(Directories directories)voidclearSnapshot(java.lang.String snapshotName)Clear all the snapshots for a given column family.voidclearUnsafe()For testing.voidcompactionDiskSpaceCheck(boolean enable)java.lang.Iterable<ColumnFamilyStore>concatWithIndexes()booleancontainsCachedParition(DecoratedKey key)static ColumnFamilyStorecreateColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamily, TableMetadataRef metadata, boolean loadSSTables)static ColumnFamilyStorecreateColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamily, TableMetadataRef metadata, Directories directories, boolean loadSSTables, boolean registerBookkeeping, boolean offline)This is only directly used by offline toolsstatic ColumnFamilyStorecreateColumnFamilyStore(Keyspace keyspace, TableMetadataRef metadata, boolean loadSSTables)AbstractCompactionStrategycreateCompactionStrategyInstance(CompactionParams compactionParams)SSTableMultiWritercreateSSTableMultiWriter(Descriptor descriptor, long keyCount, long repairedAt, java.util.UUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, LifecycleNewTracker lifecycleNewTracker)SSTableMultiWritercreateSSTableMultiWriter(Descriptor descriptor, long keyCount, long repairedAt, java.util.UUID pendingRepair, boolean isTransient, MetadataCollector metadataCollector, SerializationHeader header, LifecycleNewTracker lifecycleNewTracker)DecoratedKeydecorateKey(java.nio.ByteBuffer key)voiddisableAutoCompaction()voiddiscardSSTables(long truncatedAt)Discard all SSTables that were created before given timestamp.java.util.concurrent.Future<CommitLogPosition>dumpMemtable()Drops current memtable without flushing to disk.voidenableAutoCompaction()voidenableAutoCompaction(boolean waitForFutures)used for tests - to be able to check things after a minor compactionlongestimatedKeysForRange(Range<Token> range)longestimateKeys()java.util.List<javax.management.openmbean.CompositeData>finishLocalSampling(java.lang.String sampler, int count)static java.util.concurrent.CompletableFuture<java.lang.Boolean>flushLargestMemtable()Finds the largest memtable, as a percentage of *either* on- or off-heap memory limits, and immediately queues it for flushing.CommitLogPositionforceBlockingFlush()CompactionManager.AllSSTableOpStatusforceCleanup(int jobs)voidforceCompactionForTokenRange(java.util.Collection<Range<Token>> tokenRanges)force a major compaction of specified key range in this column familycom.google.common.util.concurrent.ListenableFuture<CommitLogPosition>forceFlush()Flush if there is unflushed data in the memtablescom.google.common.util.concurrent.ListenableFuture<?>forceFlush(CommitLogPosition flushIfDirtyBefore)Flush if there is unflushed data that was written to the CommitLog before @param flushIfDirtyBefore (inclusive).voidforceMajorCompaction()voidforceMajorCompaction(boolean splitOutput)force a major compaction of this column familyCompactionManager.AllSSTableOpStatusgarbageCollect(CompactionParams.TombstoneOption tombstoneOption, int jobs)intgcBefore(int nowInSec)Refs<SSTableReader>getAndReferenceOverlappingLiveSSTables(java.lang.Iterable<SSTableReader> sstables)like getOverlappingSSTables, but acquires references before returningstatic java.lang.RunnablegetBackgroundCompactionTaskSubmitter()java.util.List<java.lang.String>getBuiltIndexes()Returns a list of the names of the built column indexes for current storeClockAndCountgetCachedCounter(java.nio.ByteBuffer partitionKey, Clustering<?> clustering, ColumnMetadata column, CellPath path)static java.lang.StringgetColumnFamilieMBeanName(java.lang.String ks, java.lang.String name, boolean isIndex)java.lang.StringgetColumnFamilyName()Deprecated.java.util.Map<java.lang.String,java.lang.String>getCompactionParameters()java.lang.StringgetCompactionParametersJson()CompactionStrategyManagergetCompactionStrategyManager()ClusteringComparatorgetComparator()java.util.Map<java.lang.String,java.lang.String>getCompressionParameters()Get the compression parametersjava.lang.StringgetCompressionParametersJson()java.lang.DoublegetCrcCheckChance()java.util.List<java.lang.String>getDataPaths()DirectoriesgetDirectories()DiskBoundariesgetDiskBoundaries()doublegetDroppableTombstoneRatio()Get the ratio of droppable tombstones to real columns (and non-droppable tombstones)longgetExpectedCompactedFileSize(java.lang.Iterable<SSTableReader> sstables, OperationType operation)Calculate expected file size of SSTable after compaction.static ColumnFamilyStoregetIfExists(java.lang.String ksName, java.lang.String cfName)Returns a ColumnFamilyStore by ksname and cfname if it exists, null otherwise Differently from others, this method does not throw exception if the keyspace or table does not exist.static ColumnFamilyStoregetIfExists(TableId id)Returns a ColumnFamilyStore by id if it exists, null otherwise Differently from others, this method does not throw exception if the table does not exist.intgetLevelFanoutSize()java.util.Set<SSTableReader>getLiveSSTables()intgetMaximumCompactionThreshold()Gets the maximum number of sstables in queue before compaction kicks offSSTableReadergetMaxSizeFile(java.lang.Iterable<SSTableReader> sstables)intgetMeanEstimatedCellPerPartitionCount()doublegetMeanPartitionSize()intgetMeanRowCount()intgetMinimumCompactionThreshold()Gets the minimum number of sstables in queue before compaction kicks offbooleangetNeverPurgeTombstones()java.util.Collection<SSTableReader>getOverlappingLiveSSTables(java.lang.Iterable<SSTableReader> sstables)IPartitionergetPartitioner()java.util.Map<java.util.UUID,PendingStat>getPendingRepairStats()CachedPartitiongetRawCachedPartition(DecoratedKey key)TableRepairManagergetRepairManager()longgetSnapshotCreationTime(java.lang.String snapshotName)java.util.Map<java.lang.String,Directories.SnapshotSizeDetails>getSnapshotDetails()Refs<SSTableReader>getSnapshotSSTableReaders(java.lang.String tag)int[]getSSTableCountPerLevel()java.lang.Iterable<SSTableReader>getSSTables(SSTableSet sstableSet)java.util.List<java.lang.String>getSSTablesForKey(java.lang.String key)Returns a list of filenames that contain the given key on this nodejava.util.List<java.lang.String>getSSTablesForKey(java.lang.String key, boolean hexFormat)Returns a list of filenames that contain the given key on this nodeTableStreamManagergetStreamManager()static java.lang.StringgetTableMBeanName(java.lang.String ks, java.lang.String name, boolean isIndex)java.lang.StringgetTableName()TrackergetTracker()Package protected for access from the CompactionManager.java.lang.Iterable<SSTableReader>getUncompactingSSTables()intgetUnleveledSSTables()TableWriteHandlergetWriteHandler()booleanhasMisplacedSSTables()Check SSTables whether or not they are misplaced.java.util.List<java.lang.String>importNewSSTables(java.util.Set<java.lang.String> srcPaths, boolean resetLevel, boolean clearRepaired, boolean verifySSTables, boolean verifyTokens, boolean invalidateCaches, boolean extendedVerify)Load new sstables from the given directoryjava.util.List<java.lang.String>importNewSSTables(java.util.Set<java.lang.String> srcPaths, boolean resetLevel, boolean clearRepaired, boolean verifySSTables, boolean verifyTokens, boolean invalidateCaches, boolean extendedVerify, boolean copyData)#Load new sstables from the given directoryvoidinvalidate()call when dropping or renaming a CF.voidinvalidate(boolean expectMBean)voidinvalidateCachedPartition(RowCacheKey key)voidinvalidateCachedPartition(DecoratedKey key)intinvalidateCounterCache(java.util.Collection<Bounds<Token>> boundsToInvalidate)voidinvalidateDiskBoundaries()intinvalidateRowCache(java.util.Collection<Bounds<Token>> boundsToInvalidate)booleanisAutoCompactionDisabled()booleanisCompactionDiskSpaceCheckEnabled()booleanisCounterCacheEnabled()booleanisEmpty()booleanisFilterFullyCoveredBy(ClusteringIndexFilter filter, DataLimits limits, CachedPartition cached, int nowInSec, boolean enforceStrictLiveness)booleanisIndex()true if this CFS contains secondary index databooleanisKeyCacheEnabled()booleanisRowCacheEnabled()booleanisValid()java.lang.Iterable<DecoratedKey>keySamples(Range<Token> range)voidloadNewSSTables()Deprecated.static voidloadNewSSTables(java.lang.String ksName, java.lang.String cfName)See #StorageService.importNewSSTablesfor more infoLifecycleTransactionmarkAllCompacting(OperationType operationType)voidmarkObsolete(java.util.Collection<SSTableReader> sstables, OperationType compactionType)TableMetadatametadata()static TableMetricsmetricsFor(TableId tableId)DescriptornewSSTableDescriptor(java.io.File directory)DescriptornewSSTableDescriptor(java.io.File directory, SSTableFormat.Type format)DescriptornewSSTableDescriptor(java.io.File directory, Version version, SSTableFormat.Type format)voidputCachedCounter(java.nio.ByteBuffer partitionKey, Clustering<?> clustering, ColumnMetadata column, CellPath path, ClockAndCount clockAndCount)booleanrebuildOnFailedScrub(java.lang.Throwable failure)CASSANDRA-5174 : For an index cfs we may be able to discard everything and just rebuild the index when a scrub fails.voidrebuildSecondaryIndex(java.lang.String idxName)static voidrebuildSecondaryIndex(java.lang.String ksName, java.lang.String cfName, java.lang.String... idxNames)CleanupSummaryreleaseRepairData(java.util.Collection<java.util.UUID> sessions, boolean force)promotes (or demotes) data attached to an incremental repair session that has either completed successfully, or failedvoidreload()CompactionManager.AllSSTableOpStatusrelocateSSTables(int jobs)<V> VrunWithCompactionsDisabled(java.util.concurrent.Callable<V> callable, boolean interruptValidation, boolean interruptViews)<V> VrunWithCompactionsDisabled(java.util.concurrent.Callable<V> callable, com.google.common.base.Predicate<SSTableReader> sstablesPredicate, boolean interruptValidation, boolean interruptViews, boolean interruptIndexes)Runs callable with compactions paused and compactions including sstables matching sstablePredicate stoppedCompactionManager.AllSSTableOpStatusscrub(boolean disableSnapshot, boolean skipCorrupted, boolean reinsertOverflowedTTL, boolean alwaysFail, boolean checkData, int jobs)CompactionManager.AllSSTableOpStatusscrub(boolean disableSnapshot, boolean skipCorrupted, boolean checkData, boolean reinsertOverflowedTTL, int jobs)static voidscrubDataDirectories(TableMetadata metadata)Removes unnecessary files from the cf directory at startup: these include temp files, orphans, zero-length files and compacted sstables.ColumnFamilyStore.ViewFragmentselect(com.google.common.base.Function<View,java.lang.Iterable<SSTableReader>> filter)ColumnFamilyStore.RefViewFragmentselectAndReference(com.google.common.base.Function<View,java.lang.Iterable<SSTableReader>> filter)voidsetCompactionParameters(java.util.Map<java.lang.String,java.lang.String> options)Sets the compaction parameters locally for this node Note that this will be set until an ALTER with compaction = {..} is executed or the node is restartedvoidsetCompactionParametersJson(java.lang.String options)Sets the compaction parameters locally for this node Note that this will be set until an ALTER with compaction = {..} is executed or the node is restartedvoidsetCompactionThresholds(int minThreshold, int maxThreshold)Sets the maximum and maximum number of SSTables in queue before compaction kicks offvoidsetCompressionParameters(java.util.Map<java.lang.String,java.lang.String> opts)Set the compression parameters locally for this nodevoidsetCompressionParametersJson(java.lang.String options)voidsetCrcCheckChance(double crcCheckChance)Set new crc check chancevoidsetMaximumCompactionThreshold(int maxCompactionThreshold)Sets the maximum number of sstables in queue before compaction kicks offvoidsetMinimumCompactionThreshold(int minCompactionThreshold)Sets the minimum number of sstables in queue before compaction kicks offvoidsetNeverPurgeTombstones(boolean value)static voidshutdownExecutorsAndWait(long timeout, java.util.concurrent.TimeUnit unit)static voidshutdownPostFlushExecutor()java.util.Set<SSTableReader>snapshot(java.lang.String snapshotName)Take a snap shot of this columnfamily store.java.util.Set<SSTableReader>snapshot(java.lang.String snapshotName, boolean skipFlush, com.google.common.util.concurrent.RateLimiter rateLimiter)Take a snap shot of this columnfamily store.java.util.Set<SSTableReader>snapshot(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, boolean skipFlush)java.util.Set<SSTableReader>snapshot(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, boolean skipFlush, com.google.common.util.concurrent.RateLimiter rateLimiter)booleansnapshotExists(java.lang.String snapshotName)voidsnapshotWithoutFlush(java.lang.String snapshotName)java.util.Set<SSTableReader>snapshotWithoutFlush(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, com.google.common.util.concurrent.RateLimiter rateLimiter)CompactionManager.AllSSTableOpStatussstablesRewrite(boolean excludeCurrentVersion, int jobs)booleansupportsEarlyOpen()com.google.common.util.concurrent.ListenableFuture<CommitLogPosition>switchMemtable()com.google.common.util.concurrent.ListenableFuture<CommitLogPosition>switchMemtableIfCurrent(Memtable memtable)Switches the memtable iff the live memtable is the one providedjava.lang.StringtoString()longtrueSnapshotsSize()voidtruncateBlocking()voidtruncateBlockingWithoutSnapshot()voidupdateSpeculationThreshold()CompactionManager.AllSSTableOpStatusverify(Verifier.Options options)
-
-
-
Field Detail
-
SNAPSHOT_TRUNCATE_PREFIX
public static final java.lang.String SNAPSHOT_TRUNCATE_PREFIX
- See Also:
- Constant Field Values
-
SNAPSHOT_DROP_PREFIX
public static final java.lang.String SNAPSHOT_DROP_PREFIX
- See Also:
- Constant Field Values
-
keyspace
public final Keyspace keyspace
-
name
public final java.lang.String name
-
metadata
public final TableMetadataRef metadata
-
readOrdering
public final OpOrder readOrdering
-
indexManager
public final SecondaryIndexManager indexManager
-
viewManager
public final TableViews viewManager
-
metric
public final TableMetrics metric
-
sampleReadLatencyNanos
public volatile long sampleReadLatencyNanos
-
additionalWriteLatencyNanos
public volatile long additionalWriteLatencyNanos
-
-
Constructor Detail
-
ColumnFamilyStore
public ColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamilyName, int generation, TableMetadataRef metadata, Directories directories, boolean loadSSTables, boolean registerBookeeping, boolean offline)
-
-
Method Detail
-
shutdownPostFlushExecutor
public static void shutdownPostFlushExecutor() throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
shutdownExecutorsAndWait
public static void shutdownExecutorsAndWait(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
reload
public void reload()
-
getBackgroundCompactionTaskSubmitter
public static java.lang.Runnable getBackgroundCompactionTaskSubmitter()
-
getCompactionParameters
public java.util.Map<java.lang.String,java.lang.String> getCompactionParameters()
- Specified by:
getCompactionParametersin interfaceColumnFamilyStoreMBean
-
getCompactionParametersJson
public java.lang.String getCompactionParametersJson()
- Specified by:
getCompactionParametersJsonin interfaceColumnFamilyStoreMBean
-
setCompactionParameters
public void setCompactionParameters(java.util.Map<java.lang.String,java.lang.String> options)
Description copied from interface:ColumnFamilyStoreMBeanSets the compaction parameters locally for this node Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted- Specified by:
setCompactionParametersin interfaceColumnFamilyStoreMBean- Parameters:
options- compaction options map
-
setCompactionParametersJson
public void setCompactionParametersJson(java.lang.String options)
Description copied from interface:ColumnFamilyStoreMBeanSets the compaction parameters locally for this node Note that this will be set until an ALTER with compaction = {..} is executed or the node is restarted- Specified by:
setCompactionParametersJsonin interfaceColumnFamilyStoreMBean- Parameters:
options- compaction options with the same syntax as when doing ALTER ... WITH compaction = {..}
-
getCompressionParameters
public java.util.Map<java.lang.String,java.lang.String> getCompressionParameters()
Description copied from interface:ColumnFamilyStoreMBeanGet the compression parameters- Specified by:
getCompressionParametersin interfaceColumnFamilyStoreMBean
-
getCompressionParametersJson
public java.lang.String getCompressionParametersJson()
- Specified by:
getCompressionParametersJsonin interfaceColumnFamilyStoreMBean
-
setCompressionParameters
public void setCompressionParameters(java.util.Map<java.lang.String,java.lang.String> opts)
Description copied from interface:ColumnFamilyStoreMBeanSet the compression parameters locally for this node- Specified by:
setCompressionParametersin interfaceColumnFamilyStoreMBean- Parameters:
opts- map of string names to values
-
setCompressionParametersJson
public void setCompressionParametersJson(java.lang.String options)
- Specified by:
setCompressionParametersJsonin interfaceColumnFamilyStoreMBean
-
getTableMBeanName
public static java.lang.String getTableMBeanName(java.lang.String ks, java.lang.String name, boolean isIndex)
-
getColumnFamilieMBeanName
public static java.lang.String getColumnFamilieMBeanName(java.lang.String ks, java.lang.String name, boolean isIndex)
-
updateSpeculationThreshold
public void updateSpeculationThreshold()
-
getWriteHandler
public TableWriteHandler getWriteHandler()
-
getStreamManager
public TableStreamManager getStreamManager()
-
getRepairManager
public TableRepairManager getRepairManager()
-
metadata
public TableMetadata metadata()
-
getDirectories
public Directories getDirectories()
-
getDataPaths
public java.util.List<java.lang.String> getDataPaths() throws java.io.IOException- Specified by:
getDataPathsin interfaceColumnFamilyStoreMBean- Throws:
java.io.IOException
-
createSSTableMultiWriter
public SSTableMultiWriter createSSTableMultiWriter(Descriptor descriptor, long keyCount, long repairedAt, java.util.UUID pendingRepair, boolean isTransient, int sstableLevel, SerializationHeader header, LifecycleNewTracker lifecycleNewTracker)
-
createSSTableMultiWriter
public SSTableMultiWriter createSSTableMultiWriter(Descriptor descriptor, long keyCount, long repairedAt, java.util.UUID pendingRepair, boolean isTransient, MetadataCollector metadataCollector, SerializationHeader header, LifecycleNewTracker lifecycleNewTracker)
-
supportsEarlyOpen
public boolean supportsEarlyOpen()
-
invalidate
public void invalidate()
call when dropping or renaming a CF. Performs mbean housekeeping and invalidates CFS to other operations
-
invalidate
public void invalidate(boolean expectMBean)
-
createColumnFamilyStore
public static ColumnFamilyStore createColumnFamilyStore(Keyspace keyspace, TableMetadataRef metadata, boolean loadSSTables)
-
createColumnFamilyStore
public static ColumnFamilyStore createColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamily, TableMetadataRef metadata, boolean loadSSTables)
-
createColumnFamilyStore
public static ColumnFamilyStore createColumnFamilyStore(Keyspace keyspace, java.lang.String columnFamily, TableMetadataRef metadata, Directories directories, boolean loadSSTables, boolean registerBookkeeping, boolean offline)
This is only directly used by offline tools
-
scrubDataDirectories
public static void scrubDataDirectories(TableMetadata metadata) throws StartupException
Removes unnecessary files from the cf directory at startup: these include temp files, orphans, zero-length files and compacted sstables. Files that cannot be recognized will be ignored.- Throws:
StartupException
-
loadNewSSTables
public static void loadNewSSTables(java.lang.String ksName, java.lang.String cfName)See #StorageService.importNewSSTablesfor more info- Parameters:
ksName- The keyspace namecfName- The columnFamily name
-
loadNewSSTables
@Deprecated public void loadNewSSTables()
Deprecated.- Specified by:
loadNewSSTablesin interfaceColumnFamilyStoreMBean
-
importNewSSTables
public java.util.List<java.lang.String> importNewSSTables(java.util.Set<java.lang.String> srcPaths, boolean resetLevel, boolean clearRepaired, boolean verifySSTables, boolean verifyTokens, boolean invalidateCaches, boolean extendedVerify, boolean copyData)#Load new sstables from the given directory- Specified by:
importNewSSTablesin interfaceColumnFamilyStoreMBean- Parameters:
srcPaths- the path to the new sstables - if it is an empty set, the data directories will be scannedresetLevel- if the level should be reset to 0 on the new sstablesclearRepaired- if repaired info should be wiped from the new sstablesverifySSTables- if the new sstables should be verified that they are not corruptverifyTokens- if the tokens in the new sstables should be verified that they are owned by the current nodeinvalidateCaches- if row cache should be invalidated for the keys in the new sstablesextendedVerify- if we should run an extended verify checking all values in the new sstablescopyData- if we should copy data from source paths instead of moving them- Returns:
- list of failed import directories
-
importNewSSTables
public java.util.List<java.lang.String> importNewSSTables(java.util.Set<java.lang.String> srcPaths, boolean resetLevel, boolean clearRepaired, boolean verifySSTables, boolean verifyTokens, boolean invalidateCaches, boolean extendedVerify)Description copied from interface:ColumnFamilyStoreMBeanLoad new sstables from the given directory- Specified by:
importNewSSTablesin interfaceColumnFamilyStoreMBean- Parameters:
srcPaths- the path to the new sstables - if it is an empty set, the data directories will be scannedresetLevel- if the level should be reset to 0 on the new sstablesclearRepaired- if repaired info should be wiped from the new sstablesverifySSTables- if the new sstables should be verified that they are not corruptverifyTokens- if the tokens in the new sstables should be verified that they are owned by the current nodeinvalidateCaches- if row cache should be invalidated for the keys in the new sstablesextendedVerify- if we should run an extended verify checking all values in the new sstables- Returns:
- list of failed import directories
-
rebuildSecondaryIndex
public void rebuildSecondaryIndex(java.lang.String idxName)
-
rebuildSecondaryIndex
public static void rebuildSecondaryIndex(java.lang.String ksName, java.lang.String cfName, java.lang.String... idxNames)
-
createCompactionStrategyInstance
public AbstractCompactionStrategy createCompactionStrategyInstance(CompactionParams compactionParams)
-
getColumnFamilyName
@Deprecated public java.lang.String getColumnFamilyName()
Deprecated.- Specified by:
getColumnFamilyNamein interfaceColumnFamilyStoreMBean- Returns:
- the name of the column family
-
getTableName
public java.lang.String getTableName()
- Specified by:
getTableNamein interfaceColumnFamilyStoreMBean
-
newSSTableDescriptor
public Descriptor newSSTableDescriptor(java.io.File directory)
-
newSSTableDescriptor
public Descriptor newSSTableDescriptor(java.io.File directory, SSTableFormat.Type format)
-
newSSTableDescriptor
public Descriptor newSSTableDescriptor(java.io.File directory, Version version, SSTableFormat.Type format)
-
switchMemtableIfCurrent
public com.google.common.util.concurrent.ListenableFuture<CommitLogPosition> switchMemtableIfCurrent(Memtable memtable)
Switches the memtable iff the live memtable is the one provided- Parameters:
memtable-
-
switchMemtable
public com.google.common.util.concurrent.ListenableFuture<CommitLogPosition> switchMemtable()
-
forceFlush
public com.google.common.util.concurrent.ListenableFuture<CommitLogPosition> forceFlush()
Flush if there is unflushed data in the memtables- Returns:
- a Future yielding the commit log position that can be guaranteed to have been successfully written to sstables for this table once the future completes
-
forceFlush
public com.google.common.util.concurrent.ListenableFuture<?> forceFlush(CommitLogPosition flushIfDirtyBefore)
Flush if there is unflushed data that was written to the CommitLog before @param flushIfDirtyBefore (inclusive).- Returns:
- a Future yielding the commit log position that can be guaranteed to have been successfully written to sstables for this table once the future completes
-
forceBlockingFlush
public CommitLogPosition forceBlockingFlush()
-
flushLargestMemtable
public static java.util.concurrent.CompletableFuture<java.lang.Boolean> flushLargestMemtable()
Finds the largest memtable, as a percentage of *either* on- or off-heap memory limits, and immediately queues it for flushing. If the memtable selected is flushed before this completes, no work is done.
-
apply
public void apply(PartitionUpdate update, UpdateTransaction indexer, OpOrder.Group opGroup, CommitLogPosition commitLogPosition)
Insert/Update the column family for this key. Caller is responsible for acquiring Keyspace.switchLock param @ lock - lock that needs to be used. param @ key - key for update/insert param @ columnFamily - columnFamily changes
-
getOverlappingLiveSSTables
public java.util.Collection<SSTableReader> getOverlappingLiveSSTables(java.lang.Iterable<SSTableReader> sstables)
- Parameters:
sstables-- Returns:
- sstables whose key range overlaps with that of the given sstables, not including itself. (The given sstables may or may not overlap with each other.)
-
getAndReferenceOverlappingLiveSSTables
public Refs<SSTableReader> getAndReferenceOverlappingLiveSSTables(java.lang.Iterable<SSTableReader> sstables)
like getOverlappingSSTables, but acquires references before returning
-
addSSTable
public void addSSTable(SSTableReader sstable)
-
addSSTables
public void addSSTables(java.util.Collection<SSTableReader> sstables)
-
getExpectedCompactedFileSize
public long getExpectedCompactedFileSize(java.lang.Iterable<SSTableReader> sstables, OperationType operation)
Calculate expected file size of SSTable after compaction. If operation type isCLEANUPand we're not dealing with an index sstable, then we calculate expected file size with checking token range to be eliminated. Otherwise, we just add up all the files' size, which is the worst case file size for compaction of all the list of files given.- Parameters:
sstables- SSTables to calculate expected compacted file sizeoperation- Operation type- Returns:
- Expected file size of SSTable after compaction
-
getMaxSizeFile
public SSTableReader getMaxSizeFile(java.lang.Iterable<SSTableReader> sstables)
-
forceCleanup
public CompactionManager.AllSSTableOpStatus forceCleanup(int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
scrub
public CompactionManager.AllSSTableOpStatus scrub(boolean disableSnapshot, boolean skipCorrupted, boolean checkData, boolean reinsertOverflowedTTL, int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
scrub
public CompactionManager.AllSSTableOpStatus scrub(boolean disableSnapshot, boolean skipCorrupted, boolean reinsertOverflowedTTL, boolean alwaysFail, boolean checkData, int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
rebuildOnFailedScrub
public boolean rebuildOnFailedScrub(java.lang.Throwable failure)
CASSANDRA-5174 : For an index cfs we may be able to discard everything and just rebuild the index when a scrub fails.- Returns:
- true if we are an index cfs and we successfully rebuilt the index
-
verify
public CompactionManager.AllSSTableOpStatus verify(Verifier.Options options) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
sstablesRewrite
public CompactionManager.AllSSTableOpStatus sstablesRewrite(boolean excludeCurrentVersion, int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
relocateSSTables
public CompactionManager.AllSSTableOpStatus relocateSSTables(int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
garbageCollect
public CompactionManager.AllSSTableOpStatus garbageCollect(CompactionParams.TombstoneOption tombstoneOption, int jobs) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
markObsolete
public void markObsolete(java.util.Collection<SSTableReader> sstables, OperationType compactionType)
-
isValid
public boolean isValid()
-
getTracker
public Tracker getTracker()
Package protected for access from the CompactionManager.
-
getLiveSSTables
public java.util.Set<SSTableReader> getLiveSSTables()
-
getSSTables
public java.lang.Iterable<SSTableReader> getSSTables(SSTableSet sstableSet)
-
getUncompactingSSTables
public java.lang.Iterable<SSTableReader> getUncompactingSSTables()
-
getPendingRepairStats
public java.util.Map<java.util.UUID,PendingStat> getPendingRepairStats()
-
releaseRepairData
public CleanupSummary releaseRepairData(java.util.Collection<java.util.UUID> sessions, boolean force)
promotes (or demotes) data attached to an incremental repair session that has either completed successfully, or failed- Returns:
- session ids whose data could not be released
-
isFilterFullyCoveredBy
public boolean isFilterFullyCoveredBy(ClusteringIndexFilter filter, DataLimits limits, CachedPartition cached, int nowInSec, boolean enforceStrictLiveness)
-
gcBefore
public int gcBefore(int nowInSec)
-
selectAndReference
public ColumnFamilyStore.RefViewFragment selectAndReference(com.google.common.base.Function<View,java.lang.Iterable<SSTableReader>> filter)
-
select
public ColumnFamilyStore.ViewFragment select(com.google.common.base.Function<View,java.lang.Iterable<SSTableReader>> filter)
-
getSSTablesForKey
public java.util.List<java.lang.String> getSSTablesForKey(java.lang.String key)
Description copied from interface:ColumnFamilyStoreMBeanReturns a list of filenames that contain the given key on this node- Specified by:
getSSTablesForKeyin interfaceColumnFamilyStoreMBean- Returns:
- list of filenames containing the key
-
getSSTablesForKey
public java.util.List<java.lang.String> getSSTablesForKey(java.lang.String key, boolean hexFormat)Description copied from interface:ColumnFamilyStoreMBeanReturns a list of filenames that contain the given key on this node- Specified by:
getSSTablesForKeyin interfaceColumnFamilyStoreMBeanhexFormat- if key is in hex string format- Returns:
- list of filenames containing the key
-
beginLocalSampling
public void beginLocalSampling(java.lang.String sampler, int capacity, int durationMillis)Description copied from interface:ColumnFamilyStoreMBeanbegin sampling for a specific sampler with a given capacity. The cardinality may be larger than the capacity, but depending on the use case it may affect its accuracy- Specified by:
beginLocalSamplingin interfaceColumnFamilyStoreMBean
-
finishLocalSampling
public java.util.List<javax.management.openmbean.CompositeData> finishLocalSampling(java.lang.String sampler, int count) throws javax.management.openmbean.OpenDataException- Specified by:
finishLocalSamplingin interfaceColumnFamilyStoreMBean- Returns:
- top count items for the sampler since beginLocalSampling was called
- Throws:
javax.management.openmbean.OpenDataException
-
isCompactionDiskSpaceCheckEnabled
public boolean isCompactionDiskSpaceCheckEnabled()
- Specified by:
isCompactionDiskSpaceCheckEnabledin interfaceColumnFamilyStoreMBean
-
compactionDiskSpaceCheck
public void compactionDiskSpaceCheck(boolean enable)
- Specified by:
compactionDiskSpaceCheckin interfaceColumnFamilyStoreMBean
-
cleanupCache
public void cleanupCache()
-
getComparator
public ClusteringComparator getComparator()
-
snapshotWithoutFlush
public void snapshotWithoutFlush(java.lang.String snapshotName)
-
snapshotWithoutFlush
public java.util.Set<SSTableReader> snapshotWithoutFlush(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, com.google.common.util.concurrent.RateLimiter rateLimiter)
- Parameters:
ephemeral- If this flag is set to true, the snapshot will be cleaned during next startup
-
clearEphemeralSnapshots
protected static void clearEphemeralSnapshots(Directories directories)
-
getSnapshotSSTableReaders
public Refs<SSTableReader> getSnapshotSSTableReaders(java.lang.String tag) throws java.io.IOException
- Throws:
java.io.IOException
-
snapshot
public java.util.Set<SSTableReader> snapshot(java.lang.String snapshotName)
Take a snap shot of this columnfamily store.- Parameters:
snapshotName- the name of the associated with the snapshot
-
snapshot
public java.util.Set<SSTableReader> snapshot(java.lang.String snapshotName, boolean skipFlush, com.google.common.util.concurrent.RateLimiter rateLimiter)
Take a snap shot of this columnfamily store.- Parameters:
snapshotName- the name of the associated with the snapshotskipFlush- Skip blocking flush of memtablerateLimiter- Rate limiter for hardlinks-per-second
-
snapshot
public java.util.Set<SSTableReader> snapshot(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, boolean skipFlush)
- Parameters:
ephemeral- If this flag is set to true, the snapshot will be cleaned up during next startupskipFlush- Skip blocking flush of memtable
-
snapshot
public java.util.Set<SSTableReader> snapshot(java.lang.String snapshotName, com.google.common.base.Predicate<SSTableReader> predicate, boolean ephemeral, boolean skipFlush, com.google.common.util.concurrent.RateLimiter rateLimiter)
- Parameters:
ephemeral- If this flag is set to true, the snapshot will be cleaned up during next startupskipFlush- Skip blocking flush of memtablerateLimiter- Rate limiter for hardlinks-per-second
-
snapshotExists
public boolean snapshotExists(java.lang.String snapshotName)
-
getSnapshotCreationTime
public long getSnapshotCreationTime(java.lang.String snapshotName)
-
clearSnapshot
public void clearSnapshot(java.lang.String snapshotName)
Clear all the snapshots for a given column family.- Parameters:
snapshotName- the user supplied snapshot name. If left empty, all the snapshots will be cleaned.
-
getSnapshotDetails
public java.util.Map<java.lang.String,Directories.SnapshotSizeDetails> getSnapshotDetails()
- Returns:
- Return a map of all snapshots to space being used The pair for a snapshot has true size and size on disk.
-
getRawCachedPartition
public CachedPartition getRawCachedPartition(DecoratedKey key)
- Returns:
- the cached partition for @param key if it is already present in the cache. Not that this will not readAndCache the parition if it is not present, nor are these calls counted in cache statistics. Note that this WILL cause deserialization of a SerializingCache partition, so if all you need to know is whether a partition is present or not, use containsCachedParition instead.
-
invalidateRowCache
public int invalidateRowCache(java.util.Collection<Bounds<Token>> boundsToInvalidate)
-
invalidateCounterCache
public int invalidateCounterCache(java.util.Collection<Bounds<Token>> boundsToInvalidate)
-
containsCachedParition
public boolean containsCachedParition(DecoratedKey key)
- Returns:
- true if @param key is contained in the row cache
-
invalidateCachedPartition
public void invalidateCachedPartition(RowCacheKey key)
-
invalidateCachedPartition
public void invalidateCachedPartition(DecoratedKey key)
-
getCachedCounter
public ClockAndCount getCachedCounter(java.nio.ByteBuffer partitionKey, Clustering<?> clustering, ColumnMetadata column, CellPath path)
-
putCachedCounter
public void putCachedCounter(java.nio.ByteBuffer partitionKey, Clustering<?> clustering, ColumnMetadata column, CellPath path, ClockAndCount clockAndCount)
-
forceMajorCompaction
public void forceMajorCompaction()
-
forceMajorCompaction
public void forceMajorCompaction(boolean splitOutput)
Description copied from interface:ColumnFamilyStoreMBeanforce a major compaction of this column family- Specified by:
forceMajorCompactionin interfaceColumnFamilyStoreMBean- Parameters:
splitOutput- true if the output of the major compaction should be split in several sstables
-
forceCompactionForTokenRange
public void forceCompactionForTokenRange(java.util.Collection<Range<Token>> tokenRanges) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Description copied from interface:ColumnFamilyStoreMBeanforce a major compaction of specified key range in this column family- Specified by:
forceCompactionForTokenRangein interfaceColumnFamilyStoreMBean- Throws:
java.util.concurrent.ExecutionExceptionjava.lang.InterruptedException
-
all
public static java.lang.Iterable<ColumnFamilyStore> all()
-
keySamples
public java.lang.Iterable<DecoratedKey> keySamples(Range<Token> range)
-
clearUnsafe
public void clearUnsafe()
For testing. No effort is made to clear historical or even the current memtables, nor for thread safety. All we do is wipe the sstable containers clean, while leaving the actual data files present on disk. (This allows tests to easily call loadNewSSTables on them.)
-
truncateBlocking
public void truncateBlocking()
-
truncateBlockingWithoutSnapshot
public void truncateBlockingWithoutSnapshot()
-
dumpMemtable
public java.util.concurrent.Future<CommitLogPosition> dumpMemtable()
Drops current memtable without flushing to disk. This should only be called when truncating a column family which is not durable.
-
runWithCompactionsDisabled
public <V> V runWithCompactionsDisabled(java.util.concurrent.Callable<V> callable, boolean interruptValidation, boolean interruptViews)
-
runWithCompactionsDisabled
public <V> V runWithCompactionsDisabled(java.util.concurrent.Callable<V> callable, com.google.common.base.Predicate<SSTableReader> sstablesPredicate, boolean interruptValidation, boolean interruptViews, boolean interruptIndexes)Runs callable with compactions paused and compactions including sstables matching sstablePredicate stopped- Parameters:
callable- what to do when compactions are pausedsstablesPredicate- which sstables should we cancel compactions forinterruptValidation- if we should interrupt validation compactionsinterruptViews- if we should interrupt view compactionsinterruptIndexes- if we should interrupt compactions on indexes. NOTE: if you set this to true your sstablePredicate must be able to handle LocalPartitioner sstables!
-
markAllCompacting
public LifecycleTransaction markAllCompacting(OperationType operationType)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
disableAutoCompaction
public void disableAutoCompaction()
-
enableAutoCompaction
public void enableAutoCompaction()
-
enableAutoCompaction
public void enableAutoCompaction(boolean waitForFutures)
used for tests - to be able to check things after a minor compaction- Parameters:
waitForFutures- if we should block until autocompaction is done
-
isAutoCompactionDisabled
public boolean isAutoCompactionDisabled()
- Specified by:
isAutoCompactionDisabledin interfaceColumnFamilyStoreMBean
-
getCompactionStrategyManager
public CompactionStrategyManager getCompactionStrategyManager()
-
setCrcCheckChance
public void setCrcCheckChance(double crcCheckChance)
Description copied from interface:ColumnFamilyStoreMBeanSet new crc check chance- Specified by:
setCrcCheckChancein interfaceColumnFamilyStoreMBean
-
getCrcCheckChance
public java.lang.Double getCrcCheckChance()
-
setCompactionThresholds
public void setCompactionThresholds(int minThreshold, int maxThreshold)Description copied from interface:ColumnFamilyStoreMBeanSets the maximum and maximum number of SSTables in queue before compaction kicks off- Specified by:
setCompactionThresholdsin interfaceColumnFamilyStoreMBean
-
getMinimumCompactionThreshold
public int getMinimumCompactionThreshold()
Description copied from interface:ColumnFamilyStoreMBeanGets the minimum number of sstables in queue before compaction kicks off- Specified by:
getMinimumCompactionThresholdin interfaceColumnFamilyStoreMBean
-
setMinimumCompactionThreshold
public void setMinimumCompactionThreshold(int minCompactionThreshold)
Description copied from interface:ColumnFamilyStoreMBeanSets the minimum number of sstables in queue before compaction kicks off- Specified by:
setMinimumCompactionThresholdin interfaceColumnFamilyStoreMBean
-
getMaximumCompactionThreshold
public int getMaximumCompactionThreshold()
Description copied from interface:ColumnFamilyStoreMBeanGets the maximum number of sstables in queue before compaction kicks off- Specified by:
getMaximumCompactionThresholdin interfaceColumnFamilyStoreMBean
-
setMaximumCompactionThreshold
public void setMaximumCompactionThreshold(int maxCompactionThreshold)
Description copied from interface:ColumnFamilyStoreMBeanSets the maximum number of sstables in queue before compaction kicks off- Specified by:
setMaximumCompactionThresholdin interfaceColumnFamilyStoreMBean
-
getMeanEstimatedCellPerPartitionCount
public int getMeanEstimatedCellPerPartitionCount()
-
getMeanPartitionSize
public double getMeanPartitionSize()
-
getMeanRowCount
public int getMeanRowCount()
-
estimateKeys
public long estimateKeys()
- Specified by:
estimateKeysin interfaceColumnFamilyStoreMBean
-
getPartitioner
public IPartitioner getPartitioner()
-
decorateKey
public DecoratedKey decorateKey(java.nio.ByteBuffer key)
-
isIndex
public boolean isIndex()
true if this CFS contains secondary index data
-
concatWithIndexes
public java.lang.Iterable<ColumnFamilyStore> concatWithIndexes()
-
getBuiltIndexes
public java.util.List<java.lang.String> getBuiltIndexes()
Description copied from interface:ColumnFamilyStoreMBeanReturns a list of the names of the built column indexes for current store- Specified by:
getBuiltIndexesin interfaceColumnFamilyStoreMBean- Returns:
- list of the index names
-
getUnleveledSSTables
public int getUnleveledSSTables()
- Specified by:
getUnleveledSSTablesin interfaceColumnFamilyStoreMBean- Returns:
- the number of SSTables in L0. Always return 0 if Leveled compaction is not enabled.
-
getSSTableCountPerLevel
public int[] getSSTableCountPerLevel()
- Specified by:
getSSTableCountPerLevelin interfaceColumnFamilyStoreMBean- Returns:
- sstable count for each level. null unless leveled compaction is used. array index corresponds to level(int[0] is for level 0, ...).
-
getLevelFanoutSize
public int getLevelFanoutSize()
- Specified by:
getLevelFanoutSizein interfaceColumnFamilyStoreMBean- Returns:
- sstable fanout size for level compaction strategy.
-
isEmpty
public boolean isEmpty()
-
isRowCacheEnabled
public boolean isRowCacheEnabled()
-
isCounterCacheEnabled
public boolean isCounterCacheEnabled()
-
isKeyCacheEnabled
public boolean isKeyCacheEnabled()
-
discardSSTables
public void discardSSTables(long truncatedAt)
Discard all SSTables that were created before given timestamp. Caller should first ensure that comapctions have quiesced.- Parameters:
truncatedAt- The timestamp of the truncation (all SSTables before that timestamp are going be marked as compacted)
-
getDroppableTombstoneRatio
public double getDroppableTombstoneRatio()
Description copied from interface:ColumnFamilyStoreMBeanGet the ratio of droppable tombstones to real columns (and non-droppable tombstones)- Specified by:
getDroppableTombstoneRatioin interfaceColumnFamilyStoreMBean- Returns:
- ratio
-
trueSnapshotsSize
public long trueSnapshotsSize()
- Specified by:
trueSnapshotsSizein interfaceColumnFamilyStoreMBean- Returns:
- the size of SSTables in "snapshots" subdirectory which aren't live anymore
-
getIfExists
public static ColumnFamilyStore getIfExists(TableId id)
Returns a ColumnFamilyStore by id if it exists, null otherwise Differently from others, this method does not throw exception if the table does not exist.
-
getIfExists
public static ColumnFamilyStore getIfExists(java.lang.String ksName, java.lang.String cfName)
Returns a ColumnFamilyStore by ksname and cfname if it exists, null otherwise Differently from others, this method does not throw exception if the keyspace or table does not exist.
-
metricsFor
public static TableMetrics metricsFor(TableId tableId)
-
getDiskBoundaries
public DiskBoundaries getDiskBoundaries()
-
invalidateDiskBoundaries
public void invalidateDiskBoundaries()
-
setNeverPurgeTombstones
public void setNeverPurgeTombstones(boolean value)
- Specified by:
setNeverPurgeTombstonesin interfaceColumnFamilyStoreMBean
-
getNeverPurgeTombstones
public boolean getNeverPurgeTombstones()
- Specified by:
getNeverPurgeTombstonesin interfaceColumnFamilyStoreMBean
-
hasMisplacedSSTables
public boolean hasMisplacedSSTables()
Description copied from interface:ColumnFamilyStoreMBeanCheck SSTables whether or not they are misplaced.- Specified by:
hasMisplacedSSTablesin interfaceColumnFamilyStoreMBean- Returns:
- true if any of the SSTables is misplaced. If all SSTables are correctly placed or the partitioner does not support splitting, it returns false.
-
-