问题一:Skyros在Leader挂掉后,新当选的Leader如何恢复出已经持久化的请求之间的线性顺序?
Skyros在Leader挂掉后,新当选的Leader如何恢复出已经持久化的请求之间的线性顺序?
参考回答:
在Skyros的机制中,当Leader挂掉后,新当选的Leader会尝试利用请求在每个副本上的偏序关系来恢复已经持久化的请求之间的线性顺序。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/618459
问题二:Skyros的恢复机制是否存在问题?
Skyros的恢复机制是否存在问题?
参考回答:
是的,Skyros的恢复机制存在问题。实际上,新Leader能够利用的信息只有请求在每个副本上的偏序关系,但这些信息并不足以支撑线性顺序的完全恢复,有时可能会导致循环依赖的问题。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/618461
问题三:能否给出一个例子来说明Skyros的问题?
能否给出一个例子来说明Skyros的问题?
参考回答:
可以。比如有三个请求W1,W2,W3和四个副本R1,R2,R3,R4,其中R4是Leader。如果确定W1是先发生的,线性顺序早于W2,W3与W1和W2是并发的请求。此时如果R4挂掉,根据剩余节点上请求的偏序关系,可能会得到W1,W2,W3之间的循环依赖,无法推断出实际的线性序。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/618462
问题四:Tempo是如何解决异步共识里的线性定序难题的?
Tempo是如何解决异步共识里的线性定序难题的?
参考回答:
Tempo通过引入逻辑时间戳来解决异步共识里的线性定序难题。每个提议请求会有指定的Coordinator来负责最终决定请求的逻辑时间戳,通过收集各副本已经分配的逻辑序号情况,来确定具体分配哪个时间戳序号给相关请求,并确保后来的请求不会被分配更小的逻辑序号。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/618463
问题五:Tempo如何解决可能的提议冲突?
Tempo如何解决可能的提议冲突?
参考回答:
对于可能发生的提议冲突,Tempo参考了Fast Paxos来解决。它会进行多轮共识,为有冲突的提议请求提供确定、线性的逻辑时间戳分配。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/618465