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
