Hi Aaron,

On 03/15/2012 10:52 AM, aaron morton wrote:
1. a running cluster of N=3,  R=3
2. upgrade R to 4
You should not be allowed to set the RF higher than the number of nodes.
I'm not sure why this is not allowed. As long as I do not use CL.all there will be enough nodes available to satisfy the read / write (at least when I look at ReadCallback and the WriteResponseHandler). Or am I missing something here?


I'm going to assume that clients on the web server only talk to the local cassandra. So that when you add the new cassandra node it will not have any clients until you serve pages off the node.
Yes that's the general idea; wait until all data is available to the local node before accepting requests (i.e. starting the application).

Thank you for your reply
Regards

0. Personally I would run a repair before doing this to ensure the data is fully distributed.
1. Optionally, increase the CL  QUOURM. See step 3.
2. Add the new node with auto_bootstrap off. It will join the ring, write requests will be sent to it (from other cassandra nodes), but it should not get any direct client reads. It will not stream data from other nodes. 3. It is now possible for a READ to be received at an old node where it is no longer a replica for the row. It has to send the request to another node. If it is sent to the new node (at CL ONE) the read will fail. If you are running at a high CL it will always involve the old nodes.
4. Update the RF to 4. Every node is now a replica for every key.
5. Roll back the CL change.
6. Repair the new node.
7. Turn on the clients for the new node.

Hope that helps.

-----------------
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 15/03/2012, at 9:50 PM, Mikael Wikblom wrote:

Hi,

I'm using cassandra (1.0.8) embedded in the same jvm as a webapplication. All data is available on all nodes (R = N), read / write CL.ONE.

Is it correct to assume in the following scenario that the newly added node has all data locally and that secondary indexes are fully created after the bootstrap process finishes?

scenario:
1. a running cluster of N=3,  R=3
2. upgrade R to 4
3. bootstrap the new node

I would like to avoid having to do the required repair on each node if I upgrade R to 4 after bootstrapping the new node.

Thanks
Regards

--
Mikael Wikblom
Software Architect
SiteVision AB
019-217058
mikael.wikb...@sitevision.se <mailto:mikael.wikb...@sitevision.se>
http://www.sitevision.se







--
Mikael Wikblom
Software Architect
SiteVision AB
019-217058
mikael.wikb...@sitevision.se
http://www.sitevision.se

Reply via email to