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

Reply via email to