原文英文,约900词,阅读约需4分钟。
📝
内容提要
共识算法的第六部分讨论了请求的完成。共识系统必须确保已确认的请求不会被遗忘,采用两阶段协议来满足这一要求。请求经历不完整、持久和完成三个阶段。完成与取消是互斥的,收到完成消息后,跟随者可以执行请求的效果。MySQL的半同步协议不支持这种两阶段方法,可能导致问题。
🎯
关键要点
-
共识系统的主要要求是不能忘记已确认的请求。
-
为满足这一要求,引入了两阶段协议,首先将请求作为暂定请求传输给所有节点。
-
请求经历不完整、持久和完成三个阶段,完成与取消是互斥的。
-
收到完成消息后,跟随者可以执行请求的效果;收到取消消息后,跟随者可以删除请求。
-
MySQL的半同步协议不支持这种两阶段方法,可能导致问题,如“分脑”场景。
❓
延伸问答
共识系统如何确保已确认的请求不会被遗忘?
共识系统通过引入两阶段协议,确保已确认的请求不会被遗忘,首先将请求作为暂定请求传输给所有节点。
请求在共识系统中经历哪些阶段?
请求经历不完整、持久和完成三个阶段。
完成与取消请求之间有什么关系?
完成与取消是互斥的,已完成的请求不会被取消,已取消的请求也不会被完成。
MySQL的半同步协议在请求完成方面存在哪些问题?
MySQL的半同步协议不支持两阶段方法,可能导致在未确认的情况下完成请求,从而引发“分脑”场景。
在共识系统中,如何处理请求的完成和取消?
收到完成消息后,跟随者可以执行请求的效果;收到取消消息后,跟随者可以删除请求。
共识系统中,领导者如何确保请求的持久性?
领导者通过向足够多的节点传输请求并获得确认来确保请求的持久性。
🏷️