[ 
https://issues.apache.org/jira/browse/CASSANDRA-6688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13897932#comment-13897932
 ] 

Jonathan Ellis commented on CASSANDRA-6688:
-------------------------------------------

v2 attached that generalizes the skipLevel approach a bit, but I think we have 
a problem: what we really want to know is (as I edited the comment) whether 
sstables being compacted *into* newLevel might overlap, but I don't think we 
actually track that anywhere.  (Maybe we could walk the in-progress 
CompactionTasks but that is tricky since once we're out of 
getCompactionCandidates we don't have {{synchronized}} to keep things 
race-free.)  So, if we had two compactions skipping levels, we could still get 
into trouble if we're just checking newlevel-1.

> Avoid possible sstable overlaps with leveled compaction
> -------------------------------------------------------
>
>                 Key: CASSANDRA-6688
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6688
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>         Attachments: 0001-6688.patch
>
>
> Two cases where we can end up with overlapping sstables in the leveled 
> manifest;
> FIrst one is when we skip levels during compaction. Here we need to make sure 
> we are not compacting in newLevel - 1 since if, for example, we are doing a 
> L1 -> L2 compaction and then start a new L0 compaction where we decide to 
> skip L1, we could have overlapping sstables in L2 when the compactions are 
> done. This case is new in 2.0 since we check if we skip levels before the 
> compaction starts.
> Second case is where we try to include as many overlapping L0 sstables as 
> possible, here we could add sstables that are not compacting, but overlap 
> sstables that are.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to