Back to Scylladb

Nodetool compact

docs/operating-scylla/nodetool-commands/compact.rst

latest1.6 KB
Original Source

Nodetool compact

Forces a (major) compaction on one or more tables. Compaction is an optimization that reduces the cost of IO and CPU over time by merging rows in the background.

By default, major compaction runs on all the keyspaces and tables. Major compactions will take all the SSTables for a column family and merge them into a single SSTable per shard. If a keyspace is provided, the compaction will run on all of the tables within that keyspace. If one or more tables are provided as command-line arguments, the compaction will run only on those tables.

.. caution:: It is always best to allow ScyllaDB to automatically run minor compactions using a :doc:compaction strategy </kb/compaction>. Using Nodetool to run compaction can quickly exhaust all resources, increase operational costs, and take up valuable disk space. For this reason, major compactions should be avoided and are not recommended for any production system.

Syntax

.. code-block:: console

nodetool [options] compact [<keyspace> [<cfnames>]...]

Options

The following options are available in Cassandra's nodetool, but are NOT implemented in ScyllaDB's nodetool:

  • -st or --start-token
  • -et or --end-token
  • --user-defined
  • --split-output

Examples

.. code-block:: shell

nodetool compact nodetool compact keyspace1 nodetool compact keyspace1 standard1

See Also

.. include:: nodetool-index.rst

:doc:Compaction Overview </kb/compaction>

:doc:CQL compaction Reference </cql/compaction>

:doc:How to choose a Compaction Strategy </architecture/compaction/compaction-strategies>