Skip to content

Conversation

smiklosovic
Copy link

No description provided.

Add ZstdDictionaryCompressor and wire to the read and the write path

Resolve a correct dictionary compressor on the read path

lazily init ZstdDictCompress and ZstdDictDecompress

checksumming

Added compression dictionary table and accessors

Wire to System table access to CompressionDictionaryManager

Integrate dictionary trainer

Add nodetool to train dictionary

Cleanup

break CompressionDictionaryManager up

properly release dictionary with reference counting

Add ZstdDictionaryCompressorTest

Simplify trainer interface

Bump SSTable version

Add CompressionDictionaryCacheTest

Add ZstdDictionaryTrainerTest

update to use assertJ

Add CompressionDictionaryTrainingConfigTest

Update comments in CompressionDictionaryEventHandler and update exception handling in MessagingService

Add CompressionDictionaryEventHandlerTest

Add CompressionDictionarySchedulerTest

Minor update

Add CompressionDictionaryManagerTest

Add TrainCompressionDictionaryTest (nodetool)

Add CompressionDictionaryIntegrationTest

Tidy up

Add ZstdCompressionDictionaryTest

Add SystemDistributedKeyspaceCompressionDictionaryTest

Add --sampling-rate for the nodetool

Update consistency level from QUORUM to ONE for best effort

Add the missing setCompressionDictionaryManager to sstable writer builders

Add benchmark
@smiklosovic smiklosovic force-pushed the CASSANDRA-17021-yifan branch 2 times, most recently from f76e3e9 to 0496832 Compare October 8, 2025 14:46
@smiklosovic smiklosovic force-pushed the CASSANDRA-17021-yifan branch from 0496832 to ac448a9 Compare October 8, 2025 14:49
* @param <T> the specific type of compression dictionary this compressor supports
*/
public interface IDictionaryCompressor<T extends CompressionDictionary>
public interface IDictionaryCompressor<T extends CompressionDictionary> extends ICompressor
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thinking on this new interface is to provide new behavior to be mixed into the existing ICompressor (composition). I would like to avoid inheritance here. It is just a preference thing; the effects are the same as far as I can foresee.

@yifan-c yifan-c force-pushed the CASSANDRA-17021/zstd-dict-compression-p1 branch from db95727 to a06d9b3 Compare October 8, 2025 22:58
@smiklosovic smiklosovic closed this Oct 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants