Într-un sistem partajat cu mai mulți utilizatori, mai mulți utilizatori care operează pe aceleași date pot duce la inconsistență a datelor, astfel că sunt necesare operațiuni de blocare în operațiunile concurente pentru a controla execuția concurentă a tranzacțiilor.
Încuietoare partajată:După cum se poate vedea din nume, blocarea poate fi partajată, operația de scriere nu trebuie să fie partajată, iar de îndată ce datele partajate sunt scrise aleatoriu, nu mai există un "blocaj" de menționat, astfel că blocajul partajat este operația de citire "partajare", adică blocajul nu mai poate fi scris după adăugarea acestui blocaj, dar poate fi citit, poate fi numit și blocaj doar citire.
Încuietori exclusive:Blocarea exclusivă este mai dominantă, atâta timp cât adaug această lacăt, alte operațiuni nu pot fi efectuate, de ce? Pentru că vreau să modific datele, pentru că vreau să le modific, nu trebuie să las pe alții să le modifice din nou și nu trebuie să adaug un blocaj doar pentru citire, pentru că cu un blocaj doar pentru citire nu pot efectua operații de scriere.
De exemplu, dacă tranzacția T1 adaugă un blocaj partajat la datele D1, iar tranzacțiile T2 și T3 adaugă blocaje exclusive datelor D2 și D3, atunci tranzacția T1 adaugă un blocaj partajat datelor (51). Datele perechii T2 ale tranzacțiilor (52).
(51) Răspuns: D
A. D2 și D3 plus încuietoarea sunt reușite B. D2, D3 plus încuietoarea partajată sunt reușite C. D2 plus încuietoarea partajată reușesc, D3 adaugă că încuietoarea eșuează D. D2, D3 plus încuietori exclusive și blocaje partajate toate eșuează
(52) Răspuns: C
A. D1, D3 plus încuietoarea comună au eșuat toate B. D1, D3 plus încuietoarea partajată sunt reușite C. D1 plus blocajul partajat a reușit, D3 a adăugat încă un blocaj defect D. D1 plus lacătul au reușit, iar D3 nu a adăugat lacătul comun
Dacă există o lacăt partajată, poți adăuga un blocat comun, dar nu poți adăuga un blocat exclusiv. Dacă există un blocaj exclusiv, atunci nici blocajul partajat, nici cel exclusiv nu pot fi adăugați.
|