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

Jeff Jirsa updated CASSANDRA-12961:
-----------------------------------
       Resolution: Fixed
    Fix Version/s:     (was: 4.x)
                   4.0
           Status: Resolved  (was: Ready to Commit)

Thanks [~vusal.ahmadoglu] ! Apologies for the delay in committing, it's up now 
as {{48562536f17a6e88aaf18d46e5ffa0a54c6b5be6}} . Congrats on your first commit 
to the project!.


> LCS needlessly checks for L0 STCS candidates multiple times
> -----------------------------------------------------------
>
>                 Key: CASSANDRA-12961
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12961
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Compaction
>            Reporter: Jeff Jirsa
>            Assignee: Vusal Ahmadoglu
>            Priority: Trivial
>              Labels: lhf
>             Fix For: 4.0
>
>         Attachments: 
> 0001-CASSANDRA-12961-Moving-getSTCSInL0CompactionCandidat.patch
>
>
> It's very likely that the check for L0 STCS candidates (if L0 is falling 
> behind) can be moved outside of the loop, or at very least made so that it's 
> not called on each loop iteration:
> {code}
>         for (int i = generations.length - 1; i > 0; i--)
>         {
>             List<SSTableReader> sstables = getLevel(i);
>             if (sstables.isEmpty())
>                 continue; // mostly this just avoids polluting the debug log 
> with zero scores
>             // we want to calculate score excluding compacting ones
>             Set<SSTableReader> sstablesInLevel = Sets.newHashSet(sstables);
>             Set<SSTableReader> remaining = Sets.difference(sstablesInLevel, 
> cfs.getTracker().getCompacting());
>             double score = (double) SSTableReader.getTotalBytes(remaining) / 
> (double)maxBytesForLevel(i, maxSSTableSizeInBytes);
>             logger.trace("Compaction score for level {} is {}", i, score);
>             if (score > 1.001)
>             {
>                 // before proceeding with a higher level, let's see if L0 is 
> far enough behind to warrant STCS
>                 CompactionCandidate l0Compaction = 
> getSTCSInL0CompactionCandidate();
>                 if (l0Compaction != null)
>                     return l0Compaction;
> ......
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to