sql >> Databáze >  >> RDS >> Oracle

2PL, přísný vs přísný model, existuje nějaká výhoda?

Co je protokol dvoufázového zamykání (2PL)?

A transaction is two-phase locked if:

before reading x, it sets a read lock on x

before writing x, it sets a write lock on x

it holds each lock until after it executes the corresponding operation

after its first unlock operation, it requests no new locks

Co je přísné zamykání fáze?

Zde musí transakce držet všechny své výhradní zámky, dokud není potvrzena/zrušena.

Ale co je přísné 2PL?

Přísné dvoufázové zamykání je ještě přísnější:zde jsou všechny zámky drženy až do potvrzení/zrušení. V tomto protokolu mohou být transakce serializovány v pořadí, ve kterém se zavazují.

Mnohem hlubší :

Strict 2PL :

Stejné jako 2PL, ale podržte všechny exkluzivní zámky, dokud nebude transakce úspěšně potvrzena nebo přerušena. –Zaručuje bezkaskádovou obnovitelnost

Přísné 2PL:

Stejné jako Strict 2PL, ale podržte všechny zámky, dokud nebude transakce úspěšně potvrzena nebo přerušena. – Používá se v dynamických prostředích, kde vzory přístupu k datům nejsou předem známy.

Neexistuje žádná patová situace. Také mladší transakce požadující položku drženou starší transakcí je přerušena a restartována se stejným časovým razítkem, zabrání se tak hladovění.

Doufám, že výše uvedená vysvětlení s diagramem vám musela objasnit koncept a výhody rigorózního oproti druhému.

Děkuji



  1. Jak vytvoříte dočasnou tabulku v databázi Oracle?

  2. Jak najít cestu pg_config

  3. Reprezentace dat, časů a intervalů v PostgreSQL

  4. Sdružování připojení PostgreSQL:Část 3 – Pgpool-II