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 > >