[ 
https://issues.apache.org/jira/browse/CASSANDRA-10130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16036027#comment-16036027
 ] 

Andrés de la Peña edited comment on CASSANDRA-10130 at 6/3/17 5:56 PM:
-----------------------------------------------------------------------

bq. Given most of the races come from the 2-phase event-based solution, I'd say 
to simplify it in a way that still at least solves the original issue: that is, 
keep just the SSTableAddedNotification, and mark the index building/built 
around that; this will not protect against failures happening while adding 
SSTables, but again, it would at least solve the original problem of the index 
itself failing after adding the SSTables and missing to rebuild. Then, we can 
think about a more complete solution (i.e. one that doesn't rebuild the whole 
index because of a single failed stream) in another ticket.

Agree, we can think in a wider solution in another ticket. Here is a version of 
the patch that uses only {{SSTableAddedNotification}}, keeping the 2-phase 
{{markIndexBuilding}}/{{markIndexBuilt}} internal to {{SecondaryIndexManager}}:

||[trunk|https://github.com/apache/cassandra/compare/trunk...adelapena:10130-trunk]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-10130-trunk-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-10130-trunk-dtest/]|

The [tests|https://github.com/adelapena/cassandra-dtest/tree/CASSANDRA-10130] 
should show how the approach solves the original problem.


was (Author: adelapena):
bq. Given most of the races come from the 2-phase event-based solution, I'd say 
to simplify it in a way that still at least solves the original issue: that is, 
keep just the SSTableAddedNotification, and mark the index building/built 
around that; this will not protect against failures happening while adding 
SSTables, but again, it would at least solve the original problem of the index 
itself failing after adding the SSTables and missing to rebuild. Then, we can 
think about a more complete solution (i.e. one that doesn't rebuild the whole 
index because of a single failed stream) in another ticket.

Agree, we can think in a wider solution in another ticket. There is a version 
of the patch that uses only {{SSTableAddedNotification}}, keeping the 2-phase 
{{markIndexBuilding}}/{{markIndexBuilt}} internal to {{SecondaryIndexManager}}:

||[trunk|https://github.com/apache/cassandra/compare/trunk...adelapena:10130-trunk]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-10130-trunk-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-10130-trunk-dtest/]|

The [tests|https://github.com/adelapena/cassandra-dtest/tree/CASSANDRA-10130] 
should show how the approach solves the original problem.

> Node failure during 2i update after streaming can have incomplete 2i when 
> restarted
> -----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-10130
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10130
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Coordination
>            Reporter: Yuki Morishita
>            Assignee: Andrés de la Peña
>            Priority: Minor
>
> Since MV/2i update happens after SSTables are received, node failure during 
> MV/2i update can leave received SSTables live when restarted while MV/2i are 
> partially up to date.
> We can add some kind of tracking mechanism to automatically rebuild at the 
> startup, or at least warn user when the node restarts.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to