Thanks! My missunderstanding was the snitch names are broken up by DC1:RAC1 and the strategy_options takes only the first part of the snitch names?
On Wed, May 30, 2012 at 12:14 PM, Jeff Williams <je...@wherethebitsroam.com> wrote: > First, note that replication is done at the row level, not at the node level. > > That line should look more like: > > placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {DC1: > 1,DC2: 1,DC3: 1 } > > This means that each row will have one copy in each DC and within each DC > it's placement will be according to the partitioner, so could be on any of > the nodes in the each DC. > > So, don't think of it as nodes replicating, but rather as how nodes should > store a copy of each row in each DC. > > Also, replication does not relate the the seed nodes. Seed nodes allow the > nodes to find each other initially, but are not special otherwise - any node > can be used as a seed node. > > So if you had a strategy like: > > placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {DC1: > 3,DC2: 2,DC3: 1 } > > Each row would exist on 3 of 4 nodes in DC1, 2 of 4 nodes in DC2 and on one > of the nodes in DC3. Again, with the placement in each DC due to the > partitioner, based on the row key. > > Jeff > > On May 29, 2012, at 11:25 PM, David Fischer wrote: > >> Ok now i am confused :), >> >> ok if i have the following >> placement_strategy = 'NetworkTopologyStrategy' and strategy_options = >> {DC1:R1,DC2:R1,DC3:R1 } >> >> this means in each of my datacenters i will have one full replica that >> also can be seed node? >> if i have 3 node in addition to the DC replica's with normal token >> calculations a key can be in any datacenter plus on each of the >> replicas right? >> It will show 12 nodes total in its ring >> >> On Thu, May 24, 2012 at 2:39 AM, aaron morton <aa...@thelastpickle.com> >> wrote: >>> This is partly historical. NTS (as it is now) has not always existed and >>> was not always the default. In days gone by used to be a fella could run a >>> mighty fine key-value store using just a Simple Replication Strategy. >>> >>> A different way to visualise it is a single ring with a Z axis for the >>> DC's. When you look at the ring from the top you can see all the nodes. >>> When you look at it from the side you can see the nodes are on levels that >>> correspond to their DC. Simple Strategy looks at the ring from the top. NTS >>> works through the layers of the ring. >>> >>>> 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. >>> Nodes having a DC is a feature of *some* snitches and utilised by the >>> *some* of the replication strategies (and by the messaging system for >>> network efficiency). For background, mapping from row tokens to nodes is >>> based on http://en.wikipedia.org/wiki/Consistent_hashing >>> >>> Hope that helps. >>> ----------------- >>> Aaron Morton >>> Freelance Developer >>> @aaronmorton >>> http://www.thelastpickle.com >>> >>> On 24/05/2012, at 1:07 AM, java jalwa wrote: >>> >>>> 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. >>>>> >>> >