《拜占庭容错寄存器算法解析》
1. 拜占庭安全寄存器概述
在任意故障模型中,存在拜占庭故障的进程,这时需要考虑寄存器抽象。首先引入的是安全寄存器抽象,随后会讨论规则寄存器和原子寄存器。
对于任意故障系统模型中寄存器的规范和实现,假设读写进程仅会出现崩溃故障,而不会有任意(拜占庭)故障。这是因为定义由拜占庭进程操作的寄存器存在固有困难,任意故障的写入者可能以复杂方式影响正确进程返回的值。不过在实际系统中,这种限制并不显著,因为读写进程通常是客户端,而服务对保证任意故障客户端的一致性属性并无兴趣。
2. 日志多数投票算法(读操作部分)
以下是日志多数投票算法读操作部分的代码:
upon event ⟨lonrr, Read ⟩do
rid := rid + 1;
readlist := [⊥]N; reading := TRUE;
trigger ⟨sbeb, Broadcast | [READ, rid] ⟩;
upon event ⟨sbeb, Deliver | p, [READ, r] ⟩do
trigger ⟨sl, Send | p, [VALUE, r, ts, val] ⟩;
upon event ⟨sl, Deliver | q, [VALUE, r, ts′, v′] ⟩such that r = rid do
readlist[q] := (ts′, v′);
if #(readlist) > N/2 ∧reading = TRUE do
v := highestval(readli
超级会员免费看
订阅专栏 解锁全文
33

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



