org.apache.cassandra.service

## Interface StorageServiceMBean

All Superinterfaces:
  javax.management.NotificationBroadcaster, javax.management.NotificationEmitter

All Known Implementing Classes:
  StorageService

    public interface StorageServiceMBean
    extends javax.management.NotificationEmitter

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`void` `bulkLoad(java.lang.String directory)` Starts a bulk load and blocks until it completes.
`java.lang.String` `bulkLoadAsync(java.lang.String directory)` Starts a bulk load asynchronously and returns the String representation of the planID for the new streaming session.
`void` `clearSnapshot(java.lang.String tag, java.lang.String... keyspaceNames)` Remove the snapshot with the given name from the given keyspaces.
`void` `decommission()` transfer this node's data to other machines and remove it from service.
`void` `deliverHints(java.lang.String host)`
`java.util.List<java.lang.String>` `describeRingJMX(java.lang.String keyspace)` The same as `describeRing(String)` but converts TokenRange to the String for JMX compatibility
`void` `disableAutoCompaction(java.lang.String ks, java.lang.String... columnFamilies)`
`void` `drain()` makes node unavailable for writes, flushes memtables and replays commitlog.
`java.util.Map<java.net.InetAddress,java.lang.Float>` `effectiveOwnership(java.lang.String keyspace)` Effective ownership is % of the data each node owns given the keyspace we calculate the percentage using replication factor.
`void` `enableAutoCompaction(java.lang.String ks, java.lang.String... columnFamilies)`
`int` `forceKeyspaceCleanup(int jobs, java.lang.String keyspaceName, java.lang.String... columnFamilies)`
`int` `forceKeyspaceCleanup(java.lang.String keyspaceName, java.lang.String... columnFamilies)` Deprecated.
`void` `forceKeyspaceCompaction(boolean splitOutput, java.lang.String keyspaceName, java.lang.String... columnFamilies)` Forces major compaction of a single keyspace
`void` `forceKeyspaceFlush(java.lang.String keyspaceName, java.lang.String... columnFamilies)` Flush all memtables for the given column families, or all columnfamilies for the given keyspace if none are explicitly listed.
`void` `forceRemoveCompletion()` Force a remove operation to finish.
`int` `forceRepairAsync(java.lang.String keyspace, boolean isSequential, boolean isLocal, boolean primaryRange, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`int` `forceRepairAsync(java.lang.String keyspace, boolean isSequential, java.util.Collection<java.lang.String> dataCenters, java.util.Collection<java.lang.String> hosts, boolean primaryRange, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`int` `forceRepairAsync(java.lang.String keyspace, int parallelismDegree, java.util.Collection<java.lang.String> dataCenters, java.util.Collection<java.lang.String> hosts, boolean primaryRange, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`int` `forceRepairRangeAsync(java.lang.String beginToken, java.lang.String endToken, java.lang.String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`int` `forceRepairRangeAsync(java.lang.String beginToken, java.lang.String endToken, java.lang.String keyspaceName, boolean isSequential, java.util.Collection<java.lang.String> dataCenters, java.util.Collection<java.lang.String> hosts, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`int` `forceRepairRangeAsync(java.lang.String beginToken, java.lang.String endToken, java.lang.String keyspaceName, int parallelismDegree, java.util.Collection<java.lang.String> dataCenters, java.util.Collection<java.lang.String> hosts, boolean fullRepair, java.lang.String... columnFamilies)` Deprecated. use `repairAsync(String keyspace, Map options)` instead.
`void` `forceTerminateAllRepairSessions()`
`java.lang.String[]` `getAllDataFileLocations()` Get the list of all data file locations from conf
`int` `getBatchSizeFailureThreshold()` Returns the threshold for rejecting queries due to a large batch size
`java.lang.String` `getClusterName()` Returns the name of the cluster
`java.lang.String` `getCommitLogLocation()` Get location of the commit log
`int` `getCompactionThroughputMbPerSec()`
`int` `getCurrentGenerationNumber()` Return the generation value for this node.
`java.lang.String` `getDrainProgress()` get the progress of a drain operation
`java.util.Map<java.lang.String,java.lang.String>` `getEndpointToHostId()` Retrieve the mapping of endpoint to host ID
`java.util.Map<java.lang.String,java.lang.String>` `getHostIdMap()` Deprecated.
`java.util.Map<java.lang.String,java.lang.String>` `getHostIdToEndpoint()` Retrieve the mapping of host ID to endpoint
`int` `getInterDCStreamThroughputMbPerSec()`
`java.util.List<java.lang.String>` `getJoiningNodes()` Retrieve the list of nodes currently bootstrapping into the ring.
`java.util.List<java.lang.String>` `getKeyspaces()`
`java.util.List<java.lang.String>` `getLeavingNodes()` Retrieve the list of nodes currently leaving the ring.
`java.util.List<java.lang.String>` `getLiveNodes()` Retrieve the list of live nodes in the cluster, where "liveness" is determined by the failure detector of the node being queried.
`java.util.Map<java.lang.String,java.lang.String>` `getLoadMap()` Human-readable load value.
`java.lang.String` `getLoadString()` Human-readable load value
`java.lang.String` `getLocalHostId()` Retrieve this hosts unique ID
`java.util.Map<java.lang.String,java.lang.String>` `getLoggingLevels()` get the runtime logging levels
`java.util.List<java.lang.String>` `getMovingNodes()` Retrieve the list of nodes currently moving in the ring.
`java.util.List<java.net.InetAddress>` `getNaturalEndpoints(java.lang.String keyspaceName, java.nio.ByteBuffer key)`
`java.util.List<java.net.InetAddress>` `getNaturalEndpoints(java.lang.String keyspaceName, java.lang.String cf, java.lang.String key)` This method returns the N endpoints that are responsible for storing the specified key i.e for replication.
`java.util.List<java.lang.String>` `getNonSystemKeyspaces()`
`java.lang.String` `getOperationMode()` get the operational mode (leaving, joining, normal, decommissioned, client)
`java.util.Map<java.net.InetAddress,java.lang.Float>` `getOwnership()` given a list of tokens (representing the nodes in the cluster), returns a mapping from "token -> %age of cluster owned by that token"
`java.lang.String` `getPartitionerName()` Returns the cluster partitioner
`java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>>` `getPendingRangeToEndpointMap(java.lang.String keyspace)` Retrieve a map of pending ranges to endpoints that describe the ring topology
`java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>>` `getRangeToEndpointMap(java.lang.String keyspace)` Retrieve a map of range to end points that describe the ring topology of a Cassandra cluster.
`java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>>` `getRangeToRpcaddressMap(java.lang.String keyspace)` Retrieve a map of range to rpc addresses that describe the ring topology of a Cassandra cluster.
`java.lang.String` `getReleaseVersion()` Fetch a string representation of the Cassandra version.
`java.lang.String` `getRemovalStatus()` Get the status of a token removal.
`java.lang.String` `getSavedCachesLocation()` Get location of the saved caches dir
`java.lang.String` `getSchemaVersion()` Fetch a string representation of the current Schema version.
`java.util.Map<java.lang.String,javax.management.openmbean.TabularData>` `getSnapshotDetails()` Get the details of all the snapshot
`int` `getStreamThroughputMbPerSec()`
`java.util.List<java.lang.String>` `getTokens()` Fetch string representations of the tokens for this node.
`java.util.List<java.lang.String>` `getTokens(java.lang.String endpoint)` Fetch string representations of the tokens for a specified node.
`java.util.Map<java.lang.String,java.lang.String>` `getTokenToEndpointMap()` Retrieve a map of tokens to endpoints, including the bootstrapping ones.
`int` `getTombstoneFailureThreshold()` Returns the threshold for abandoning queries with many tombstones
`int` `getTombstoneWarnThreshold()` Returns the threshold for warning of queries with many tombstones
`double` `getTraceProbability()` Returns the configured tracing probability.
`java.util.List<java.lang.String>` `getUnreachableNodes()` Retrieve the list of unreachable nodes in the cluster, as determined by this node's failure detector.
`boolean` `isGossipRunning()`
`boolean` `isIncrementalBackupsEnabled()`
`boolean` `isInitialized()`
`boolean` `isJoined()`
`boolean` `isNativeTransportRunning()`
`boolean` `isRPCServerRunning()`
`boolean` `isStarting()` Returns whether the storage service is starting or not
`void` `joinRing()`
`void` `loadNewSSTables(java.lang.String ksName, java.lang.String cfName)` Load new SSTables to the given keyspace/columnFamily
`void` `move(java.lang.String newToken)`
`void` `rebuild(java.lang.String sourceDc)` Initiate a process of streaming data for which we are responsible from other nodes.
`void` `rebuildSecondaryIndex(java.lang.String ksName, java.lang.String cfName, java.lang.String... idxNames)` rebuild the specified indexes
`void` `refreshSizeEstimates()` Forces refresh of values stored in system.size_estimates of all column families.
`void` `removeNode(java.lang.String token)` removeToken removes token (and all data associated with enpoint that had it) from the ring
`int` `repairAsync(java.lang.String keyspace, java.util.Map<java.lang.String,java.lang.String> options)` Invoke repair asynchronously.
`void` `rescheduleFailedDeletions()`
`void` `resetLocalSchema()`
`boolean` `resumeBootstrap()` Resume bootstrap streaming when there is failed data streaming.
`java.util.List<java.lang.String>` `sampleKeyRange()` Return a List of Tokens representing a sample of keys across all ColumnFamilyStores.
`int` `scrub(boolean disableSnapshot, boolean skipCorrupted, boolean checkData, boolean reinsertOverflowedTTLRows, int jobs, java.lang.String keyspaceName, java.lang.String... columnFamilies)`
`int` `scrub(boolean disableSnapshot, boolean skipCorrupted, boolean checkData, int jobs, java.lang.String keyspaceName, java.lang.String... columnFamilies)` Deprecated.
`int` `scrub(boolean disableSnapshot, boolean skipCorrupted, boolean checkData, java.lang.String keyspaceName, java.lang.String... columnFamilies)` Deprecated.
`int` `scrub(boolean disableSnapshot, boolean skipCorrupted, java.lang.String keyspaceName, java.lang.String... columnFamilies)` Deprecated.
`void` `setBatchSizeFailureThreshold(int batchSizeDebugThreshold)` Sets the threshold for rejecting queries due to a large batch size
`void` `setCompactionThroughputMbPerSec(int value)`
`void` `setHintedHandoffThrottleInKB(int throttleInKB)` Sets the hinted handoff throttle in kb per second, per delivery thread.
`void` `setIncrementalBackupsEnabled(boolean value)`
`void` `setInterDCStreamThroughputMbPerSec(int value)`

`void`

`setLoggingLevel(java.lang.String classQualifier, java.lang.String level)`
set the logging level at runtime
If both classQualifer and level are empty/null, it will reload the configuration to reset.
If classQualifer is not empty but level is empty/null, it will set the level to null for the defined classQualifer
If level cannot be parsed, then the level will be defaulted to DEBUG
The logback configuration should have < jmxConfigurator /> set

`void` `setStreamThroughputMbPerSec(int value)`
`void` `setTombstoneFailureThreshold(int tombstoneDebugThreshold)` Sets the threshold for abandoning queries with many tombstones
`void` `setTombstoneWarnThreshold(int tombstoneDebugThreshold)` Sets the threshold for warning queries with many tombstones
`void` `setTraceProbability(double probability)` Enables/Disables tracing for the whole system.
`void` `startGossiping()`
`void` `startNativeTransport()`
`void` `startRPCServer()`
`void` `stopDaemon()`
`void` `stopGossiping()`
`void` `stopNativeTransport()`
`void` `stopRPCServer()`
`void` `takeColumnFamilySnapshot(java.lang.String keyspaceName, java.lang.String columnFamilyName, java.lang.String tag)` Takes the snapshot of a specific column family.
`void` `takeMultipleColumnFamilySnapshot(java.lang.String tag, java.lang.String... columnFamilyList)` Takes the snapshot of a multiple column family from different keyspaces.
`void` `takeSnapshot(java.lang.String tag, java.lang.String... keyspaceNames)` Takes the snapshot for the given keyspaces.
`long` `trueSnapshotsSize()` Get the true size taken by all snapshots across all keyspaces.
`void` `truncate(java.lang.String keyspace, java.lang.String columnFamily)` Truncates (deletes) the given columnFamily from the provided keyspace.
`void` `updateSnitch(java.lang.String epSnitchClassName, java.lang.Boolean dynamic, java.lang.Integer dynamicUpdateInterval, java.lang.Integer dynamicResetInterval, java.lang.Double dynamicBadnessThreshold)` Change endpointsnitch class and dynamic-ness (and dynamic attributes) at runtime
`int` `upgradeSSTables(java.lang.String keyspaceName, boolean excludeCurrentVersion, int jobs, java.lang.String... columnFamilies)`
`int` `upgradeSSTables(java.lang.String keyspaceName, boolean excludeCurrentVersion, java.lang.String... columnFamilies)` Deprecated.
`int` `verify(boolean extendedVerify, java.lang.String keyspaceName, java.lang.String... columnFamilies)` Verify (checksums of) the given keyspace.

### Methods inherited from interface javax.management.NotificationEmitter

`removeNotificationListener`

### Methods inherited from interface javax.management.NotificationBroadcaster

`addNotificationListener, getNotificationInfo, removeNotificationListener`

### Method Detail

#### getLiveNodes

    java.util.List<java.lang.String> getLiveNodes()

Retrieve the list of live nodes in the cluster, where "liveness" is determined by the failure detector of the node being queried.

Returns:
  set of IP addresses, as Strings

#### getUnreachableNodes

    java.util.List<java.lang.String> getUnreachableNodes()

Retrieve the list of unreachable nodes in the cluster, as determined by this node's failure detector.

Returns:
  set of IP addresses, as Strings

#### getJoiningNodes

    java.util.List<java.lang.String> getJoiningNodes()

Retrieve the list of nodes currently bootstrapping into the ring.

Returns:
  set of IP addresses, as Strings

#### getLeavingNodes

    java.util.List<java.lang.String> getLeavingNodes()

Retrieve the list of nodes currently leaving the ring.

Returns:
  set of IP addresses, as Strings

#### getMovingNodes

    java.util.List<java.lang.String> getMovingNodes()

Retrieve the list of nodes currently moving in the ring.

Returns:
  set of IP addresses, as Strings

#### getTokens

    java.util.List<java.lang.String> getTokens()

Fetch string representations of the tokens for this node.

Returns:
  a collection of tokens formatted as strings

#### getTokens

    java.util.List<java.lang.String> getTokens(java.lang.String endpoint)
                                        throws java.net.UnknownHostException

Fetch string representations of the tokens for a specified node.

Parameters:
  `endpoint` - string representation of an node
Returns:
  a collection of tokens formatted as strings
Throws:
  `java.net.UnknownHostException`

#### getReleaseVersion

    java.lang.String getReleaseVersion()

Fetch a string representation of the Cassandra version.

Returns:
  A string representation of the Cassandra version.

#### getSchemaVersion

    java.lang.String getSchemaVersion()

Fetch a string representation of the current Schema version.

Returns:
  A string representation of the Schema version.

#### getAllDataFileLocations

    java.lang.String[] getAllDataFileLocations()

Get the list of all data file locations from conf

Returns:
  String array of all locations

#### getCommitLogLocation

    java.lang.String getCommitLogLocation()

Get location of the commit log

Returns:
  a string path

#### getSavedCachesLocation

    java.lang.String getSavedCachesLocation()

Get location of the saved caches dir

Returns:
  a string path

#### getRangeToEndpointMap

    java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>> getRangeToEndpointMap(java.lang.String keyspace)

Retrieve a map of range to end points that describe the ring topology of a Cassandra cluster.

Returns:
  mapping of ranges to end points

#### getRangeToRpcaddressMap

    java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>> getRangeToRpcaddressMap(java.lang.String keyspace)

Retrieve a map of range to rpc addresses that describe the ring topology of a Cassandra cluster.

Returns:
  mapping of ranges to rpc addresses

#### describeRingJMX

    java.util.List<java.lang.String> describeRingJMX(java.lang.String keyspace)
                                              throws java.io.IOException

The same as `describeRing(String)` but converts TokenRange to the String for JMX compatibility

Parameters:
  `keyspace` - The keyspace to fetch information about
Returns:
  a List of TokenRange(s) converted to String for the given keyspace
Throws:
  `java.io.IOException`

#### getPendingRangeToEndpointMap

    java.util.Map<java.util.List<java.lang.String>,java.util.List<java.lang.String>> getPendingRangeToEndpointMap(java.lang.String keyspace)

Retrieve a map of pending ranges to endpoints that describe the ring topology

Parameters:
  `keyspace` - the keyspace to get the pending range map for.
Returns:
  a map of pending ranges to endpoints

#### getTokenToEndpointMap

    java.util.Map<java.lang.String,java.lang.String> getTokenToEndpointMap()

Retrieve a map of tokens to endpoints, including the bootstrapping ones.

Returns:
  a map of tokens to endpoints in ascending order

#### getLocalHostId

    java.lang.String getLocalHostId()

Retrieve this hosts unique ID

#### getHostIdMap

    @Deprecated
    java.util.Map<java.lang.String,java.lang.String> getHostIdMap()

Deprecated.
`getEndpointToHostId()`

#### getEndpointToHostId

    java.util.Map<java.lang.String,java.lang.String> getEndpointToHostId()

Retrieve the mapping of endpoint to host ID

#### getHostIdToEndpoint

    java.util.Map<java.lang.String,java.lang.String> getHostIdToEndpoint()

Retrieve the mapping of host ID to endpoint

#### getLoadString

    java.lang.String getLoadString()

Human-readable load value

#### getLoadMap

    java.util.Map<java.lang.String,java.lang.String> getLoadMap()

Human-readable load value. Keys are IP addresses.

#### getCurrentGenerationNumber

    int getCurrentGenerationNumber()

Return the generation value for this node.

Returns:
  generation number

#### getNaturalEndpoints

    java.util.List<java.net.InetAddress> getNaturalEndpoints(java.lang.String keyspaceName,
                                                             java.lang.String cf,
                                                             java.lang.String key)

This method returns the N endpoints that are responsible for storing the specified key i.e for replication.

Parameters:
  `keyspaceName` - keyspace name
  `cf` - Column family name
  `key` - - key for which we need to find the endpoint return value - the endpoint responsible for this key

#### getNaturalEndpoints

    java.util.List<java.net.InetAddress> getNaturalEndpoints(java.lang.String keyspaceName,
                                                             java.nio.ByteBuffer key)

#### takeSnapshot

    void takeSnapshot(java.lang.String tag,
                      java.lang.String... keyspaceNames)
               throws java.io.IOException

Takes the snapshot for the given keyspaces. A snapshot name must be specified.

Parameters:
  `tag` - the tag given to the snapshot; may not be null or empty
  `keyspaceNames` - the name of the keyspaces to snapshot; empty means "all."
Throws:
  `java.io.IOException`

#### takeColumnFamilySnapshot

    void takeColumnFamilySnapshot(java.lang.String keyspaceName,
                                  java.lang.String columnFamilyName,
                                  java.lang.String tag)
                           throws java.io.IOException

Takes the snapshot of a specific column family. A snapshot name must be specified.

Parameters:
  `keyspaceName` - the keyspace which holds the specified column family
  `columnFamilyName` - the column family to snapshot
  `tag` - the tag given to the snapshot; may not be null or empty
Throws:
  `java.io.IOException`

#### takeMultipleColumnFamilySnapshot

    void takeMultipleColumnFamilySnapshot(java.lang.String tag,
                                          java.lang.String... columnFamilyList)
                                   throws java.io.IOException

Takes the snapshot of a multiple column family from different keyspaces. A snapshot name must be specified.

Parameters:
  `tag` - the tag given to the snapshot; may not be null or empty
  `columnFamilyList` - list of columnfamily from different keyspace in the form of ks1.cf1 ks2.cf2
Throws:
  `java.io.IOException`

#### clearSnapshot

    void clearSnapshot(java.lang.String tag,
                       java.lang.String... keyspaceNames)
                throws java.io.IOException

Remove the snapshot with the given name from the given keyspaces. If no tag is specified we will remove all snapshots.

Throws:
  `java.io.IOException`

#### getSnapshotDetails

    java.util.Map<java.lang.String,javax.management.openmbean.TabularData> getSnapshotDetails()

Get the details of all the snapshot

Returns:
  A map of snapshotName to all its details in Tabular form.

#### trueSnapshotsSize

    long trueSnapshotsSize()

Get the true size taken by all snapshots across all keyspaces.

Returns:
  True size taken by all the snapshots.

#### refreshSizeEstimates

    void refreshSizeEstimates()
                       throws java.util.concurrent.ExecutionException

Forces refresh of values stored in system.size_estimates of all column families.

Throws:
  `java.util.concurrent.ExecutionException`

#### forceKeyspaceCompaction

    void forceKeyspaceCompaction(boolean splitOutput,
                                 java.lang.String keyspaceName,
                                 java.lang.String... columnFamilies)
                          throws java.io.IOException,
                                 java.util.concurrent.ExecutionException,
                                 java.lang.InterruptedException

Forces major compaction of a single keyspace

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### forceKeyspaceCleanup

    @Deprecated
    int forceKeyspaceCleanup(java.lang.String keyspaceName,
                                         java.lang.String... columnFamilies)
                                  throws java.io.IOException,
                                         java.util.concurrent.ExecutionException,
                                         java.lang.InterruptedException

Deprecated.
Trigger a cleanup of keys on a single keyspace

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### forceKeyspaceCleanup

    int forceKeyspaceCleanup(int jobs,
                             java.lang.String keyspaceName,
                             java.lang.String... columnFamilies)
                      throws java.io.IOException,
                             java.util.concurrent.ExecutionException,
                             java.lang.InterruptedException

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### scrub

    @Deprecated
    int scrub(boolean disableSnapshot,
                          boolean skipCorrupted,
                          java.lang.String keyspaceName,
                          java.lang.String... columnFamilies)
                   throws java.io.IOException,
                          java.util.concurrent.ExecutionException,
                          java.lang.InterruptedException

Deprecated.
Scrub (deserialize + reserialize at the latest version, skipping bad rows if any) the given keyspace. If columnFamilies array is empty, all CFs are scrubbed. Scrubbed CFs will be snapshotted first, if disableSnapshot is false

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### scrub

    @Deprecated
    int scrub(boolean disableSnapshot,
                          boolean skipCorrupted,
                          boolean checkData,
                          java.lang.String keyspaceName,
                          java.lang.String... columnFamilies)
                   throws java.io.IOException,
                          java.util.concurrent.ExecutionException,
                          java.lang.InterruptedException

Deprecated.

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### scrub

    @Deprecated
    int scrub(boolean disableSnapshot,
                          boolean skipCorrupted,
                          boolean checkData,
                          int jobs,
                          java.lang.String keyspaceName,
                          java.lang.String... columnFamilies)
                   throws java.io.IOException,
                          java.util.concurrent.ExecutionException,
                          java.lang.InterruptedException

Deprecated.

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### scrub

    int scrub(boolean disableSnapshot,
              boolean skipCorrupted,
              boolean checkData,
              boolean reinsertOverflowedTTLRows,
              int jobs,
              java.lang.String keyspaceName,
              java.lang.String... columnFamilies)
       throws java.io.IOException,
              java.util.concurrent.ExecutionException,
              java.lang.InterruptedException

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### verify

    int verify(boolean extendedVerify,
               java.lang.String keyspaceName,
               java.lang.String... columnFamilies)
        throws java.io.IOException,
               java.util.concurrent.ExecutionException,
               java.lang.InterruptedException

Verify (checksums of) the given keyspace. If columnFamilies array is empty, all CFs are verified. The entire sstable will be read to ensure each cell validates if extendedVerify is true

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### upgradeSSTables

    @Deprecated
    int upgradeSSTables(java.lang.String keyspaceName,
                                    boolean excludeCurrentVersion,
                                    java.lang.String... columnFamilies)
                             throws java.io.IOException,
                                    java.util.concurrent.ExecutionException,
                                    java.lang.InterruptedException

Deprecated.
Rewrite all sstables to the latest version. Unlike scrub, it doesn't skip bad rows and do not snapshot sstables first.

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### upgradeSSTables

    int upgradeSSTables(java.lang.String keyspaceName,
                        boolean excludeCurrentVersion,
                        int jobs,
                        java.lang.String... columnFamilies)
                 throws java.io.IOException,
                        java.util.concurrent.ExecutionException,
                        java.lang.InterruptedException

Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### forceKeyspaceFlush

    void forceKeyspaceFlush(java.lang.String keyspaceName,
                            java.lang.String... columnFamilies)
                     throws java.io.IOException,
                            java.util.concurrent.ExecutionException,
                            java.lang.InterruptedException

Flush all memtables for the given column families, or all columnfamilies for the given keyspace if none are explicitly listed.

Parameters:
  `keyspaceName` -
  `columnFamilies` -
Throws:
  `java.io.IOException`
  `java.util.concurrent.ExecutionException`
  `java.lang.InterruptedException`

#### repairAsync

    int repairAsync(java.lang.String keyspace,
                    java.util.Map<java.lang.String,java.lang.String> options)

Invoke repair asynchronously. You can track repair progress by subscribing JMX notification sent from this StorageServiceMBean. Notification format is: type: "repair" userObject: int array of length 2, [0]=command number, [1]=ordinal of ActiveRepairService.Status

Parameters:
  `keyspace` - Keyspace name to repair. Should not be null.
  `options` - repair option.
Returns:
  Repair command number, or 0 if nothing to repair

#### forceRepairAsync

    @Deprecated
    int forceRepairAsync(java.lang.String keyspace,
                                     boolean isSequential,
                                     java.util.Collection<java.lang.String> dataCenters,
                                     java.util.Collection<java.lang.String> hosts,
                                     boolean primaryRange,
                                     boolean fullRepair,
                                     java.lang.String... columnFamilies)
                              throws java.io.IOException

Deprecated. use `repairAsync(String keyspace, Map options)` instead.

Throws:
  `java.io.IOException`

#### forceRepairAsync

    @Deprecated
    int forceRepairAsync(java.lang.String keyspace,
                                     int parallelismDegree,
                                     java.util.Collection<java.lang.String> dataCenters,
                                     java.util.Collection<java.lang.String> hosts,
                                     boolean primaryRange,
                                     boolean fullRepair,
                                     java.lang.String... columnFamilies)

Deprecated. use `repairAsync(String keyspace, Map options)` instead.
Invoke repair asynchronously. You can track repair progress by subscribing JMX notification sent from this StorageServiceMBean. Notification format is: type: "repair" userObject: int array of length 2, [0]=command number, [1]=ordinal of ActiveRepairService.Status

Parameters:
  `parallelismDegree` - 0: sequential, 1: parallel, 2: DC parallel
Returns:
  Repair command number, or 0 if nothing to repair

#### forceRepairRangeAsync

    @Deprecated
    int forceRepairRangeAsync(java.lang.String beginToken,
                                          java.lang.String endToken,
                                          java.lang.String keyspaceName,
                                          boolean isSequential,
                                          java.util.Collection<java.lang.String> dataCenters,
                                          java.util.Collection<java.lang.String> hosts,
                                          boolean fullRepair,
                                          java.lang.String... columnFamilies)
                                   throws java.io.IOException

Deprecated. use `repairAsync(String keyspace, Map options)` instead.

Throws:
  `java.io.IOException`

#### forceRepairRangeAsync

    @Deprecated
    int forceRepairRangeAsync(java.lang.String beginToken,
                                          java.lang.String endToken,
                                          java.lang.String keyspaceName,
                                          int parallelismDegree,
                                          java.util.Collection<java.lang.String> dataCenters,
                                          java.util.Collection<java.lang.String> hosts,
                                          boolean fullRepair,
                                          java.lang.String... columnFamilies)

Deprecated. use `repairAsync(String keyspace, Map options)` instead.
Same as forceRepairAsync, but handles a specified range

Parameters:
  `parallelismDegree` - 0: sequential, 1: parallel, 2: DC parallel

#### forceRepairAsync

    @Deprecated
    int forceRepairAsync(java.lang.String keyspace,
                                     boolean isSequential,
                                     boolean isLocal,
                                     boolean primaryRange,
                                     boolean fullRepair,
                                     java.lang.String... columnFamilies)

Deprecated. use `repairAsync(String keyspace, Map options)` instead.

#### forceRepairRangeAsync

    @Deprecated
    int forceRepairRangeAsync(java.lang.String beginToken,
                                          java.lang.String endToken,
                                          java.lang.String keyspaceName,
                                          boolean isSequential,
                                          boolean isLocal,
                                          boolean fullRepair,
                                          java.lang.String... columnFamilies)

Deprecated. use `repairAsync(String keyspace, Map options)` instead.

#### forceTerminateAllRepairSessions

    void forceTerminateAllRepairSessions()

#### decommission

    void decommission()
               throws java.lang.InterruptedException

transfer this node's data to other machines and remove it from service.

Throws:
  `java.lang.InterruptedException`

#### move

    void move(java.lang.String newToken)
       throws java.io.IOException

Parameters:
  `newToken` - token to move this node to. This node will unload its data onto its neighbors, and bootstrap to the new token.
Throws:
  `java.io.IOException`

#### removeNode

    void removeNode(java.lang.String token)

removeToken removes token (and all data associated with enpoint that had it) from the ring

#### getRemovalStatus

    java.lang.String getRemovalStatus()

Get the status of a token removal.

#### forceRemoveCompletion

    void forceRemoveCompletion()

Force a remove operation to finish.

#### setLoggingLevel

    void setLoggingLevel(java.lang.String classQualifier,
                         java.lang.String level)
                  throws java.lang.Exception

set the logging level at runtime
If both classQualifer and level are empty/null, it will reload the configuration to reset.
If classQualifer is not empty but level is empty/null, it will set the level to null for the defined classQualifer
If level cannot be parsed, then the level will be defaulted to DEBUG
The logback configuration should have < jmxConfigurator /> set

Parameters:
  `classQualifier` - The logger's classQualifer
  `level` - The log level
Throws:
  `java.lang.Exception`
See Also:
  `Level.toLevel(String)`

#### getLoggingLevels

    java.util.Map<java.lang.String,java.lang.String> getLoggingLevels()

get the runtime logging levels

#### getOperationMode

    java.lang.String getOperationMode()

get the operational mode (leaving, joining, normal, decommissioned, client)

#### isStarting

    boolean isStarting()

Returns whether the storage service is starting or not

#### getDrainProgress

    java.lang.String getDrainProgress()

get the progress of a drain operation

#### drain

    void drain()
        throws java.io.IOException,
               java.lang.InterruptedException,
               java.util.concurrent.ExecutionException

makes node unavailable for writes, flushes memtables and replays commitlog.

Throws:
  `java.io.IOException`
  `java.lang.InterruptedException`
  `java.util.concurrent.ExecutionException`

#### truncate

    void truncate(java.lang.String keyspace,
                  java.lang.String columnFamily)
           throws java.util.concurrent.TimeoutException,
                  java.io.IOException

Truncates (deletes) the given columnFamily from the provided keyspace. Calling truncate results in actual deletion of all data in the cluster under the given columnFamily and it will fail unless all hosts are up. All data in the given column family will be deleted, but its definition will not be affected.

Parameters:
  `keyspace` - The keyspace to delete from
  `columnFamily` - The column family to delete data from.
Throws:
  `java.util.concurrent.TimeoutException`
  `java.io.IOException`

#### getOwnership

    java.util.Map<java.net.InetAddress,java.lang.Float> getOwnership()

given a list of tokens (representing the nodes in the cluster), returns a mapping from "token -> %age of cluster owned by that token"

#### effectiveOwnership

    java.util.Map<java.net.InetAddress,java.lang.Float> effectiveOwnership(java.lang.String keyspace)
                                                                    throws java.lang.IllegalStateException

Effective ownership is % of the data each node owns given the keyspace we calculate the percentage using replication factor. If Keyspace == null, this method will try to verify if all the keyspaces in the cluster have the same replication strategies and if yes then we will use the first else a empty Map is returned.

Throws:
  `java.lang.IllegalStateException`

#### getKeyspaces

    java.util.List<java.lang.String> getKeyspaces()

#### getNonSystemKeyspaces

    java.util.List<java.lang.String> getNonSystemKeyspaces()

#### updateSnitch

    void updateSnitch(java.lang.String epSnitchClassName,
                      java.lang.Boolean dynamic,
                      java.lang.Integer dynamicUpdateInterval,
                      java.lang.Integer dynamicResetInterval,
                      java.lang.Double dynamicBadnessThreshold)
               throws java.lang.ClassNotFoundException

Change endpointsnitch class and dynamic-ness (and dynamic attributes) at runtime

Parameters:
  `epSnitchClassName` - the canonical path name for a class implementing IEndpointSnitch
  `dynamic` - boolean that decides whether dynamicsnitch is used or not
  `dynamicUpdateInterval` - integer, in ms (default 100)
  `dynamicResetInterval` - integer, in ms (default 600,000)
  `dynamicBadnessThreshold` - double, (default 0.0)
Throws:
  `java.lang.ClassNotFoundException`

#### stopGossiping

    void stopGossiping()

#### startGossiping

    void startGossiping()

#### isGossipRunning

    boolean isGossipRunning()

#### stopDaemon

    void stopDaemon()

#### isInitialized

    boolean isInitialized()

#### stopRPCServer

    void stopRPCServer()

#### startRPCServer

    void startRPCServer()

#### isRPCServerRunning

    boolean isRPCServerRunning()

#### stopNativeTransport

    void stopNativeTransport()

#### startNativeTransport

    void startNativeTransport()

#### isNativeTransportRunning

    boolean isNativeTransportRunning()

#### joinRing

    void joinRing()
           throws java.io.IOException

Throws:
  `java.io.IOException`

#### isJoined

    boolean isJoined()

#### setStreamThroughputMbPerSec

    void setStreamThroughputMbPerSec(int value)

#### getStreamThroughputMbPerSec

    int getStreamThroughputMbPerSec()

#### setInterDCStreamThroughputMbPerSec

    void setInterDCStreamThroughputMbPerSec(int value)

#### getInterDCStreamThroughputMbPerSec

    int getInterDCStreamThroughputMbPerSec()

#### getCompactionThroughputMbPerSec

    int getCompactionThroughputMbPerSec()

#### setCompactionThroughputMbPerSec

    void setCompactionThroughputMbPerSec(int value)

#### isIncrementalBackupsEnabled

    boolean isIncrementalBackupsEnabled()

#### setIncrementalBackupsEnabled

    void setIncrementalBackupsEnabled(boolean value)

#### rebuild

    void rebuild(java.lang.String sourceDc)

Initiate a process of streaming data for which we are responsible from other nodes. It is similar to bootstrap except meant to be used on a node which is already in the cluster (typically containing no data) as an alternative to running repair.

Parameters:
  `sourceDc` - Name of DC from which to select sources for streaming or null to pick any node

#### bulkLoad

    void bulkLoad(java.lang.String directory)

Starts a bulk load and blocks until it completes.

#### bulkLoadAsync

    java.lang.String bulkLoadAsync(java.lang.String directory)

Starts a bulk load asynchronously and returns the String representation of the planID for the new streaming session.

#### rescheduleFailedDeletions

    void rescheduleFailedDeletions()

#### loadNewSSTables

    void loadNewSSTables(java.lang.String ksName,
                         java.lang.String cfName)

Load new SSTables to the given keyspace/columnFamily

Parameters:
  `ksName` - The parent keyspace name
  `cfName` - The ColumnFamily name where SSTables belong

#### sampleKeyRange

    java.util.List<java.lang.String> sampleKeyRange()

Return a List of Tokens representing a sample of keys across all ColumnFamilyStores. Note: this should be left as an operation, not an attribute (methods starting with "get") to avoid sending potentially multiple MB of data when accessing this mbean by default. See CASSANDRA-4452.

Returns:
  set of Tokens as Strings

#### rebuildSecondaryIndex

    void rebuildSecondaryIndex(java.lang.String ksName,
                               java.lang.String cfName,
                               java.lang.String... idxNames)

rebuild the specified indexes

#### resetLocalSchema

    void resetLocalSchema()
                   throws java.io.IOException

Throws:
  `java.io.IOException`

#### setTraceProbability

    void setTraceProbability(double probability)

Enables/Disables tracing for the whole system. Only thrift requests can start tracing currently.

Parameters:
  `probability` - ]0,1[ will enable tracing on a partial number of requests with the provided probability. 0 will disable tracing and 1 will enable tracing for all requests (which mich severely cripple the system)

#### getTraceProbability

    double getTraceProbability()

Returns the configured tracing probability.

#### disableAutoCompaction

    void disableAutoCompaction(java.lang.String ks,
                               java.lang.String... columnFamilies)
                        throws java.io.IOException

Throws:
  `java.io.IOException`

#### enableAutoCompaction

    void enableAutoCompaction(java.lang.String ks,
                              java.lang.String... columnFamilies)
                       throws java.io.IOException

Throws:
  `java.io.IOException`

#### deliverHints

    void deliverHints(java.lang.String host)
               throws java.net.UnknownHostException

Throws:
  `java.net.UnknownHostException`

#### getClusterName

    java.lang.String getClusterName()

Returns the name of the cluster

#### getPartitionerName

    java.lang.String getPartitionerName()

Returns the cluster partitioner

#### getTombstoneWarnThreshold

    int getTombstoneWarnThreshold()

Returns the threshold for warning of queries with many tombstones

#### setTombstoneWarnThreshold

    void setTombstoneWarnThreshold(int tombstoneDebugThreshold)

Sets the threshold for warning queries with many tombstones

#### getTombstoneFailureThreshold

    int getTombstoneFailureThreshold()

Returns the threshold for abandoning queries with many tombstones

#### setTombstoneFailureThreshold

    void setTombstoneFailureThreshold(int tombstoneDebugThreshold)

Sets the threshold for abandoning queries with many tombstones

#### getBatchSizeFailureThreshold

    int getBatchSizeFailureThreshold()

Returns the threshold for rejecting queries due to a large batch size

#### setBatchSizeFailureThreshold

    void setBatchSizeFailureThreshold(int batchSizeDebugThreshold)

Sets the threshold for rejecting queries due to a large batch size

#### setHintedHandoffThrottleInKB

    void setHintedHandoffThrottleInKB(int throttleInKB)

Sets the hinted handoff throttle in kb per second, per delivery thread.

#### resumeBootstrap

    boolean resumeBootstrap()

Resume bootstrap streaming when there is failed data streaming.

Returns:
  true if the node successfully starts resuming. (this does not mean bootstrap streaming was success.)