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: (external edit)
