Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何理解选举限制中的“除非这个候选人包含了所有已经提交的日志条目” #105

Open
sadtrain opened this issue Dec 20, 2023 · 0 comments

Comments

@sadtrain
Copy link

问题可以拆分成两个子问题。

1.这里的已提交是什么意思?

根据5.3日志复制中的定义:在领导人将创建的日志条目复制到大多数的服务器上的时候,日志条目就会被提交。
我认为在领导人决定提交条目时,一定是接收到了某个follower的true响应之后,自己决定提交,然后把提交指令分发给所有的follower。这个操作并非原子操作。也就是说,即使leader已经提交了,也可能并未将提交请求分发出去。

2.选举的条件问题

如果以1中我的问题为前提,选举条件中的“除非这个候选人包含了所有已经提交的日志条目”,就无法成立了。
因为选举成功要求该节点拥有所有已经提交的日志条目,目的是为了大多数节点中,至少有一个节点拥有刚才提交的条目。
对于我的这个场景,只有上一任leader中的该条目是已提交状态,就无法满足其他节点中至少有一个节点拥有刚才提交的条目。

这里引申出第3个问题

3. 每个条目是否有待提交、已提交状态

其实也是对问题1,2的思考中得到的新问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant