Manager blocare

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , managerul blocării sau managerul blocării, este un modul al SGBD care se ocupă cu gestionarea blocării .

În majoritatea sistemelor reale, Lock Manager extinde managerul de tranzacții .

Mod operativ

Când o cerere de citire sau scriere ajunge la managerul de tranzacții, acesta din urmă trimite o cerere de blocare adecvată către managerul de blocare.

După ce blocarea a fost atribuită, managerul de tranzacții înaintează solicitarea către managerul de date .

Cereri

Managerul de blocare răspunde la solicitările de următorul tip:

  • Blocare (transaction_id, data_item, mode)
  • Deblocare (transaction_id, data_item)

În acest fel, ID-ul tranzacției solicitante, datele care trebuie blocate și modul de blocare sunt salvate pentru fiecare blocare.

Mod de blocare

Există două modalități principale de blocare a datelor:

  • Partajat (S-lock), folosit pentru citirea datelor
  • Exclusiv (X-lock), folosit pentru a scrie date

Având în vedere aceste două moduri de blocare putem crea o matrice de compatibilitate de execuție.

În tabelul următor vedem când există un conflict sau o compatibilitate a operațiilor:

X-Lock S-Lock
X-Lock Conflict Conflict
S-Lock Conflict Compatibil

Masa de blocare

Managerul de blocare gestionează un tabel de blocare creat printr-o tehnică hash cu datele ca cheie, pentru a accelera căutarea. Fiecare intrare din tabel corespunde unei date. Intrarea conține un pointer către lista de blocări atribuite pentru aceleași date și un pointer către lista de cereri în așteptare pentru acele date. Pentru a facilita eliberarea blocărilor, toate intrările referitoare la aceeași tranzacție sunt legate între ele. Granularitatea blocării poate fi mai degrabă o înregistrare a bazei de date decât o pagină. În acest caz, administratorul tamponului nu va furniza o copie privată a paginii tranzacțiilor, dar va garanta accesul exclusiv prin semafor la copia unică a paginii prezente în pool-ul de tampoane.

Operațiune

Achiziționarea încuietorilor

Pentru a garanta atomicitatea operațiunilor de blocare și deblocare, tabelul de blocare este împărțit în porțiuni reglementate de semafore .

Dacă o cerere de blocare poate fi satisfăcută, o nouă intrare este introdusă în tabelul de blocare; în caz contrar, cererea este pusă în coadă.

Eliberarea încuietorilor

Există două tipuri de moduri de eliberare a blocării:

  • Eliberare imediată
  • Eliberare întârziată

În primul caz, deblocarea se efectuează imediat după executarea operațiunii corespunzătoare, pentru a crește nivelul concurenței sistemului.

În al doilea caz, deblocarea este amânată până la sfârșitul tranzacției, reducând nivelul concurenței în fața unui nivel mai ridicat de izolare.

Bibliografie

  • Paolo Ciaccia, Dario Mario, Lecții în baze de date, 2013, Editrice Esculapio, ISBN 978-8874887187

Elemente conexe