Open CkTD opened 1 year ago
支持 arbiter 副本,arbiter 不维护 FSM,没有用户数据,不能成为主,只能发起投票,必要时协助日志提交。
实现方式
分析 一致性:引入arbiter不会影响一致性。 可用性:引入arbiter会降低可用性。考虑以下场景: 3个节点,时刻A ,挂了一个非arbiter节点,此时 leader 通过arbiter提交一些日志。时刻B,旧的leader 挂了,并且挂掉的非arbiter节点恢复。恢复的节点无法成为主,因为缺失了一些日志,会被 arbiter 节点拒绝。这个是可以接受的,因为故障出现了交集,概率非常小。
对比其他实现
优点:
缺点:
总结:这个方案可以减少空间占用、提高qps,但会增加 latency,降低可用性。
支持 arbiter 副本,arbiter 不维护 FSM,没有用户数据,不能成为主,只能发起投票,必要时协助日志提交。
实现方式
分析 一致性:引入arbiter不会影响一致性。 可用性:引入arbiter会降低可用性。考虑以下场景: 3个节点,时刻A ,挂了一个非arbiter节点,此时 leader 通过arbiter提交一些日志。时刻B,旧的leader 挂了,并且挂掉的非arbiter节点恢复。恢复的节点无法成为主,因为缺失了一些日志,会被 arbiter 节点拒绝。这个是可以接受的,因为故障出现了交集,概率非常小。
对比其他实现
优点:
缺点:
总结:这个方案可以减少空间占用、提高qps,但会增加 latency,降低可用性。