分片分配大概情况,它先搞两个列表,主表和次表,
先把所有分片放到主表中,依次迭代其中的所有分片,尝试分配。
迭代完成后,把主表和次表对调一下,
然后再迭代主表,,,如此循环,
它的意思是说:它在成功分配一个副分片后,会把这个索引的所有其它副分片放到次表里面,
等下次迭代再处理其它副分片。
比如索引a(假定主分片数是1),有主分片,副1,副2,副3,
如果副1分配出去了,它会把副2副3放到次表里面,下次迭代再处理它们。
我看不出什么这么做的好处啊,
因为副1分配了,副2副3也可以继续啊,为什么等到下次迭代呢
1 个回复
emmning - for learn you know
赞同来自: Charele
(0,P,IDX1), (0,P,IDX2), (0,R,IDX1), (0,R,IDX1), (0,R,IDX2), (0,R,IDX2),单次分配分片数量为4,(0,P,IDX1), (0,P,IDX2), (0,R,IDX1),(0,R,IDX2)会得到分配,两个索引都有副本;如果按照你说的方法则只有(0,P,IDX1), (0,P,IDX2), (0,R,IDX1), (0,R,IDX1)分片被分配,只有一个索引有副本。