On Fri, May 25, 2012 at 2:29 PM, <yaohaiting.wujue at gmail.com> wrote: > From: HaiTing Yao <wujue.yht at taobao.com> > > On the consistent hash ring, member change should only influence its > neighbors. Now every member change leads to whole cluster recovery. > > 1, Some node need not to start recovery. > > 2, One node does recovery, it need not to connect to all of other nodes > to get its object list. > > Signed-off-by: HaiTing Yao <wujue.yht at taobao.com> It seems nobody has interests on the patch. The hash changes is difficult. The first steps to improve the hash may be obscure and ugly. 1, To make things simple, assume every node has one virtual node One cluster has ten nodes, and data has three copies, and partition like this A 10 B 15 C 25 D 30 E 40 F 50 G 70 H 80 I 85 J 90 One new node K wants to join the cluster, and its partition is 20. The affect nodes is A B K C D, only these nodes need recovery data, not all of nodes. The affected nodes only get objects list from A B K C D, not all of nodes. 2, One node have multible vnodes One node must have multible vnodes now. Lets consider the abov example. Let's assume the ten existed nodes have 64 vnodes by default. If K still has 64 vnodes, althogh there is chance that some nodes maybe not be affected by theory, but I think all of nodes need recovery data by fact. If K has two or three vnodes, then the benefit can be seen. Thanks Haiti |