## 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
`void` `bulkLoad(java.lang.String directory)`
`void` `clearSnapshot(java.lang.String tag, java.lang.String... tableNames)` Remove the snapshot with the given name from the given tables.
`void` `decommission()` transfer this node's data to other machines and remove it from service.
`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` `drain()` makes node unavailable for writes, flushes memtables and replays commitlog.
`java.util.Map<java.lang.String,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` `forceRemoveCompletion()` Force a remove operation to finish.
`int` `forceRepairAsync(java.lang.String tableName, boolean isSequential, boolean primaryRange, java.lang.String... columnFamilies)` Invoke repair asynchronously.
`int` `forceRepairRangeAsync(java.lang.String beginToken, java.lang.String endToken, java.lang.String tableName, boolean isSequential, java.lang.String... columnFamilies)` Same as forceRepairAsync, but handles a specified range
`void` `forceTableCleanup(java.lang.String tableName, java.lang.String... columnFamilies)` Trigger a cleanup of keys on a single keyspace
`void` `forceTableCompaction(java.lang.String tableName, java.lang.String... columnFamilies)` Forces major compaction of a single keyspace
`void` `forceTableFlush(java.lang.String tableName, java.lang.String... columnFamilies)` Flush all memtables for the given column families, or all columnfamilies for the given table if none are explicitly listed.
`void` `forceTableRepair(java.lang.String tableName, boolean isSequential, java.lang.String... columnFamilies)` Triggers proactive repair for given column families, or all columnfamilies for the given table if none are explicitly listed.
`void` `forceTableRepairPrimaryRange(java.lang.String tableName, boolean isSequential, java.lang.String... columnFamilies)` Triggers proactive repair but only for the node primary range.
`void` `forceTableRepairRange(java.lang.String beginToken, java.lang.String endToken, java.lang.String tableName, boolean isSequential, java.lang.String... columnFamilies)` Perform repair of a specific range.
`void` `forceTerminateAllRepairSessions()`
`java.lang.String[]` `getAllDataFileLocations()` Get the list of all data file locations from conf
`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
`int` `getExceptionCount()`
`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.
`double` `getLoad()` Numeric load value.
`java.util.Map<java.lang.String,java.lang.String>` `getLoadMap()` Human-readable load value.
`java.lang.String` `getLoadString()` Human-readable load value
`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 table, java.nio.ByteBuffer key)`
`java.util.List<java.net.InetAddress>` `getNaturalEndpoints(java.lang.String table, 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.lang.String` `getOperationMode()` get the operational mode (leaving, joining, normal, decommissioned, client)
`java.util.Map<java.lang.String,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.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.List<java.lang.String>` `getPrimaryRange()` Returns the local node's primary range.
`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.
`int` `getStreamThroughputMbPerSec()`
`java.lang.String` `getToken()` Fetch a string representation of the token.
`java.util.Map<java.lang.String,java.lang.String>` `getTokenToEndpointMap()` Retrieve a map of tokens to endpoints, including the bootstrapping ones.
`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` `isIncrementalBackupsEnabled()`
`boolean` `isInitialized()`
`boolean` `isJoined()`
`boolean` `isRPCServerRunning()`
`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` `removeToken(java.lang.String token)` removeToken removes token (and all data associated with enpoint that had it) from the ring
`void` `rescheduleFailedDeletions()`
`void` `resetLocalSchema()`
`java.util.List<java.lang.String>` `sampleKeyRange()` Return a List of Tokens representing a sample of keys across all ColumnFamilyStores.
`void` `scrub(java.lang.String tableName, java.lang.String... columnFamilies)` Scrub (deserialize + reserialize at the latest version, skipping bad rows if any) the given keyspace.
`void` `setCompactionThroughputMbPerSec(int value)`
`void` `setIncrementalBackupsEnabled(boolean value)`
`void` `setLog4jLevel(java.lang.String classQualifier, java.lang.String level)` set the logging level at runtime
`void` `setStreamThroughputMbPerSec(int value)`
`void` `startGossiping()`
`void` `startRPCServer()`
`void` `stopGossiping()`
`void` `stopRPCServer()`
`void` `takeColumnFamilySnapshot(java.lang.String tableName, java.lang.String columnFamilyName, java.lang.String tag)` Takes the snapshot of a specific column family.
`void` `takeSnapshot(java.lang.String tag, java.lang.String... tableNames)` Takes the snapshot for the given tables.
`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
`void` `upgradeSSTables(java.lang.String tableName, java.lang.String... columnFamilies)` Rewrite all sstables to the latest version.

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

