yanwz

Results 2 comments of yanwz

感谢回复。我最近在拜读您的《分布式一致性算法开发实战》 ,其中提到有三种日志模式,1:未提交日志 放在缓存 已提交日志持久化到文件并删除缓存 2:未提交日志直接写入文件 已提交 无操作 3:未提交日志 写入文件和缓存 已提交日志 删除缓存,我上面的问题就是说的第一种模式情况下产生的,因为未提交的日志是没有持久化的。

节点1(leader),2,3,4,5 1:leader收到客户端消息保存到内存(未提交),然后将日志同步给 follower节.2,3将日志保存到内存,当前日志还是未提交状态 2:leader收到2,3节点的确认,将内存中的日志保存至文件,更新commitIndex,此时这条日志在leader节点是已提交状态了; 3:leader 同步 commitIndex 到follwer节点,follower节点将日志保存至文件,删除内存里的日志,更新commitIndex 假设上面第二步执行完leader就down机了,节点2重启(内存中未提交的日志不存在了) ,接下来的选举节点2成为leader(是可以的,因为4,5节点会支持) 这个时候会导致上面第二步节点1已提交的日志被覆盖.