首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >raft的“提交之前条目”的行为会导致意外的结果吗?

raft的“提交之前条目”的行为会导致意外的结果吗?
EN

Stack Overflow用户
提问于 2018-03-01 00:20:02
回答 1查看 116关注 0票数 0

在raft的论文中,有一个由图描述的情况。

server1重启后可能会提交entry2。

我的问题是:

如果错误地请求了entry2,则客户端的请求会因为server1失败而失败。因此,客户端可能认为错误的行为不是由状态机应用的,而状态机实际上是在server1重启之后应用的,如图(E)所示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-01 01:19:54

使用Raft和任何其他基于不可靠通信的事务系统,如果网络在错误的时间发生故障,客户端的请求总是有可能返回“未定义的”结果。

这个问题是固有的;请参阅Two Generals' Problem

这里的“未定义”意味着客户端不知道事务是否被实际提交。唯一的办法就是打开一个新的事务,然后看一看。

在软件中,这通常被报告为“可重试”异常。

解决这个问题的一种实用方法是(a)在获得可重试异常时始终重试事务,以及(b)确保客户端事务始终是幂等的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49034091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档