Limiting Nodetool Parallel Threads
A handy feature was silently added to Apache Cassandra’s nodetool
just over a year ago. The feature added was the -j
(jobs) option. This little gem controls the number of compaction threads to use when running either a scrub
, cleanup
, or upgradesstables
. The option was added to nodetool
via CASSANDRA-11179 to version 3.5. It has been back ported to Apache Cassandra versions 2.1.14, 2.2.6, and 3.5.
If unspecified, nodetool
will use 2 compaction threads. When this value is set to 0 all available compaction threads are used to perform the operation. Note that the total number of available compaction threads is controlled by the concurrent_compactors
property in the cassandra.yaml configuration file. Examples of how it can be used are as follows.
$ nodetool scrub -j 3
$ nodetool cleanup -j 1
$ nodetool upgradesstables -j 1
The option is most useful in situations where disk space is scarce and a limited number of threads for the operation need to be used to avoid disk exhaustion.