You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tyler Hobbs (JIRA)" <ji...@apache.org> on 2014/04/04 23:41:18 UTC

[jira] [Commented] (CASSANDRA-6961) nodes should go into hibernate when join_ring is false

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

Tyler Hobbs commented on CASSANDRA-6961:
----------------------------------------

I'm seeing some issues with repair while one node is running with join_ring=false.

Here's what I did:
* Start a three node ccm cluster
* Start a stress write with RF=3
* Stop node3
* Start node3
* Run a repair against node3

It looks like the repair finishes everything diffing and streaming, but the repair command hangs, and netstats shows continuously increasing completed Command/Response counts.

> nodes should go into hibernate when join_ring is false
> ------------------------------------------------------
>
>                 Key: CASSANDRA-6961
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6961
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Brandon Williams
>            Assignee: Brandon Williams
>             Fix For: 2.0.7
>
>         Attachments: 6961.txt
>
>
> The impetus here is this: a node that was down for some period and comes back can serve stale information.  We know from CASSANDRA-768 that we can't just wait for hints, and know that tangentially related CASSANDRA-3569 prevents us from having the node in a down (from the FD's POV) state handle streaming.
> We can *almost* set join_ring to false, then repair, and then join the ring to narrow the window (actually, you can do this and everything succeeds because the node doesn't know it's a member yet, which is probably a bit of a bug.)  If instead we modified this to put the node in hibernate, like replace_address does, it could work almost like replace, except you could run a repair (manually) while in the hibernate state, and then flip to normal when it's done.
> This won't prevent the staleness 100%, but it will greatly reduce the chance if the node has been down a significant amount of time.



--
This message was sent by Atlassian JIRA
(v6.2#6252)