### getToken

    java.lang.String getToken()

  Fetch a string representation of the token.

  Returns:
    a string token

### 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 InvalidRequestException

  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:
    `InvalidRequestException` - if there is no ring information available about keyspace

### getPrimaryRange

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

  Returns the local node's primary range.

### 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

### getLoad

    double getLoad()

  Numeric load value.

### 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 table,
                                                             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:
    `table` - keyspace name also known as table
    `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 table,
                                                             java.nio.ByteBuffer key)

### takeSnapshot

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

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

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

### takeColumnFamilySnapshot

    void takeColumnFamilySnapshot(java.lang.String tableName,
                                  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:
    `tableName` - 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`

### clearSnapshot

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

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

  Throws:
    `java.io.IOException`

### forceTableCompaction

    void forceTableCompaction(java.lang.String tableName,
                              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`

### forceTableCleanup

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

  Trigger a cleanup of keys on a single keyspace

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

### scrub

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

  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.

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

### upgradeSSTables

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

  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`

### forceTableFlush

    void forceTableFlush(java.lang.String tableName,
                         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 table if none are explicitly listed.

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

### forceRepairAsync

    int forceRepairAsync(java.lang.String tableName,
                         boolean isSequential,
                         boolean primaryRange,
                         java.lang.String... columnFamilies)

  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 AntiEntropyService.Status

  Returns:
    Repair command number, or 0 if nothing to repair
  See Also:
    `forceTableRepair(String, boolean, String...)`

### forceRepairRangeAsync

    int forceRepairRangeAsync(java.lang.String beginToken,
                              java.lang.String endToken,
                              java.lang.String tableName,
                              boolean isSequential,
                              java.lang.String... columnFamilies)

  Same as forceRepairAsync, but handles a specified range

### forceTableRepair

    void forceTableRepair(java.lang.String tableName,
                          boolean isSequential,
                          java.lang.String... columnFamilies)
                          throws java.io.IOException

  Triggers proactive repair for given column families, or all columnfamilies for the given table if none are explicitly listed.

  Parameters:
    `tableName` -
    `columnFamilies` -
  Throws:
    `java.io.IOException`

### forceTableRepairPrimaryRange

    void forceTableRepairPrimaryRange(java.lang.String tableName,
                                      boolean isSequential,
                                      java.lang.String... columnFamilies)
                                      throws java.io.IOException

  Triggers proactive repair but only for the node primary range.

  Throws:
    `java.io.IOException`

### forceTableRepairRange

    void forceTableRepairRange(java.lang.String beginToken,
                               java.lang.String endToken,
                               java.lang.String tableName,
                               boolean isSequential,
                               java.lang.String... columnFamilies)
                               throws java.io.IOException

  Perform repair of a specific range. This allows incremental repair to be performed by having an external controller submitting repair jobs. Note that the provided range much be a subset of one of the node local range.

  Throws:
    `java.io.IOException`

### 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,
                     java.lang.InterruptedException,
                     ConfigurationException

  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`
    `java.lang.InterruptedException`
    `ConfigurationException`

### removeToken

    void removeToken(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.

### setLog4jLevel

    void setLog4jLevel(java.lang.String classQualifier,
                       java.lang.String level)

  set the logging level at runtime

### getOperationMode

    java.lang.String getOperationMode()

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

### 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 UnavailableException,
                         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:
    `UnavailableException` - if some of the hosts in the ring are down.
    `java.util.concurrent.TimeoutException`
    `java.io.IOException`

### getOwnership

    java.util.Map<java.lang.String,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.lang.String,java.lang.Float> effectiveOwnership(java.lang.String keyspace)
                                                                       throws ConfigurationException

  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:
    `ConfigurationException`

### getKeyspaces

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

### updateSnitch

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

  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:
    `ConfigurationException` - classname not found on classpath

### stopGossiping

    void stopGossiping()

### startGossiping

    void startGossiping()

### isInitialized

    boolean isInitialized()

### stopRPCServer

    void stopRPCServer()

### startRPCServer

    void startRPCServer()

### isRPCServerRunning

    boolean isRPCServerRunning()

### joinRing

    void joinRing()
                  throws java.io.IOException,
                         ConfigurationException

  Throws:
    `java.io.IOException`
    `ConfigurationException`

### isJoined

    boolean isJoined()

### getExceptionCount

    int getExceptionCount()

### setStreamThroughputMbPerSec

    void setStreamThroughputMbPerSec(int value)

### getStreamThroughputMbPerSec

    int getStreamThroughputMbPerSec()

### 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)

### 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`

Copyright © 2013 The Apache Software Foundation