vault backup: 2025-03-18 08:34:12
This commit is contained in:
parent
4b704e7176
commit
2048accc73
3 changed files with 36 additions and 16 deletions
|
@ -33,6 +33,7 @@ Implementation: every transaction uses a local working space
|
|||
#### A Logical Clock based STM system
|
||||
All the READs perform if no inconsistencies arise, or before any inconsistency
|
||||
|
||||
(definizioni in def qua sotto)
|
||||
>[!def]
|
||||
>Let T be a transaction; its read prefix is formed by all its successful READ before its possible abortion.
|
||||
|
||||
|
@ -108,18 +109,21 @@ VWC allows more transactions to commit -> it is a more liberal property than opa
|
|||
|
||||
#### A Vector clock based STM system
|
||||
We have m shared MRMW registers; register X is represented by a pair XX, with:
|
||||
- XX.val the current value of X
|
||||
- XX.depend[1...m] a vector clock s.t.
|
||||
- XX.depend[X] is the sequence number associated with the current value of X
|
||||
- XX.depend[Y] is the sequence number associated with the value of Y on which the current value of X depends from
|
||||
- `XX.val` the current value of X
|
||||
- `XX.depend[1...m]` a vector clock s.t.
|
||||
- `XX.depend[X]` is the sequence number associated with the current value of X
|
||||
- corresponds to the `date` of the previous algorithm
|
||||
- `XX.depend[Y]` is the sequence number associated with the value of Y on which the current value of X depends from
|
||||
- There is a starvation-free lock object associated to the pair
|
||||
|
||||
We have n processes; process $p_i$ has
|
||||
- for every X, a local copy lc(XX) of the implementation of X
|
||||
- $p\_depend_i[1…m]$ s.t. $p\_depend_i[X]$ is the seq.num. of the last val of X (directly or undirectly) known by $p_i$
|
||||
So for X, I don't just have to track "who modified X", but also "who modified "Y or Z", if they may have influenced X.
|
||||
|
||||
Every transaction T issues by pi has:
|
||||
- read_set(T) and write_set(T)
|
||||
We have n processes; process $p_i$ has
|
||||
- for every X, a local copy `lc(XX)` of the implementation of X
|
||||
- $p\_depend_i[1…m]$ s.t. $p\_depend_i[X]$ is the sequence number of the last val of X (directly or indirectly) known by $p_i$
|
||||
|
||||
Every transaction T issues by $p_i$ has:
|
||||
- `read_set(T)` and `write_set(T)`
|
||||
- $t\_depend_{T}[1…m]$ a local copy of $p\_depend_i$ (this is used in the optimistic execution, not to change $p\_depend_{i}$ if T aborts)
|
||||
|
||||
```
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue