Configure compaction
The compaction process merges keys, combines columns, evicts tombstones, consolidates SSTables, and creates a new index in the merged SSTable.
As discussed in How is data maintained?, the compaction process merges keys, combines columns, evicts tombstones, consolidates SSTables, and creates a new index in the merged SSTable.
In the cassandra.yaml
file, you configure these global compaction parameters:
The compaction_throughput_mb_per_sec
parameter is designed for use with large partitions.
The database throttles compaction to this rate across the entire node.
Hyper-Converged Database (HCD) provides a start-up option for test compaction strategies without affecting the production workload.
To configure the compaction strategy property and CQL compaction subproperties, such as the maximum number of SSTables to compact and minimum SSTable size, use the CQL commands CREATE TABLE
or ALTER TABLE
.
Procedure
-
Update a table to set the compaction strategy using the
ALTER TABLE
statement.ALTER TABLE users WITH compaction = { 'class' : 'LeveledCompactionStrategy' }
-
Change the compaction strategy property to
SizeTieredCompactionStrategy
and specify the minimum number of SSTables to trigger a compaction using the CQLmin_threshold
attribute.ALTER TABLE users WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 6 }
Results
You can monitor the results of your configuration using compaction metrics, see Compaction metrics.
What’s next
HCD supports extended logging for Compaction. This utility must be configured as part of the table configuration. The extended compaction logs are stored in a separate file. For details, see Enable extended compaction logging.