Transaktionen
Anforderungen
- Atomic: Transaktion passiert ganz oder gar nicht
- Consistent: Daten wiedersprechen sich nie
- Isolated: Transaktion hängt nicht von anderer T ab
- Durable: Was commitet ist, ist dauerhaft gespeichert und überlebt einen Crash
Konzepte
- Historie: Abfolge von Operationen ???
- serialisierbar: Transaktionen lassen sich in eine eindeutige Reihenfolge bringen
- Konflikt: Operationen auf dem selben Objekt und mindestens eine Operation ist ein write
- Präzedenzgraf
- 1 -> 2 -> 3 ist serialisierbar und legal
- 1 -> 2 -> 3 -> 2 enthält einen Kreisschluss und ist damit nicht serialisierbar
2-Phasen-Sperrprotokoll
Legalität:
Vor dem Lesen oder Schreiben eines Objektes muss immer eine Lese- oder Schreibsperre geholt werden. Eine Schreibsperre impliziert immer auch eine Lesesperre. Alle Sperren werden nach den Operationen wieder freigegeben.
Sperr-Regel:
Es darf nur entweder eine Schreibsperre oder beliebig viele Lesesperren auf ein Objekt gleichzeitig geben.
Zweiphasigkeit:
Die Anzahl der Sperren muss in der ersten Phase monoton zunehmen und in der zweiten Phase monoton abnehmen. Keine Sperre darf freigegeben werden, bevor die letzte angefordert wurde.
Parallele Validierung
mache ich morgen