[ https://issues.apache.org/jira/browse/CASSANDRA-7409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14077156#comment-14077156 ]
Carl Yeksigian commented on CASSANDRA-7409: ------------------------------------------- I have a first cut of this working now at https://github.com/carlyeks/cassandra/tree/overlapping This adds a new compaction strategy called 'Overlapping', which operates mostly the same as 'Leveled' when max_overlapping_level is configured to 0, except L0 does not do any STCS. When max_overlapping_level is set to non-zero, it will compact without selecting non-overlapping sstables, and will not include any sstables from an upper level. Also, added a new nodetool command to list the sstables in each level for both leveled and overlapping. I haven't benchmarked this strategy yet to compare with regular leveled; that's going to be what I work on next for this. > Allow multiple overlapping sstables in L1 > ----------------------------------------- > > Key: CASSANDRA-7409 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7409 > Project: Cassandra > Issue Type: Improvement > Reporter: Carl Yeksigian > Assignee: Carl Yeksigian > > Currently, when a normal L0 compaction takes place (not STCS), we take up to > MAX_COMPACTING_L0 L0 sstables and all of the overlapping L1 sstables and > compact them together. If we didn't have to deal with the overlapping L1 > tables, we could compact a higher number of L0 sstables together into a set > of non-overlapping L1 sstables. > This could be done by delaying the invariant that L1 has no overlapping > sstables. Going from L1 to L2, we would be compacting fewer sstables together > which overlap. > When reading, we will not have the same one sstable per level (except L0) > guarantee, but this can be bounded (once we have too many sets of sstables, > either compact them back into the same level, or compact them up to the next > level). > This could be generalized to allow any level to be the maximum for this > overlapping strategy. -- This message was sent by Atlassian JIRA (v6.2#6252)