Wiki

A universe of ideas

User Tools

Site Tools


uni:8:dbs2:synchronisation

This is an old revision of the document!


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 (X) (X) (X) kaskadierte freies rücksetzen Parallele Leser
RUX (V) (V) (X) Parallele Leser
RAX (X) (V) (X) Zwar nach kein verklemmen, dafür verhungern für mehr Parallelität
uni/8/dbs2/synchronisation.1437168395.txt.gz · Last modified: 2020-11-18 18:10 (external edit)