根据elasticsearch文档,write_consistency级别仲裁的规则为:
仲裁(>副本/2+1)
使用ES 0.19.10,在具有16个分片/3个副本的设置上,我们将获得16个主分片48个副本
运行2个节点,我们将拥有16(主)+16(副本)= 32个活动分片。
要满足quorum规则,quorum > 48/2 +1= 25个活动分片。
现在,测试证明并非如此,直到我们有3个节点在运行,才能满足write_consistency级别(写入操作超时)。这是有道理的,因为在这种设置中,我们可以在两个节点的组之间建立一个分裂的大脑,但我不太理解这个规则是如何工作的?我是不是用错号码了?
发布于 2014-01-23 10:41:03
主分片计数实际上并不重要,因此我将其替换为N。
如果您的索引包含N个分片和2个副本,则复制组中有3个分片。这意味着仲裁是两个:主副本加一个副本。您需要两个活动碎片,这通常意味着两个活动计算机才能满足写入一致性参数
具有N个分片和3个副本的索引在复制组中有4个分片(主+3个副本),因此quorum为3。
具有N个分片和1个副本的索引是一种特殊情况,因为只有两个分片是不可能真正有quorum的。在只有一个副本的情况下,Elasticsearch只需要一个活动分片(例如主分片),因此quorum设置与这种特定排列的one设置相同。
几点注意事项:
https://stackoverflow.com/questions/17212867
复制相似问题