抛些问题出来,真正解释了这些问题才算理解了论文。:)性能
1. 什么是复制状态机
2. Raft vs Paxos
3. Raft的设计目标understandability,为达到设计目标在作设计时如何权衡
4. 有稳定leader时的行为:
a) 如何确保不一样副本之间的数据一致;
b) 一条日志什么时候能够在状态机上执行;
5. 如何选举?
在Leader切换时必须避免的: a) 双主(split brain) b) 长时间无主(选主是否可收敛) c) 丢失已确认日志 d) 主备数据不一致
6. split vote如何处理?
7. 如何选择超时时间?
8. 真的没可能同时存在两个Leader吗?若是有两个副本同时认为本身是Leader,对读写操做各会形成什么影响?
9. 对选举是否还有其余约束?为了达成什么目的。若是没有这个限制,bad case
10. 是否造成多数派的日志必定是已提交的日志?Raft的设计为何会存在这个问题。
12. nop日志的做用,若是只考虑写操做,是否必须有nop日志?
13. Raft实现的性能瓶颈,如何解决?