cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuki Morishita (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5351) Avoid repairing already-repaired data by default
Date Tue, 04 Feb 2014 06:20:16 GMT


Yuki Morishita commented on CASSANDRA-5351:

bq. Dropping sstable to UNREPAIRED during major compaction means that all repaired data status
is cleared for the node.

That's what I meant. Current major compaction produces one SSTable and I think changing that
behavior would confuse users, maybe. My opinion is to keep it as is, but .

Additional review comments:

* Does PrepareMessage needs to carry around dataCenters? Only coordinator sends out messages
so I think you can drop it(also from ParentRepairSession).
* CF ID is preferred to use over Keyspace name/CF name pair.
* PrepareMessage is sent per CF but it can produce a lot of round trip. Isn't one message
per replica node enough?
* I think we need clean up for parentRepairSessions when something bad happened. Otherwise
ParentRepairSession in the map keep reference to SSTables.

I just worked on the first one above and the commit is here(on top of your branch):

> Avoid repairing already-repaired data by default
> ------------------------------------------------
>                 Key: CASSANDRA-5351
>                 URL:
>             Project: Cassandra
>          Issue Type: Task
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Lyuben Todorov
>              Labels: repair
>             Fix For: 2.1
>         Attachments: 5351_node1.log, 5351_node2.log, 5351_node3.log, 5351_nodetool.log
> Repair has always built its merkle tree from all the data in a columnfamily, which is
guaranteed to work but is inefficient.
> We can improve this by remembering which sstables have already been successfully repaired,
and only repairing sstables new since the last repair.  (This automatically makes CASSANDRA-3362
much less of a problem too.)
> The tricky part is, compaction will (if not taught otherwise) mix repaired data together
with non-repaired.  So we should segregate unrepaired sstables from the repaired ones.

This message was sent by Atlassian JIRA

View raw message