共享内存与拜占庭原子寄存器算法解析
共享内存算法基础特性
在共享内存的操作中,存在着多种情况和特性需要考虑。首先,如果写入者在发送一些 WRITE 消息后崩溃,那么它之前会向所有进程发送包含 (ts′, v′) 的 PREWRITE 消息。所有 N - f 个正确进程最终会将 (ts′, v′) 存储为预写入对,并且之后不会再更改。当它们都将这个值回复给读取者时, (ts′, v′) 就是可信的,代表了对应于正确进程回复的拜占庭法定人数的选定最大值,读取操作将返回 v′ 。
对于算法的有限写入终止特性,通过上述两种情况的论证可以证明该算法满足这一特性。而对于有效性特性,考虑一个读取操作 or ,假设在 or 调用之前完成的最后一次写入操作 ow 使用了时间戳/值对 (ts, v) 。写入者可能随后调用了一个操作来写入某个值 ¯v 。我们需要确保 or 返回的值要么是 v 要么是 ¯v 。根据算法,这意味着返回值必须与时间戳 ts 或 ts + 1 相关联。由于读取者使用的可信时间戳/值对的定义,并且最多只有 f 个进程可能会向读取者回复错误的值,所以只有写入者写入的值才
超级会员免费看
订阅专栏 解锁全文
16

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



