You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Brandon Williams (JIRA)" <ji...@apache.org> on 2014/04/01 21:44:21 UTC

[jira] [Updated] (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:all-tabpanel ]

Brandon Williams updated CASSANDRA-6961:
----------------------------------------

    Attachment: 6961.txt

Patch to enable this.  We only advertise tokens if some were already saved, so you can still start with join_ring=false, and then use join to bootstrap later (I don't know why anyone would do that, but that's the behavior we had before.)  You can run repair on the node while it's in hibernate, and as a bonus side effect, if you take a blank node and set join_ring=false but don't disable rpc, you have an instant coordinator-only fat client (where before if you did this, you were asking for trouble.)

> 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.8
>
>         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)