Despre blocare - dezvoltare de software și activități conexe

Blocarea - în bazele de date relaționale, aceasta setează o etichetă pe înregistrare, că înregistrarea este blocată pentru modificări. Există două tipuri de încuietori - optimiste și pesimiste.







Blocare optimistă

Cu o blocare optimistă în baza de date, nu există blocare reală. În schimb, se folosește următoarea abordare: dacă în timpul unei tranzacții schimbă datele care au fost modificate după începerea acesteia, tranzacția este întreruptă cu o excepție. Utilizarea încuietori optimiste vă permite să evitați blocările. Pentru a implementa o blocare optimistă, se utilizează adesea versiuni de date - se adaugă o coloană în tabel, care stochează versiunea curentă. Când executați actualizarea, interogarea din clauza unde transferă versiunea datelor care au fost retrase la modificare. Dacă actualizarea a returnat 0 rânduri modificate, atunci datele au fost deja modificate și tranzacția trebuie reluată. În loc de versiune, puteți stoca timpul ultimei modificări a datelor.







Închidere pesimistă

Cu o blocare pesimistă, o blocare exclusivă la nivelul bazei de date este plasată pentru înregistrare, împiedicând astfel accesul la date din alte tranzacții. Există mai multe tipuri de încuietori pesimiste:
  1. citiți blocarea
  2. scrie blocare
Dacă blocați la citire, înregistrarea este blocată atunci când este solicitată din baza de date. Dezavantajul metodei este că, în acest fel, este posibil să se blocheze chiar și acele date care nu se modifică în cadrul tranzacției curente. Dacă blocați scrierea, datele sunt blocate atunci când o actualizați în baza de date până la sfârșitul tranzacției curente. Blocarea datelor este eliminată fie la momentul comiterii, fie la întoarcerea tranzacției.

Comparație între încuietori optimiste și pesimiste

Atunci când dezvoltați software, trebuie să alegeți o strategie de blocare a datelor. Procedând astfel, rețineți următoarele:
  1. Dacă situația de actualizare a acelorași date la un moment dat este relativ rară, este mai avantajos să folosiți o blocare optimistă. În acest caz, nu va exista o operație costisitoare de blocare a resurselor.
  2. Dacă este posibilă o situație de actualizare a acelorași date, este mai bine să utilizați o blocare pesimistă, ceea ce va reduce numărul de tranzacții întrerupte.
  3. De asemenea, trebuie remarcat faptul că, cu o blocare optimistă în cazul unei întreruperi a tranzacției, aceasta trebuie reluată.






Trimiteți-le prietenilor: