uni:8:dbs2:synchronisation
This is an old revision of the document!
Table of Contents
Synchronisation
Pessimistische Synchronisation mit Sperren
Sperrprotokoll
Nicht Konservativ | Konservativ |
|
---|---|---|
Nicht Strikt | / \ | | \ |
Strikt | / | | / \ |
Konsistenzstufen
- kurz
- lang: Bis EOT
Konsistenzstufe | Schreibsperre | Lesesperre |
---|---|---|
0 | kurz | - |
1 | lang | - |
2 | lang | kurz |
3 | lang | lang |
Sperrverfahren
Verfahren
(Voll)
X | |
---|---|
X | ![]() |
RX
R | X | |
---|---|---|
R | ![]() | ![]() |
X | ![]() | ![]() |
RUX
- U: update/lesen
R | U | X | |
---|---|---|---|
R | ![]() | ![]() | ![]() |
U | ![]() | ![]() | ![]() |
X | ![]() | ![]() | ![]() |
Übergänge:
- U → X: Möchte jetzt schreiben
RAX
- A: = U (update/lesen)
R | A | X | |
---|---|---|---|
R | ![]() | ![]() | ![]() |
A | ![]() | ![]() | ![]() |
X | ![]() | ![]() | ![]() |
Übergänge:
- A → X: Möchte jetzt schreiben
RIX
Auf oberer Ebene (Tabelle):
R | X | IR | IX | RIX | |
---|---|---|---|---|---|
R | ![]() | ![]() | ![]() | ![]() | ![]() |
X | ![]() | ![]() | ![]() | ![]() | ![]() |
IR | ![]() | ![]() | ![]() | ![]() | ![]() |
IX | ![]() | ![]() | ![]() | ![]() | ![]() |
RIX | ![]() | ![]() | ![]() | ![]() | ![]() |
Überprüfung auf unterer Ebene nötig |
---|
- Obere Ebene hat …
- R
- X
- Untere Ebene hat …
- R ⇒ IR
- X ⇒ IX
- Obere Ebene hat R, untere Ebene hat X …
- RIX (mix aus R und IX)
Auf unterer Ebene (Tupel): RX/RUX/RAX
RAC
- A Änderung $V_\text{neu}$ im cache
- C $V_\text{alt}$ wird noch von alten Lesern gelesen
R | A | C | |
---|---|---|---|
R | ![]() | ![]() | ![]() |
A | ![]() | ![]() | ![]() |
C | ![]() | ![]() | ![]() |
Übergänge:
- A → C: Bei commit
Eigenschaften
Verfahren | Kein Verhungern | Deadlockfrei selbes Obj. | Deadlockfrei anderes Obj. | Schedule | Bemerkung |
---|---|---|---|---|---|
RX | ![]() | ![]() | ![]() | kaskadierte freies rücksetzen | Parallele Leser |
RUX | ![]() | ![]() | ![]() | Parallele Leser | |
RAX | ![]() | ![]() | ![]() | Zwar nach kein verklemmen, dafür verhungern für mehr Parallelität |
uni/8/dbs2/synchronisation.1437165918.txt.gz · Last modified: 2020-11-18 18:10 (external edit)