cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Williams (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5888) Need a way to start or bootstrap a node regardless of its current state
Date Wed, 14 Aug 2013 18:14:49 GMT


Brandon Williams commented on CASSANDRA-5888:

bq.  1. can be reproduced by just stopping a cassandra 1.1.12 node, zapping entire data directory
and starting the node again, with same IP and initial token but without -Dcassandra.replace_token

I can't reproduce that, the node correctly bootstrapped for me in this case.  Are you setting
auto_bootstrap to false?

bq. How is that script supposed to know to specify -Dcassandra.replace_token once if and only
if the token is already in the ring and then remove it on subsequent invocations

It can get this information via JMX, and solve the chicken/egg problem of needing a node to
query first by checking the seed list.  This is part of why things like the seed provider
were made more extensible, for management systems that want to automate this sort of thing.

> Need a way to start or bootstrap a node regardless of its current state
> -----------------------------------------------------------------------
>                 Key: CASSANDRA-5888
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Oleg Kibirev
> Currently, there is no straightforward way to start a cassandra node on a given host
without knowing:
> 1. Weather the node's initial_token has been successfully registered through gossip 
> 2. If the node has successfully finished bootstrapping
> 3. Weather data directory has been purged by, say, replacing a dead disk
> Specifically the following cases are problematic:
> 1. If a data directory is purged and the node is restarted with the same host IP and
initial token, the node will successfully start but will not bootstrap, creating a silent
consistency loss.
> 2. If -Dcassandra.replace_token is given, the node will bootstrap again, even if its
successfully bootstrapped already with the same token.
> The information on the correct thing to do can only come from gossip and system keyspace.
Its very difficult to infer correct start arguments from a process external to cassandra and
have it work 100% of the time on large scale. What if a node already gossiped its token but
has not successfully finished bootstrapping - how do I know to drop replace_token and will
it still re-bootstrap?
> Cassandra daemon should always bootstrap on start if it hasn't yet finished bootstrapping
successfully. -Dcassandra.replace_token (or host replacement equivalent with nodes) should
just ALLOW replacing a token of a down node, but not force an unnecessary bootstrap or fail
if the token is not present.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message