Thanks. but I don't think having more nodes in the example changes the
issue I outlined.

say u have just key "X", rf = 3,  nodes A, B, D are responsible for "X".

in stable mode, the  updates X=1, 2, 3, goes to all 3 servers.

then at this time, node C joins, bootstraps, gets the sstables from B. but
on B, ***right after memtableswitch()***, updates X=4,5,6 arrive and update
the new memtable (the same updates also go to A and D). then B continues to
stream to C, and C gets its state to X=3.

now node C declares itself ready, and D gives up ownership of key "X". but
now the state of C and A, B are different.



On Tue, Jul 28, 2015 at 12:40 PM, Robert Coli <rc...@eventbrite.com> wrote:

> On Tue, Jul 28, 2015 at 1:31 AM, Yang <teddyyyy...@gmail.com> wrote:
>
>> I'm wondering how the Cassandra protocol brings a newly bootstrapped node
>> "up to speed".
>>
>
> Bootstrapping nodes get "extra" replicated copies of data for the range
> they are joining.
>
> So if before the bootstrap the nodes responsible for Key "X" are :
>
> A B D
>
> and you add node C "between" B and D which takes over a sub-set of their
> replicas, writes go to the set A,B,C,D for the duration.
>
> =Rob
>
>

Reply via email to