vault backup: 2025-03-25 08:38:01
This commit is contained in:
parent
80e759a50c
commit
14ec6de2c2
1 changed files with 21 additions and 1 deletions
|
@ -8,4 +8,24 @@ Can we take the most basic protocol that satisfies the most basic liveness prope
|
||||||
|
|
||||||
**Why is it different from lock/unlock?** Because this allows failures, and they can also happen in the contention-free period.
|
**Why is it different from lock/unlock?** Because this allows failures, and they can also happen in the contention-free period.
|
||||||
|
|
||||||
PROBLEM: to distinguish a failure from a long delay, we need objects called ***failure detectors***, that provide processes information on the failed processes of the system. According to the type/quality of the info, several F.
|
**PROBLEM:** to distinguish a failure from a long delay, we need objects called ***failure detectors***, that provide processes information on the failed processes of the system. According to the type/quality of the info, several F.D.s can be defined.
|
||||||
|
|
||||||
|
**Eventually restricted leadership:** given a non-empty set of process IDs X, the failure detector $\Omega_{X}$ provides each process a local variable `ev_leader(X)` such that:
|
||||||
|
1. *(Validity)* `ev_leader(x)` always contains a process ID
|
||||||
|
2. *(Eventual leadership)* eventually, all `ev_leader(X)` of all non-crashed processes of X for ever contain the same process ID, that is one of them
|
||||||
|
|
||||||
|
REMARK: the moment in which all variables contain the same leader is unknown
|
||||||
|
|
||||||
|
```
|
||||||
|
REMARK: the moment in which all variables contain the same leader is unknown
|
||||||
|
|
||||||
|
need_help(i) :=
|
||||||
|
NEED_HELP[i] <- true
|
||||||
|
repeat
|
||||||
|
X <- {j : NEED_HELP[j]}
|
||||||
|
until ev_leader(X) = i
|
||||||
|
|
||||||
|
stop_help(i) :=
|
||||||
|
NEED_HELP[i] <- false
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue