Wat is Tweefasenvergrendeling (2PL)?

Methode voor gelijktijdigheidsbeheer waarbij elke transactie twee fasen heeft, een waarin ze locks neemt en een waarin ze die vrijgeeft, en geen nieuwe locks meer neemt zodra ze begint vrij te geven. Wordt ook two-phase locking genoemd. Ze garandeert serialiseerbaarheid, maar deadlocks kunnen nog steeds optreden.

Japanse benaming: 2相ロック

“Tweefasenvergrendeling (2PL)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van databases.

Vakgebied: Basis van databases

Nu oefenen: vragen over Tweefasenvergrendeling (2PL)

Welke beschrijving van tweefasenvergrendeling (two-phase locking, 2PL), die voor het gelijktijdigheidsbeheer van transacties wordt gebruikt, is juist?

  1. AEen transactie mag willekeurig vaak afwisselen tussen locks nemen en vrijgeven. Dit garandeert dat er nooit deadlocks optreden
  2. BLocks worden alleen genomen voor schrijven, niet voor lezen. Dit voorkomt alle problemen, ook dirty reads
  3. CZodra een transactie een lock vrijgeeft, neemt ze daarna geen nieuwe locks meer. Dit garandeert dat gelijktijdige uitvoering hetzelfde resultaat geeft als seriële uitvoering, maar deadlocks kunnen nog steeds optreden
Antwoord en toelichting tonen

Antwoord: C. Zodra een transactie een lock vrijgeeft, neemt ze daarna geen nieuwe locks meer. Dit garandeert dat gelijktijdige uitvoering hetzelfde resultaat geeft als seriële uitvoering, maar deadlocks kunnen nog steeds optreden

Bij tweefasenvergrendeling (2PL) heeft elke transactie twee fasen: een fase waarin ze de benodigde locks een voor een neemt (de groeifase) en een fase waarin ze die vrijgeeft (de krimpfase), en zodra ze begint locks vrij te geven, neemt ze geen nieuwe meer. Als elke transactie deze regel volgt, is gegarandeerd dat het resultaat van gelijktijdige uitvoering hetzelfde is als wanneer de transacties in een bepaalde volgorde een voor een worden uitgevoerd (serialiseerbaarheid). Een deadlock, waarbij twee transacties elk wachten tot de ander een lock vrijgeeft, kan 2PL echter niet voorkomen, dus het DBMS detecteert deadlocks en lost ze op, bijvoorbeeld door een van de transacties terug te draaien. In de praktijk wordt vaak strikte tweefasenvergrendeling gebruikt, die exclusieve locks tot de commit vasthoudt; die voorkomt ook dat andere transacties niet-gecommitte gegevens lezen.

“Tweefasenvergrendeling (2PL)” in de toelichting

Vragen met “Tweefasenvergrendeling (2PL)” (1)

  1. Welke beschrijving van tweefasenvergrendeling (two-phase locking, 2PL), die voor het gelijktijdigheidsbeheer van transacties wordt gebruikt, is juist?

Verwante termen

Transactie Deadlock ACID-eigenschappen Derde normaalvorm (3NF) ER-diagram (entity-relationshipdiagram) Index (databaseindex) Isolatieniveau Normalisatie NoSQL Primaire sleutel

Naar de woordenlijst