nodetool upgradesstables

Rewrites SSTables for tables that are not running the current version of DataStax Enterprise.


The location of the cassandra.yaml file depends on the type of installation:
Package installations /etc/dse/cassandra/cassandra.yaml
Tarball installations installation_location/resources/cassandra/conf/cassandra.yaml

Rewrites SSTables for tables that are not running the current version of DataStax Enterprise (DSE) to match current DSE version. Use this command when upgrading your server or changing compression options.

If the SSTables are already on the current version, the command returns immediately and no action is taken.

See sstableupgrade for SSTable compatibility with current DSE version.


nodetool [connection_options] upgradesstables
[-a] [-j num_jobs] [--] 
[keyspace_name table_name [table_name ...]]
Table 1. Legend
Syntax conventions Description
UPPERCASE Literal keyword.
Lowercase Not literal.
Italics Variable value. Replace with a valid option or user-defined value.
[ ] Optional. Square brackets ( [ ] ) surround optional command arguments. Do not type the square brackets.
( ) Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.
| Or. A vertical bar ( | ) separates alternative elements. Type any one of the elements. Do not type the vertical bar.
... Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.
'Literal string' Single quotation ( ' ) marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.
{ key:value } Map collection. Braces ( { } ) enclose map collections or key value pairs. A colon separates the key and the value.
<datatype1,datatype2> Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.
cql_statement; End CQL statement. A semicolon ( ; ) terminates all CQL statements.
[ -- ] Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.
' <schema> ... </schema> ' Search CQL only: Single quotation marks ( ' ) surround an entire XML schema declaration.
@xml_entity='xml_entity_type' Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrconfig files.


The short form and long form parameters are comma-separated.

Connection options

-h, --host hostname
The hostname or IP address of a remote node or nodes. When omitted, the default is the local machine.
-p, --port jmx_port
The JMX port number.
-pw, --password jmxpassword
The JMX password for authenticating with secure JMX. If a password is not provided, you are prompted to enter one.
-pwf, --password-file jmx_password_filepath
The filepath to the file that stores JMX authentication credentials.
-u, --username jmx_username
The username for authenticating with secure JMX.

Command arguments

Separates an option from an argument that could be mistaken for a option.
-a, --include-all-sstables
Upgrade target SSTables, including SSTables already on the current DSE version.
-j, --jobs num_jobs
  • num_jobs - Number of SSTables affected simultaneously. Default: 2.
  • 0 - Use all available compaction threads.
The keyspace name.
One or more table names, separated by a space.


Upgrade all SSTables in all keyspaces and tables

nodetool upgradesstables

Upgrade all SSTables in the cycling keyspace

nodetool upgradesstables --include-all-sstables cycling

Upgrade all SSTables in the cycling keyspace and the cyclist_name table

nodetool upgradesstables --include-all-sstables cycling cyclist_name

Force upgrade all SSTables

Force upgrade all SSTables, including SSTables already on the current DSE version.

nodetool upgradesstables -a 

Force upgrade of target SSTables

Force upgrade the SSTables for the specified keyspace and table, including SSTables already on the current DSE version.

nodetool upgradesstables -a keyspace_name table_name

Upgrade four SSTables simultaneously until all SSTables are upgraded

nodetool upgradesstables --include-all-sstables --jobs 4
Note: The number of jobs cannot exceed the concurrent_compactors configured in cassandra.yaml.