首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Elasticsearch的write_consistency和仲裁规则

了解Elasticsearch的write_consistency和仲裁规则
EN

Stack Overflow用户
提问于 2013-06-20 19:48:50
回答 1查看 4.1K关注 0票数 9

根据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级别(写入操作超时)。这是有道理的,因为在这种设置中,我们可以在两个节点的组之间建立一个分裂的大脑,但我不太理解这个规则是如何工作的?我是不是用错号码了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 10:41:03

主分片计数实际上并不重要,因此我将其替换为N。

如果您的索引包含N个分片和2个副本,则复制组中有3个分片。这意味着仲裁是两个:主副本加一个副本。您需要两个活动碎片,这通常意味着两个活动计算机才能满足写入一致性参数

具有N个分片和3个副本的索引在复制组中有4个分片(主+3个副本),因此quorum为3。

具有N个分片和1个副本的索引是一种特殊情况,因为只有两个分片是不可能真正有quorum的。在只有一个副本的情况下,Elasticsearch只需要一个活动分片(例如主分片),因此quorum设置与这种特定排列的one设置相同。

几点注意事项:

  • 0.19真的很旧了,你应该绝对、绝对、积极地升级。我甚至数不清自该版本以来添加了多少错误修复和性能改进:)
  • 写入一致性只是一个网关检查。在执行索引请求之前,节点将执行稻草轮询,以查看是否满足write_consistency。如果是,它会尝试执行索引并推送复制。这并不能保证副本将succeed...they很容易失败,您将在响应中看到它。这只是一种在不满足一致性设置的情况下暂停索引过程的机制。
  • 具有两个节点的“完全复制”设置是1个主分片+1个副本。每个节点都有一组完整的数据。没有理由拥有更多的副本,因为ES拒绝将相同数据的副本放在同一台机器上(这没有意义,对HA也没有帮助)。无法索引只是写一致性的副作用,但它指出了设置中的一个更大的问题:)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17212867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档