我了解基本的筏协议及其如何实现强一致性。但是,我认为,要实现真正的一致性,您需要在每次写入时都使用fsync(不仅在领导者上,而且在跟随者上),因为即使您不这样做,即使您认为自己处于安全区域,也要使用fsync。多数“已提交”,这些日志将来可能会丢失,因为它们仍在页面缓存中。
但是在每次写入时使用fsync将使系统性能降低几个数量级。
所以我想知道他们如何解决这个折衷方案,或者如果我的理解是错误的,请向我解释。
答案 0 :(得分:0)
所有服务器同时关闭的机会较小。同样,一旦领导者失败或术语发生变化,具有最新日志条目的关注者中的一个将被选出,并将提交其条目,从而也提交先前术语的所有条目。因此,将风险降到最低。