You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Taejin Koo (Jira)" <ji...@apache.org> on 2025/09/18 12:54:00 UTC

[jira] [Created] (CASSANDRA-20909) Potential inefficiency in first flush with TrieMemtable + UnifiedCompaction

Taejin Koo created CASSANDRA-20909:
--------------------------------------

             Summary: Potential inefficiency in first flush with TrieMemtable + UnifiedCompaction
                 Key: CASSANDRA-20909
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20909
             Project: Apache Cassandra
          Issue Type: Bug
            Reporter: Taejin Koo


Hello,

I’m a Cassandra newbie, so please correct me if I’ve misunderstood something.

While evaluating Cassandra for adoption, I’ve been testing different modes. In the process of exploring features, I considered using TrieMemtable together with the UnifiedCompaction strategy (level). My thought was that combining the two could allow SSTables created from memtables to utilize token ranges much more efficiently, so I’ve been investigating whether this is feasible.

During this testing, I noticed that the first SSTable created is always generated as a single file. Because only one SSTable is produced, it ends up covering the entire token range, which I believe is highly inefficient.

After digging into the source, I found that the cause seems to be in
{{{}org.apache.cassandra.db.compaction.unified.Controller#getFlushSizeBytes{}}}:
 
{{double envFlushSize = cfs.metric.flushSizeOnDisk.get();}}
For the very first flush, this metric returns {{{}0{}}}, which results in the minimum value of {{1}} being used. This explains why the first SSTable covers the entire token range.

I also experimented with using {{flushSizeOverride}} to generate arbitrary shard values, but since this parameter does not adjust dynamically, I feel this is not a good long-term solution.

Once again, I may be misunderstanding this behavior, so please correct me if my interpretation is wrong.

Thank you. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org