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

Oleksandr Shulgin commented on CASSANDRA-5836:
----------------------------------------------

I think "seed nodes can't bootstrap" is only true for the very first node 
deployed in a cluster (which must be a seed node).  Any further nodes deployed 
into a new cluster *can* bootstrap, but they *don't need* to, since there is no 
data.  For all practical purposes, when deploying a new cluster there is no 
difference if you specify {{auto_bootstrap=false}} or leave the default.  We 
could also say, that bootstrapping of the very first node in the cluster is 
no-op.

Another case when you add seed nodes is when adding a new DC.  In this case 
they are *not* the first ones to start so they could bootstrap, but most of the 
time this is not what you want, so you set {{auto_bootstrap=false}} for every 
node in the new DC, including the new seeds.

Finally, if a seed node is restarted because of maintenance it would help if it 
behaved the same way as normal nodes.  It shouldn't be OK that it runs w/o data 
(due to misconfiguration, for example) and starts to accept read requests again.

I would argue that maintenance safety is much more important than ease of 
initial deployment.  So if we need to make a trade-offs we should favor 
increased safety in the long run.

I think the safest option is to just allow seed nodes to bootstrap, when there 
is are nodes to bootstrap from.  So the *only* special case is the very first 
seed node.

At the same time there is no trade-off to be made really: such a change is 
backwards-compatible.  Users will not notice the difference (though it should 
be documented of course), because as explained above the specific setting of 
{{auto_bootstrap}} is:
1) irrelevant when deploying a new cluster;
and 
2) supposed to be explicitly set to {{false}} when deploying a new DC;
or
3) has be set to {{true}}, when adding a new node to existing DC.

This will allow to bootstrap new nodes directly as seeds as a side-effect.

Did I miss something?


> Seed nodes should be able to bootstrap without manual intervention
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-5836
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5836
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Bill Hathaway
>            Priority: Minor
>
> The current logic doesn't allow a seed node to be bootstrapped.  If a user 
> wants to bootstrap a node configured as a seed (for example to replace a seed 
> node via replace_token), they first need to remove the node's own IP from the 
> seed list, and then start the bootstrap process.  This seems like an 
> unnecessary step since a node never uses itself as a seed.
> I think it would be a better experience if the logic was changed to allow a 
> seed node to bootstrap without manual intervention when there are other seed 
> nodes up in a ring.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to