cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carl Yeksigian (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-10979) LCS doesn't do L0 STC on new tables while an L0->L1 compaction is in progress
Date Fri, 08 Jan 2016 16:02:39 GMT

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

Carl Yeksigian updated CASSANDRA-10979:
---------------------------------------
    Attachment: 10979-2.1.txt

Because we will drop out of the method early due to the overlapping L1 sstables at [L598|https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java#L598],
this won't return the proper set of sstables. We also need to make sure that we are returning
a {{CompactionCandidate}} which will compact to L0, otherwise we will create overlapping sstables
in L1.

I've attached a new patch which factors out the selection of the STCS compaction, and if we
don't select anything in L0 to compact, we will check to see if we should perform an STCS
compaction.

> LCS doesn't do L0 STC on new tables while an L0->L1 compaction is in progress
> -----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10979
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10979
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Compaction
>         Environment: 2.1.11 / 4.8.3 DSE.
>            Reporter: Jeff Ferland
>              Labels: compaction, leveled
>             Fix For: 2.1.x
>
>         Attachments: 10979-2.1.txt
>
>
> Reading code from https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java
and comparing with behavior shown in https://gist.github.com/autocracy/c95aca6b00e42215daaf,
the following happens:
> Score for L1,L2,and L3 is all < 1 (paste shows 20/10 and 200/100, due to incremental
repair).
> Relevant code from here is
>     if (Sets.intersection(l1overlapping, compacting).size() > 0)
>         return Collections.emptyList();
> Since there will be overlap between what is compacting and L1 (in my case, pushing over
1,000 tables in to L1 from L0 SCTS), I get a pile up of 1,000 smaller tables in L0 while awaiting
the transition from L0 to L1 and destroy my performance.
> Requested outcome is to continue to perform SCTS on non-compacting L0 tables.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message