gpt4 book ai didi

MongoDB 选举内部

转载 作者:行者123 更新时间:2023-12-05 04:15:37 27 4
gpt4 key购买 nike

我对 MongoDB 内部如何进行投票感到困惑。 MongoDB 文档似乎没有提供细节——他们只是在高层次上讨论了投票。这篇文章 ( Voting in MongoDB) 解释了结果,但没有解释内部结构。

根据我的研究,有两种可能的选择:

  1. 一名成员宣布参加竞选。 All voting members vote yes/no, and the member must receive a majority of yes's in order to be elected primary.
  2. 不知何故要求进行选举。所有有投票权的成员都投给一名成员。获得多数选票(如果有人获得)的人将成为主要选票。

我知道这些很相似,但我需要能够解释演示文稿的投票方式。 哪个选项是正确的?组合?

重要的后续问题:平局时会发生什么,或者如果没有成员获得多数票?

最佳答案

副本集设计的基础概念是基于这样一个事实,即在选举时有大部分副本集可用,即奇数成员(请参阅 mongodb 副本集体系结构文档)。实际上,这实际上是副本集中总票数的大部分,这并不一定意味着每个成员在 v3.0 (mongod) 之前有一票。

理想的选举是这样进行的:

  1. 触发选举
  2. 触发成员将询问其他成员是否会投票:(是,否,否决)
  3. 大多数人"is",它将移至主要
  4. 任何成员“否决”选举失败
  5. 在所有条件不变的情况下,成员投票选出具有最高优先级的成员
  6. 如果优先级最高的成员没有最新的optime,则选举过程将被否决
  7. 在平局中,默认将是它们在副本集配置中列出的顺序
  8. 成员在投赞成票之间必须等待 30 秒(降低多次初选的可能性)

抱歉缺少链接,我不能发布多个链接

仅供引用,我相信 v3.2 将实现一些(如果不是全部)RAFT 算法以达成共识

k chodorow 对选举的很好解释:http://www.kchodorow.com/blog/2012/01/04/replica-set-internals-bootcamp-part-i-elections/

关于MongoDB 选举内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799366/

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