Oracle
 sql >> Baza danych >  >> RDS >> Oracle

2PL, model rygorystyczny kontra ścisły, czy jest jakaś korzyść?

Co to jest protokół blokowania dwufazowego (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 to jest ścisłe blokowanie fazy?

Tutaj transakcja musi posiadać wszystkie swoje wyłączne blokady, dopóki nie zostanie zatwierdzona/przerwana.

Ale co to za rygorystyczne 2PL?

Rygorystyczne blokowanie dwufazowe jest jeszcze bardziej rygorystyczne:tutaj wszystkie blokady są utrzymywane do zatwierdzenia/przerwania. W tym protokole transakcje mogą być serializowane w kolejności, w jakiej są zatwierdzane.

Dużo głębiej :

Ścisłe 2PL:

To samo co 2PL, ale utrzymuj wszystkie blokady na wyłączność, dopóki transakcja nie zostanie pomyślnie zatwierdzona lub przerwana. – Gwarantuje bezkaskadowe odzyskiwanie

Rygorystyczne 2PL:

To samo, co Strict 2PL, ale wstrzymaj wszystkie blokady, dopóki transakcja nie zostanie pomyślnie zatwierdzona lub przerwana. – Jest używany w dynamicznych środowiskach, w których wzorce dostępu do danych nie są wcześniej znane.

Nie ma impasu. Ponadto młodsza transakcja z żądaniem elementu posiadanego przez starszą transakcję jest przerywana i ponownie uruchamiana z tym samym znacznikiem czasu, co pozwala uniknąć głodu.

Mam nadzieję, że powyższe wyjaśnienia z diagramem musiały wyjaśnić Ci koncepcję i przewagi rygorystyczności nad innymi.

Dzięki



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zmień rozmiar typu danych w sql

  2. Oracle SQL — Zidentyfikuj kolejne zakresy wartości

  3. Hierarchiczne pytanie SQL

  4. Oracle wybierz dla zachowania aktualizacji

  5. Podróż przez GIMR