You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Anuj Wadehra (JIRA)" <ji...@apache.org> on 2016/06/21 17:51:58 UTC

[jira] [Updated] (CASSANDRA-12048) Bucket_low property has no effect in STCS Algo

     [ https://issues.apache.org/jira/browse/CASSANDRA-12048?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anuj Wadehra updated CASSANDRA-12048:
-------------------------------------
      Environment: Cassandra 2.2.x
    Fix Version/s:     (was: 2.2.x)

> Bucket_low property has no effect in STCS Algo
> ----------------------------------------------
>
>                 Key: CASSANDRA-12048
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12048
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Compaction
>         Environment: Cassandra 2.2.x
>            Reporter: Anuj Wadehra
>
> It seems that the STCS algorithm is not impacted by setting the Bucket_low Compaction property. Also,I see some optimization in STCS algo.
> Problems:
> 1. getBuckets() method of SizeTieredCompactionStrategy sorts sstables by size in ascending order and then iterates over them one by one to associate them to an existing/new bucket. When, iterating sstables in ascending order of size, I can't find ANY single scenario where the current sstable in the outer loop iteration is below the oldAverageSize of any existing bucket. Current sstable being iterated will ALWAYS be greater than/equal to the oldAverageSize of ALL existing buckets as ALL previous sstables in existing buckets were smaller/equal in size to the sstable being iterated.
> So, there is NO scenario when size > (oldAverageSize * bucketLow) and size < oldAverageSize, so bucket_low property never comes into play no matter what value you set for it.
> 2. While iteraitng over sstables (sortedfiles) by size in ascending order, there is no point iterating over all existing buckets. We could just start from the LAST bucket where previous sstable was associated.  oldAverageSize of ALL other buckets will NEVER allow the sstable being iterated.
>  for (Entry<Long, List<T>> entry : buckets.entrySet())
>             {...}
>  



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