Wow. Jason, get out of my head. I was actually gonna go hunt through the code to find out how exactly the chash (circular hash) function works, how Riak knows it has N replicas and how does Riak decide where they get placed.
For example, lets say there are three pnodes (physical nodes). According to "The Ring" section in http://riak.basho.com/edoc/architecture.txt, "...The nodes of a Riak cluster each attempt to run roughly an equal number of vnodes..." In a 30 partition ring (configurable somewhere... forget exactly where, is the default 64?) that means each pnode has 10 vnodes. Do the 10 vnodes share a contiguous key space? Lets say you write to an N=3 bucket. How does Riak know to put the three copies in vnodes 1, 11 and 21 (3 separate pnodes) and not 1,2 and 3 (1 pnode)? Is there some kind of modulo magic going on? Enquiring minds would love to know! Thanks Basho, Alexander ps. "The Ring" section in architecture.txt calls out some specific modules. Are those module names in line with v.0.10+? On Jun 4, 2010, at 12:52 AM, Jason J. W. Williams wrote: > Hello, > > I was reading the "So what does N=3 really mean?" section of > https://wiki.basho.com/display/RIAK/Replication#Replication-ReadRepair > ... > > The part where it states that 3 replicas will not necessarily go to 3 > physically separate nodes very much surprised me. Is there any > guarantee at least two of the three replicas will go to physically > separate nodes? > > Will rack-awareness be possible in the future? > > -J > > _______________________________________________ > riak-users mailing list > [email protected] > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
