1

我了解基本的 raft 协议以及它如何实现强一致性。但是在我看来,要实现真正的一致性,您需要在每次写入时使用 fsync(不仅在领导者上,而且在追随者上),因为如果您不这样做,即使您认为自己处于安全区大多数“已提交”,这些日志将来可能会丢失,因为它们仍在页面缓存中。

但是在每次写入时使用 fsync 会使系统性能下降几个数量级。

所以我想知道如果我的理解是错误的,他们如何解决权衡或向我解释。

4

1 回答 1

0

所有服务器同时停机的可能性较小。此外,一旦领导者失败或任期发生变化,将选出一个拥有最新日志条目的追随者,并将提交其条目,从而也提交之前任期的所有条目。因此风险被最小化。

于 2019-04-27T16:40:03.553 回答