You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (JIRA)" <ji...@apache.org> on 2016/08/31 16:56:20 UTC

[jira] [Created] (CASSANDRA-12580) Fix merkle tree size calculation

Paulo Motta created CASSANDRA-12580:
---------------------------------------

             Summary: Fix merkle tree size calculation
                 Key: CASSANDRA-12580
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12580
             Project: Cassandra
          Issue Type: Bug
            Reporter: Paulo Motta
            Assignee: Paulo Motta


On CASSANDRA-5263 it was introduced dynamic merkle tree sizing based on estimated number of partitions as {{estimatedDepth = lg(numPartitions)}}, but on [CompactionManager.doValidationCompaction|https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/db/compaction/CompactionManager.java#L1052] this is being calculated as:

{{int depth = numPartitions > 0 ? (int) Math.min(Math.floor(Math.log(numPartitions)), 20) : 0;}}

This is actually calculating {{ln(numPartitions)}} (base-e) instead of {{lg(numPartitions)}} (base-2), which causes merkle trees to lose resolution, what may result in overstreaming.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)