[
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)