我读过 paxos 可用于通过将操作日志同步到复制来保持复制同步。
据我了解,每个 paxos 实例都会在操作中定义一个日志 ID
理想情况下,每个节点上的日志都是这样的,因此它们按照日志 id 的顺序应用操作日志,以保持数据彼此一致
- 删除 ....
- 添加 ...
- 消除 ...
据我了解,日志ID不会一一增加,所以日志应该是这样的:
1.删除....
3.添加...
5.删除...
我想我的问题是在 paxos 实例期间,如果一个节点关闭,它实际上是如何工作的?
因为这个节点会丢失一个日志条目,这个节点在恢复后怎么知道它丢失了一个条目?
根据维基
https://en.wikipedia.org/wiki/Paxos_(computer_science)#Multi-Paxos
Multiple-paxos 似乎以确保 LOG ID 始终无间隙地增加的方式实现。
也就是说,据我了解,每个副本仍然需要定期与一些人交谈,以确保它们是最新的变化。