On 28 Oct 2011, at 12:55, chuang wrote:

> I read the source in riak-0.4.12.
> 
> When a new node join the cluster,it sends reconcile_ring message in 
> riak_core_gossip,then in riak_core_claim.erl reconcile the ring in the 
> cluster.
> In all the join-cluster process,the core function is 
> riak_core_ring:transfer_node,but this function only change ring index,seems 
> there is no place to transfer node data.
> 
> Image that node1 has key A, when node 2 join the cluster,after the reconcile 
> process ends,node 1 and 2 just change their ring index that key A should 
> place in node 2 next time,but the old data in key A is still in node 1! If 
> key A never update its data any more,any reader read key A will miss, cause 
> node 2 now has no data of key A.
> 

Have a look at riak_core_vnode.erl, it does a periodic home check and hands off 
any data to the owning node if ownership changes. I can recommend Ryan 
Zezeski's blog about riak core[1].

[1] https://github.com/rzezeski/try-try-try

> Another question is: merker.erl seems no use? 
> 
> 
> 
> _______________________________________________
> 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