[
https://issues.apache.org/jira/browse/CASSANDRA-5936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13805352#comment-13805352
]
Jonathan Ellis commented on CASSANDRA-5936:
-------------------------------------------
So basically, it promotes to the first level L where L+1 has overlapping data
with it, or where L+2 has more than 10*sstable size bytes overlapping with it.
There's also a special case that if there are other L0 sstables overlapping it,
it stays in L0.
I don't think that last part fits our design (remember that LDB stops writes
when L0 is full). I'm also curious why this logic is only? run for L0
compactions. But it does sound like a good improvement.
> Improve the way we pick L0 compaction candidates
> ------------------------------------------------
>
> Key: CASSANDRA-5936
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5936
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Marcus Eriksson
> Assignee: Marcus Eriksson
> Fix For: 2.1
>
>
> We could improve the way we pick compaction candidates in level 0 in LCS.
> The most common way for us to get behind on compaction is after repairs, we
> should exploit the fact that the streamed sstables are most often very narrow
> in range since the other nodes in the ring will have a similar
> sstable-range-distribution. We should in theory be able to do 10 concurrent
> compactions involving L1 - ie, partition L0 in buckets defined by the
> sstables in L1 to only keep one L1 SSTable busy for every compaction (be it
> L1 to L2 or L0 to L1).
> we will need some heuristics on when to select candidates from the buckets
> and when to do it the old way (since L0 sstables can span several L1 sstables)
--
This message was sent by Atlassian JIRA
(v6.1#6144)