distributed - Raft 是如何线性化的?

标签 distributed consensus raft

我是分布式系统的新手,想知道 Raft 共识算法是如何线性化的。 Raft 通过仲裁提交日志条目。在 leader Raft 提交的那一刻,这意味着超过一半的参与者拥有复制的日志。但是可能有一部分参与者没有最新的日志,或者他们有日志但没有收到提交这些日志的指令。

或者 Raft 的读取线性化是否需要读取法定人数?

最佳答案

好吧,线性化适用于读取和写入,是的,两者都是通过法定人数完成的。要使读取可线性化,读取必须由领导者处理,并且领导者必须在将读取应用到状态机之后但在响应客户端之前验证它没有被更新的领导者取代。。但在实践中,许多现实世界的实现使用宽松的一致性模型进行读取,例如允许从追随者那里读取。但请注意,虽然 quorums 保证了 Raft 集群的线性化,但这并不意味着客户端请求是线性化的。为了将线性化扩展到客户端,必须添加 session 以防止丢弃/重复的客户端请求在 Raft 日志中为单个提交生成多个提交,这将违反线性化。

关于distributed - Raft 是如何线性化的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63933968/

相关文章:

algorithm - 在具有领导者的异步分布式系统中,我如何找到与领导者的距离

.net - .NET 的 BLOB 分布式存储?

algorithm - Raft:如何解决leader节点的性能瓶颈?

ssl - Corda RAFT TLS V1

distributed-computing - Messenger 如何在聊天期间和用户再次登录时保持消息的顺序?

open-source - 分布式文件系统的完整性检查

consensus - RAFT 共识协议(protocol) - 条目在提交之前是否应该持久

distributed - Raft 如何处理 AppendEntries RPC 中的延迟回复?

hyperledger-fabric - super 账本结构 : Add Orderer in running raft network

distributed-system - RAFT 作为协议(protocol)只能支持领导者选举吗?