cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremiah Jordan (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8004) Run LCS for both repaired and unrepaired data
Date Fri, 31 Oct 2014 14:13:34 GMT


Jeremiah Jordan commented on CASSANDRA-8004:

bq. those new methods all have default implementations, and old compaction strategies should
still work, even if they don't track their own sstables - they get the sstables to compact
from cfs and split them in repaired/unrepaired. We might do it twice per call to 'getNextBackgroundTasks'
though, but that should be fine since we mark the sstables as compacting

Hmm, yeah, I guess it should be fine as long as you are using the same strategy for repaired
and un-repaired it should probably be OK.  The issue I see is if you start doing something
like the LCS for repaired STCS for un-repaired.  If STCS wasn't tracking its own sstables,
then it would trash everything.  So if you call 3rd party repair twice, then the 2nd call
should just decide "nothing to do" and move on.

> Run LCS for both repaired and unrepaired data
> ---------------------------------------------
>                 Key: CASSANDRA-8004
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>              Labels: compaction
>             Fix For: 2.1.2
> If a user has leveled compaction configured, we should run that for both the unrepaired
and the repaired data. I think this would make things a lot easier for end users
> It would simplify migration to incremental repairs as well, if a user runs incremental
repair on its nice leveled unrepaired data, we wont need to drop it all to L0, instead we
can just start moving sstables from the unrepaired leveling straight into the repaired leveling
> Idea could be to have two instances of LeveledCompactionStrategy and move sstables between
the instances after an incremental repair run (and let LCS be totally oblivious to whether
it handles repaired or unrepaired data). Same should probably apply to any compaction strategy,
run two instances and remove all repaired/unrepaired logic from the strategy itself.

This message was sent by Atlassian JIRA

View raw message