gpt4 book ai didi

elasticsearch - 理解Elasticsearch的write_consistency和quorum规则

转载 作者:行者123 更新时间:2023-11-29 02:46:44 25 4
gpt4 key购买 nike

根据elasticsearch文档,write_consistency level quorum的规则是:

法定人数(>副本/2+1)

使用 ES 0.19.10,在具有 16 个分片/3 个副本的设置中,我们将得到16 个主要分片48个副本

运行 2 个节点,我们将有 16(主)+ 16(副本)= 32 个事件分片。

要满足法定人数规则,法定人数 > 48/2 + 1 = 25 个事件分片。

现在,测试证明不是这样,在我们有 3 个节点运行之前,不满足 write_consistency 级别(写操作超时)。这是有道理的,因为在这个设置中我们可以在每组 2 个节点之间得到一个裂脑,但我不太明白这个规则应该如何工作?我在这里使用了错误的数字吗?

最佳答案

主分片数实际上并不重要,所以我将用 N 替换它。

如果你有一个包含 N 个分片和 2 个副本的索引,则复制组中有 3 个分片。这意味着法定人数是两个:主要的加上一个副本。需要两个active shard,通常是两台active机器,才能满足写一致性参数

具有 N 个分片和 3 个副本的索引在复制组中有四个分片(主 + 3 个副本),因此法定人数为三。

具有 N 个分片和 1 个副本的索引是一种特殊情况,因为您不可能真正拥有只有两个分片的法定人数。只有一个副本,Elasticsearch 只需要一个事件分片(例如主分片),因此 quorum 设置与此特定安排的 one 设置相同。

一些注意事项:

  • 0.19 真的很老了,你绝对应该积极升级。我什至无法计算自该版本以来添加了多少错误修复和性能改进:)

  • 写入一致性只是一种网关检查。在执行索引请求之前,节点将进行 straw-poll 以查看是否满足 write_consistency。如果是,它会尝试执行索引并推送复制。这并不能保证副本会成功……它们很容易失败,您会在响应中看到它。如果不满足一致性设置,它只是一种停止索引过程的机制。

  • 具有两个节点的“完全复制”设置是 1 个主分片 + 1 个副本。每个节点都有一套完整的数据。没有理由拥有更多副本,因为 ES 拒绝将相同数据的副本放在同一台机器上(没有意义,无助于 HA)。无法索引只是写入一致性的副作用,但它指出了您的设置存在更大的问题:)

关于elasticsearch - 理解Elasticsearch的write_consistency和quorum规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com