Here's the scenario: would like R = N where N is the number of nodes. Let's say 
8.

1. Create first node, modify storage-conf.xml and change the <Seed/> to be the 
ip of the node. Change replication factor to 8 for CF of interest. Start the 
puppy up.

2. Create 2nd node, modify storage-confg.xml and change <AutoBootstrap/> to 
true and let it know the first seed. Ensure replication factor is 8 for the CF 
of interest. Start the puppy up.

3. Create 3rd node. 

Q1: Should the node1 and node2 be listed as seeds? Or only node1?

4. Create 4th node. Same question as before.  

Q2: Same question as before ... should the list of seeds grow as the cluster 
grows? Alternative phrasing ... what is the relationship between Seed and 
AutoBootstrap, i.e. can a Seed node in fact be a node that was 
autobootstrapped? Is this considered best practice?

At this point we've got 4 nodes in the cluster ... I've gotten this far with no 
problems, loaded with tons of data and compared performance with various 
replication factors. Seeing faster reads from any particular node (as expected) 
when the ReplicationFactor is equal to the number of nodes in the cluster. Have 
compared lots of single update/creates as well as batch_mutate (which is very 
fast for bootstrapping the CFs -- highly recommended).

And also seeing varying performance on reads (fast, and as expected) when 
ReplicationFactor < N. 

Q3: What, if any issue, is there when R > N?    

This is the situation as you're bringing up nodes in the cluster. And when you 
take down a node (intentionally or as a failure).

I know one consideration is that if R >= N ... and CF data grows ever bigger 
... there will be a hit as the node is created.

Q4: If you know that you're never going to have more than 40 
(MaxExpectedClusterNodes) in your cluster ... is it safe to set R >= 
MaxExpectedClusterNodes? 

Q5: If you set R = MaxExpectedClusterNodes ... and you end up servicing a node 
.... and bringing up an alternate node in its place ... thus having R = N at 
all times ... and then you bring up the N+1 node ... will it start to receive 
the data that it missed while it was down?

I tried asking similar questions a few weeks ago on the IRC ... but have much 
more experience now and am trying to figure out best practices and document for 
my ops team.

-phil

Reply via email to