gpt4 book ai didi

replication - RAFT:提交条目的术语条件

转载 作者:行者123 更新时间:2023-12-02 04:09:59 25 4
gpt4 key购买 nike

我一直在阅读一些关于 Raft 的文档,并且得到了关于提交的相互矛盾的信息。我知道只有当已知条目存储在大多数服务器中时才能提交,但是还有其他条件吗?我读到,当前术语的条目也必须存储在每个服务器中,但其他一些文档对此只字未提。有什么帮助吗?

最佳答案

从技术上讲,存储在大多数服务器上的条目都已提交是不正确的。确实,一旦条目存储在大多数服务器上,领导者就决定提交该条目,但仅限于其当前期限内。来自另一个术语的条目可以存储在大多数服务器上,但永远不会被提交,并且实际上后来会被另一个领导者覆盖。这如 Raft 论文中的图 8 所示。

这就是为什么领导者必须确保当前任期中的条目已提交,然后才能考虑提交先前任期中的任何(其他)条目。一旦选举出领导者,该领导者就可以将前一任期的条目复制到大多数节点,而无需提交这些条目。如果该领导者随后崩溃,则可以选举另一个具有较晚任期条目的领导者,并覆盖存储在大多数集群上的条目。这就是图 8 中所示的内容,这也是 promise 的技术定义如下的原因:一旦领导者当前任期中的条目存储在集群的大多数上,该条目就会被提交,并且一旦领导者任期中的条目被提交,领导者日志中先前任期中的所有条目都会被隐式提交。

这在实践中意味着当领导者当选时,它通常会提交一个无操作条目来强制在当前任期内进行提交。在无操作条目存储在大多数服务器上之前,领导者不会增加其 commitIndex

关于replication - RAFT:提交条目的术语条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37210615/

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