I recently upgraded ScyllaDB (now running 2026.1) and I want to make sure we aren’t missing out on any performance optimizations and other performance improvements.
What are the recommended post-upgrade schema maintenance tasks I should perform?
I recently upgraded ScyllaDB (now running 2026.1) and I want to make sure we aren’t missing out on any performance optimizations and other performance improvements.
What are the recommended post-upgrade schema maintenance tasks I should perform?
Hi Guy,
After upgrading Scylla, maintaining the schema is often overlooked, previously applied workarounds might have fixes that enable reverting the setting to default for better performance. New features are introduced but not applied and users are missing out on performance or storage use.
Steps described below
Check keyspaces use NetworkTopologyStrategy
Update tombstone_gc = {‘mode’: ‘repair’}
Update compression = {‘sstable_compression’: ‘LZ4WithDictsCompressor’}
Check tables for non default values
Remember to update Materialized Views
To ensure that replicas are distributed between racks ideally it is important to use NetworkTopologyStrategy, if a keyspace is not using this, it can be applied as described below.
ALTER KEYSPACE <keyspace> WITH replication = {'class': 'NetworkTopologyStrategy', '<DC-name>': '3'} ;
When creating a new table, default values for tombstone_gc is timeout, this means a tombstone is not discarded before gc_grace_seconds is passed by default 10 days, to prevent data resurrection a repairs need to finish less than every 10 days.
tombstone_gc = {'mode': 'timeout', 'propagation_delay_in_seconds': '3600'};
Since 2024.1 a new feature allowing tombstones to be discarded after a repair was introduced, this shortens the tombstone life and optimizes table latencies, weekly repairs of the DB is still recommended.
TIP:
Check your tables are using tombstone_gc = repair.
ALTER TABLE <keyspace>.<table>
WITH tombstone_gc = {'mode': 'repair'};
With 2025.4 shared dictionary compression was introduced in scylla, but a schema is touched by upgrade and the DB can be missing schema optimizations that need to be applied by the DB admin.
The default compression method before 2026.1 was LZ4Compressor, any new tables created after upgrading to 2026.1 will use LZ4WithDictsCompressor, this provides better compression in most cases without increasing CPU spend.
compression = {'sstable_compression': 'LZ4Compressor'}
TIP:
Compression can be updated without affecting the DB by applying the command to all tables.
ALTER TABLE <keyspace>.<table>
WITH compression = {'sstable_compression': 'LZ4WithDictsCompressor'}
If the table is currently using ZSTD it should be upgraded to ZSTDWithDictsCompressor, in many cases lz4 can be “upgraded” to ZSTDWithDictsCompressor without affecting latency, if there is a requirement for ultra low latency stay with LZ4
ALTER TABLE <keyspace>.<table>
WITH compression = {'sstable_compression': 'ZSTDWithDictsCompressor'}
Previous applied non default values might be preventing optimal performance, check the tables for non default values and ask yourself why this was applied and check with Scylla if you think this can be reverted to default value.
TIP:
The values below are defaults in 2026.1 check if you have non defaults and evaluate if it should be reverted.
WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'}
AND comment = ''
AND compaction = {'class': 'IncrementalCompactionStrategy'}
AND compression = {'sstable_compression': 'LZ4WithDictsCompressor'}
AND crc_check_chance = 1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND speculative_retry = '99.0PERCENTILE'
AND tombstone_gc = {'mode': 'repair', 'propagation_delay_in_seconds': '3600'};
TIP:
Materialized views should have the same values as basetable in most cases, if you have updated compression or any other value on base table remember to update this on the Materialized view
ALTER MATERIALIZED VIEW <keyspace>.<table>
WITH compression = {'sstable_compression': 'ZSTDWithDictsCompressor'}
AND tombstone_gc = {'mode': 'repair'};