incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Coli <>
Subject Re: How to replace a dead *seed* node while keeping quorum
Date Wed, 12 Sep 2012 22:53:32 GMT
On Tue, Sep 11, 2012 at 4:21 PM, Edward Sargisson
<> wrote:
> If the downed node is a seed node then neither of the replace a dead node
> procedures work (-Dcassandra.replace_token and taking initial_token-1). The
> ring remains split.
> [...]
> In other words, if the host name is on the seeds list then it appears that
> the rest of the ring refuses to bootstrap it.

Close, but not exactly...

"./src/java/org/apache/cassandra/service/" line 559 of 3090
if (DatabaseDescriptor.isAutoBootstrap()
                && !SystemTable.isBootstrapped())
  "This node will not auto bootstrap because it
is configured to be a seed node.");

getSeeds asks your seed provider for a list of seeds. If you are using
the SimpleSeedProvider, this basically turns the list from "seeds" in
cassandra.yaml on the local node into a list of hosts.

So it isn't that the other nodes have this node in their seed list..
it's that the node you are replacing has itself in its own seed list,
and shouldn't. I understand that it can be tricky in conf management
tools to make seed nodes' seed lists not contain themselves, but I
believe it is currently necessary in this case.

FWIW, it's unclear to me (and Aaron Morton, whose curiousity was
apparently equally piqued and is looking into it further..) why
exactly seed nodes shouldn't bootstrap. It's possible that they only
shouldn't bootstrap without being in "hibernate" mode, and that the
code just hasn't been re-written post replace_token/hibernate to say
that it's ok for seed nodes to bootstrap as long as they hibernate...


=Robert Coli
YAHOO - rcoli.palominob
SKYPE - rcoli_palominodb

View raw message