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

Marcus Eriksson updated CASSANDRA-11696:
----------------------------------------
    Fix Version/s: 3.x
                   3.0.x
                   2.2.x
                   2.1.x
           Status: Patch Available  (was: Open)

branches are below, I will go over them again tomorrow and add a few tests and 
comments.

Patch for 2.1 is very different from the ones for 2.2+ due to the fact that we 
support incremental repair with snapshot ({{-seq}}) repairs there

||branch||testall||dtest||
|[marcuse/11696|https://github.com/krummas/cassandra/tree/marcuse/11696]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-dtest]|
|[marcuse/11696-2.2|https://github.com/krummas/cassandra/tree/marcuse/11696-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-2.2-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-2.2-dtest]|
|[marcuse/11696-3.0|https://github.com/krummas/cassandra/tree/marcuse/11696-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-3.0-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-3.0-dtest]|
|[marcuse/11696-3.7|https://github.com/krummas/cassandra/tree/marcuse/11696-3.7]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-3.7-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-3.7-dtest]|
|[marcuse/11696-trunk|https://github.com/krummas/cassandra/tree/marcuse/11696-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-11696-trunk-dtest]|

for 2.1 it marks sstables as repairing once, when the first validation request 
is received.

For 2.2+ we do the same as in 2.1 for normal non-snapshot repairs and for 
snapshot repairs we make sure we only snapshot once, and then reuse that 
snapshot during the repair. We also need to do anticompaction on the 'real' 
sstables, not the snapshotted ones, so when it is time for anticompaction the 
snapshotted sstables are 'translated' into real sstables (for the ones that 
still exist)

a dtest update is pushed 
[here|https://github.com/krummas/cassandra-dtest/commits/marcuse/11696] - it 
makes sure we run all incremental repair tests both with {{-seq}} and without.

> Incremental repairs can mark too many ranges as repaired
> --------------------------------------------------------
>
>                 Key: CASSANDRA-11696
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11696
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Joel Knighton
>            Assignee: Marcus Eriksson
>            Priority: Critical
>             Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> Incremental repairs are tracked using a parent session - a subordinate repair 
> session is created for each range in the repair. When a node participating in 
> the repair receives a validation request, it will reference the sstables in 
> the parent repair session. When all subordinate sessions conclude, each node 
> anticompacts SSTables based on the parent repair session for the whole range 
> of the repair, but these referenced SSTables may have only been present for 
> the validation of some subset of the ranges because the SSTables were created 
> concurrent with the parent repair session.



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

Reply via email to