2-Phasen-Sperrprotokoll

Das 2-Phasen-Sperrprotokoll (Two-Phase-Lock, 2PL) ist ein Nebenläufigkeitsprotokoll, das häufig in realen Datenbanksystemen anzutreffen ist

Das 2-Phasen-Sperr-Protokoll besteht aus zwei :-) Phasen:

  • die 'Wachstumsphase oder Anforderungsphase', in der die Transaktion alle erforderlichen Sperren anfordert,
  • gefolgt von der 'Schrumpfungsphase', in der die Transaktion alle Sperren wieder freigibt.

Dieses Protokoll kennt drei Sperrzustände:

  1. lesend_gesperrt (readlock) oder SLOCK
  2. schreibend_gesperrt (write_lock) oder XLOCK
  3. entsperrt (UNLOCK)

Alle Sperroperationen der Wachstumsphase (SLOCK und XLOCK) werden vor der ersten Entsperroperation in der Schrumpfungsphase (UNLOCK) einer Transaktion ausgeführt. Nach Freigabe einer ihrer Sperren darf eine Transaktion keine weiteren Sperren anfordern. Dieser Ausfuehrungsplan? sichert die Serialisierbarkeit.

Ein Problem, dessen Auftreten beim 2-Phasen_Sperrprotokoll in Kauf genommen wird, ist der DEADLOCK. Es werden verschiedene Strategien zur Vermeidung eines Deadlocks benutzt.

2-Phasen-Sperrprotokoll
2-Phasen-Sperrprotokoll

Kategorie: Transaktionen, 0-9