gpt4 book ai didi

mongodb - w :majority on half cluster down? 的用法和行为是什么

转载 作者:可可西里 更新时间:2023-11-01 09:31:00 25 4
gpt4 key购买 nike

考虑一个由 5 个成员组成的副本集:

  • R1,R2,R3,R4 是副本
  • A1 是仲裁者

如果我们在应用程序中使用 w:majority 作为写入关注点:

  • 当所有成员都启动并运行时,在确认写入之前将使用多少个副本?
  • 如果 4 个副本中有 2 个崩溃,如何处理“多数”要求:
    • 这是否意味着我们仍在等待相同数量的副本上的写入完成,这意味着写入被阻止,等待成员开启。
    • arbiter 是否会对这个特定的 writeConcern 产生影响并减少满足 w:majority writeConcern 所需的副本数量?

我理解复制 w: 但大多数似乎是特例: http://docs.mongodb.org/manual/core/write-concern/#write-operations-write-concern“出于写入关注的目的,多数是指集合中的多数选票。因此,仲裁者会影响多数的定义,以帮助防止回滚。”

感谢您的帮助。

最佳答案

有5个成员(4个数据承载,1个仲裁者)的副本集,每个成员有一票,多数是3。因此,w : majority表示写入需要等待ack from成功返回前3个节点。只有复制写入的节点才能确认它——仲裁器增加了多数节点的数量,因为它有投票权,但不能帮助实现多数,因为它不承载数据。如果 2/4 的数据承载节点宕机,那么您将无法获得 3 个确认,因此使用 w:majority 写入不会成功,并且会超时并失败。

为什么仲裁者决定多数?回滚。 w:majority 的关键保证是,如果写入被 w:majority 确认,则在故障转移期间不会回滚。将仲裁者包括在多数计数中对于此保证是必要的。

关于mongodb - w :majority on half cluster down? 的用法和行为是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27039717/

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