组通信系统技术解析
1. 成员变更示例
在组通信系统中,成员变更时有发生。例如,由于 N2 对 N1 过早超时,会引发一系列成员变更操作。当 N3、N4 和 N5 收到 N2 发送的包含 N1 在故障集的加入消息时,它们会将 N1 加入自己的故障集。最终,N2、N3、N4 和 N5 会形成一个新的逻辑环。
而 N1 收到 N2 广播的加入消息后,发现自己在故障集中,根据成员协议,N1 会将 N2 加入自己的故障集并广播加入消息。同样,N1 收到 N3、N4 和 N5 的加入消息后,也会将它们加入故障集,此时 N1 只能形成单例成员。
这里的图腾成员协议与旋转排序器协议的成员协议工作方式差异很大,旋转排序器协议不允许存在多个并发成员。
2. 恢复协议
恢复协议规定了从提交状态到恢复状态、在恢复状态以及从恢复状态到运行状态的操作。在恢复期间,属于旧视图和新视图的节点会按旧视图尽可能多地传递旧视图中发起的消息,然后尝试传递旧视图中不可传递但在由这些节点组成的过渡配置中可传递的消息。需要注意的是,并非所有旧视图中的消息都能传递,比如序列号有间隙时,间隙之后排序的消息就不能传递,因为这可能违反因果关系。
2.1 恢复协议使用的额外字段和本地变量
恢复协议使用一个带有激活额外字段的常规令牌:
- retrans flg :一个布尔变量,指示在过渡配置(由旧视图和新视图共有的节点组成)中是否有旧视图中发起的额外消息必须重新传输。
每个节点还使用以下本地变量:
| 变量名 | 含义 |
| ---- | ---- |
|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



