Thanks Aaron. That makes things clear. So I guess the 0 - 2^127 range for tokens corresponds to a cluster -level top-level ring. and then you add some logic on top of that with NTS to logically segment that range into sub-rings as per the notion of data clusters defined in NTS. Whats the advantage of having a single top-level ring ? intuitively it seems like each replication group could have a separate ring so that the same tokens can be assigned to nodes in different DC. If the hierarchy is Cluster -> DataCenter -> Node, why exactly do we need globally unique node tokens even though nodes are at the lowest level in the hierarchy.
Thanks again. On Wed, May 23, 2012 at 3:14 AM, aaron morton <aa...@thelastpickle.com> wrote: >> Now if a row key hash is mapped to a range owned by a node in DC3, >> will the Node in DC3 still store the key as determined by the >> partitioner and then walk the ring and store 2 replicas each in DC1 >> and DC2 ? > No, only nodes in the DC's specified in the NTS configuration will be > replicas. > >> Or will the co-ordinator node be aware of the >> replica placement strategy, >> and override the partitioner's decision and walk the ring until it >> first encounters a node in DC1 or DC2 ? and then place the remaining >> replicas ? > The NTS considers each DC to have it's own ring. This can make token > selection in a multi DC environment confusing at times. There is something in > the DS docs about it. > > Cheers > > ----------------- > Aaron Morton > Freelance Developer > @aaronmorton > http://www.thelastpickle.com > > On 23/05/2012, at 3:16 PM, java jalwa wrote: > >> Hi all, >> I am a bit confused regarding the terms "replica" and >> "replication factor". Assume that I am using RandomPartitioner and >> NetworkTopologyStrategy for replica placement. >> From what I understand, with a RandomPartitioner, a row key will >> always be hashed and be stored on the node that owns the range to >> which the key is mapped. >> http://www.datastax.com/docs/1.0/cluster_architecture/replication#networktopologystrategy. >> The example here, talks about having 2 data centers and a replication >> factor of 4 with 2 replicas in each datacenter, so the strategy is >> configured as DC1:2 and DC2:2. Now suppose I add another datacenter >> DC3, and do not change the NetworkTopologyStrategy. >> Now if a row key hash is mapped to a range owned by a node in DC3, >> will the Node in DC3 still store the key as determined by the >> partitioner and then walk the ring and store 2 replicas each in DC1 >> and DC2 ? Will that mean that I will then have 5 replicas in the >> cluster and not 4 ? Or will the co-ordinator node be aware of the >> replica placement strategy, >> and override the partitioner's decision and walk the ring until it >> first encounters a node in DC1 or DC2 ? and then place the remaining >> replicas ? >> >> Thanks. >