Kontrola konkurentnosti DBMS-a: protokoli zaključavanja i vremenskih oznaka

⚡ Pametni sažetak

Kontrola konkurentnosti u DBMS-u upravlja simultanim transakcijama tako da se one izvršavaju točno bez narušavanja integriteta podataka. Sprječava anomalije poput izgubljenih ažuriranja i prljavih čitanja korištenjem protokola temeljenih na zaključavanju, dvofaznim, vremenskim oznakama i validaciji koji jamče serijalizabilne rezultate.

  • 👥 Osnovna svrha: Kontrola istodobnosti omogućuje mnogim transakcijama da istovremeno dodiruju dijeljene podatke, a istovremeno se čuvajuping baza podataka konzistentna.
  • ⚠️ Spriječene anomalije: Izgubljeno ažuriranje, prljavo čitanje, neponovljivo čitanje i netočan sažetak su četiri problema koja zaustavlja.
  • 🔒 Na temelju brave: Zajedničke i ekskluzivne brave kontroliraju mogu li drugi čitati ili pisati u podatkovnu stavku.
  • 🔁 Dvofazno zaključavanje: Faza rasta preuzima brave, a faza smanjenja ih otpušta, što jamči serijalizabilnost.
  • 🇧🇷 Na temelju vremenske oznake: Starije transakcije imaju prioritet, a konfliktne operacije se poredaju prema vremenskoj oznaci sustava.
  • ✅ Na temelju validacije: Optimistična kontrola radi na lokalnim kopijama, validirajući samo prije faze pisanja.
  • 🎯 Cilj: Maksimalna istodobnost uz minimalne opterećenja, otpornost na kvarove lokacije i komunikacije.

Planeri zaključavanja i vremenskih oznaka u DBMS-u

Što je kontrola istodobnosti?

Kontrola istodobnosti U sustavu za upravljanje bazama podataka postupak je za upravljanje istovremenim operacijama bez međusobnog sukoba. Osigurava da se transakcije baze podataka izvršavaju istovremeno i točno kako bi se dobili ispravni rezultati bez narušavanja integriteta podataka odgovarajuće baze podataka.

Istodobni pristup je prilično jednostavan ako svi korisnici samo čitaju podatke, jer ne postoji način da se međusobno miješaju. Međutim, svaka praktična baza podataka ima kombinaciju operacija ČITANJA i PISANJA, pa istodobnost postaje izazov.

Kontrola konkurentnosti DBMS-a koristi se za rješavanje takvih sukoba, koji se uglavnom javljaju u sustavima s više korisnika. Kontrola konkurentnosti stoga je jedan od najvažnijih elemenata za pravilno funkcioniranje baze podataka gdje se dvije ili više transakcija izvršavaju istovremeno i zahtijevaju pristup istim podacima. Radi ruku pod ruku s upravljanje transakcijama, koji definira jedinice rada koje kontrola konkurentnosti mora sigurno ispreplitati.

Potencijalni problemi istodobnosti

Evo nekih problema s kojima se vjerojatno možete susresti bez odgovarajuće kontrole konkurentnosti DBMS-a:

  • Izgubljena ažuriranja javljaju se kada više transakcija odabere isti redak i ažurira ga na temelju odabrane vrijednosti.
  • Nepotvrđena ovisnost (prljavo čitanje) se događa kada druga transakcija odabere red koji je ažurirala druga transakcija koja još nije potvrđena.
  • Čitanje koje se ne ponavlja događa se kada druga transakcija pristupa istom retku nekoliko puta i svaki put čita različite podatke.
  • Netočan sažetak događa se kada jedna transakcija uzima sažetak vrijednosti svih instanci ponovljene podatkovne stavke dok druga transakcija ažurira nekoliko tih instanci. Rezultirajući sažetak ne odražava točan rezultat.

Zašto koristiti metodu konkurentnosti?

Razlozi za korištenje metode kontrole konkurentnosti u DBMS-u:

  • Primijeniti izolaciju putem međusobnog isključenja između konfliktnih transakcija.
  • Za rješavanje problema sukoba čitanja i pisanja te pisanja i pisanja.
  • Očuvanje konzistentnosti baze podataka stalnim provođenjem ograničenja izvršavanja.
  • Za kontrolu interakcije među istodobnim transakcijama, što se postiže korištenjem shema kontrole istodobnosti.
  • Kako bi se osigurala serijalizabilnost.

Primjer

Pretpostavimo da dvije osobe istovremeno odlaze na elektroničke kioske kako bi kupile kino kartu za isti film i isto vrijeme prikazivanja.

Međutim, u kinu je ostalo samo jedno mjesto za tu predstavu. Bez kontrole konkurentnosti, moguće je da će oba gledatelja kina na kraju kupiti kartu. Kontrola konkurentnosti to ne dopušta. Oba gledatelja kina i dalje mogu pristupiti informacijama u bazi podataka o sjedalima u kinu, ali kontrola konkurentnosti osigurava kartu samo kupcu koji prvi dovrši proces transakcije.

Protokoli kontrole istodobnosti

Različiti protokoli za kontrolu konkurentnosti nude različite kompromise između količine konkurentnosti koju dopuštaju i opterećenja koje nameću. Glavne tehnike kontrole konkurentnosti u DBMS-u su:

  • Protokoli koji se temelje na zaključavanju
  • Protokol dvofaznog zaključavanja
  • Protokoli temeljeni na vremenskim oznakama
  • Protokoli temeljeni na validaciji

Svaki od njih redom se ispituje u nastavku, počevši od najčešće korištenih protokola temeljenih na zaključavanju.

Protokoli koji se temelje na zaključavanju

Protokoli temeljeni na zaključavanju U DBMS-u su mehanizam u kojem transakcija ne može čitati ili pisati podatkovnu stavku dok ne dobije odgovarajuću bravu. Protokoli temeljeni na bravi pomažu u uklanjanju problema konkurentnosti zaključavanjem ili izoliranjem određene podatkovne stavke na jednu transakciju.

Brava je podatkovna varijabla povezana s podatkovnom stavkom koja označava koje se operacije mogu izvršiti na njoj. Brave pomažu u sinkronizaciji pristupa stavkama baze podataka putem istodobnih transakcija. Svi zahtjevi za zaključavanje upućuju se upravitelju kontrole istodobnosti, a transakcije se nastavljaju tek nakon što je zahtjev za zaključavanje odobren.

Binarne brave: Binarna brava na podatkovnoj stavci može biti u zaključanom ili otključanom stanju.

Dijeljeno/Ekskluzivno: Ovaj mehanizam zaključavanja odvaja brave na temelju njihove upotrebe. Ako se brava pribavi za izvođenje operacije pisanja, to se naziva ekskluzivna brava.

1. Zajednička brava (S): Dijeljena brava se naziva i brava samo za čitanje. Kod dijeljene brave, podatkovna stavka može se dijeliti između transakcija jer nijedna od njih nema dopuštenje za ažuriranje stavke. Na primjer, ako dvije transakcije čitaju stanje na računu osobe, baza podataka omogućuje im čitanje postavljanjem zajedničke brave. Ako neka druga transakcija želi ažurirati taj saldo, zajednička brava to sprječava dok se čitanje ne završi.

2. Ekskluzivna brava (X): S ekskluzivnim zaključavanjem, podatkovna stavka može se čitati i pisati. Isključiva je i ne može se istovremeno držati na istoj podatkovnoj stavci. X-zaključavanje se zahtijeva pomoću instrukcije lock-x. Na primjer, kada transakcija treba ažurirati stanje računa, to se dopušta postavljanjem X-zaključavanja; druga transakcija koja želi čitati ili pisati tada se sprječava.

3. Protokol pojednostavljenog zaključavanja: To omogućuje transakcijama da zaključaju svaki objekt prije početka operacije. Transakcije mogu otključati podatkovnu stavku nakon završetka operacije pisanja.

4. Zaključavanje prije podnošenja zahtjeva: Ovaj protokol procjenjuje operacije i stvara popis podataka potrebnih za početak izvršavanja. Kada su sva zaključavanja odobrena, transakcija se izvršava i sva zaključavanja se otpuštaju nakon završetka operacija.

Gladovanje: Gladovanje je situacija kada transakcija čeka neodređeno vrijeme da bi dobila zaključavanje. Razlozi uključuju loše upravljanu shemu čekanja za zaključane stavke, curenje resursa ili ponovljeni odabir iste transakcije kao žrtve.

Zastoj: Zastoj se odnosi na situaciju u kojoj dva ili više procesa čekaju jedan da drugi oslobode resurs, formirajući kružni lanac.

Protokol dvofaznog zaključavanja (2PL)

The Protokol dvofaznog zaključavanja, također poznat kao 2PL, je metoda kontrole konkurentnosti koja osigurava serijalizabilnost primjenom zaključavanja na podatke o transakcijama, što blokira druge transakcije da istovremeno pristupaju istim podacima.

Protokol dvofaznog zaključavanja omogućuje svakoj transakciji da zatraži zaključavanje ili otključavanje u dva koraka:

  • Faza rasta: U ovoj fazi transakcija može dobiti brave, ali ih ne mora otključati.
  • Faza smanjenja: U ovoj fazi transakcija može otključati brave, ali ne mora dobiti novu bravu.

Dvofazno zaključavanje faza rasta i smanjenja

Istina je da 2PL nudi serijalizabilnost. Međutim, to ne jamči da se zastoji ne događaju. Na gornjem dijagramu, lokalni i globalni detektori zastoja traže zastoje i rješavaju ih nastavkom transakcija u njihovo početno stanje.

Stroga dvofazna metoda zaključavanja

Strict 2PL je gotovo isti kao 2PL. Jedina je razlika što Strict-2PL nikada ne otpušta bravu nakon korištenja. Drži sve brave do točke potvrde i otpušta ih sve odjednom kada je proces završen.

Centralizirani 2PL

U centraliziranom 2PL-u, jedna lokacija je odgovorna za proces upravljanja bravama. Ima samo jednog upravitelja brava za cijeli DBMS.

Primarna kopija 2PL

U mehanizmu primarne kopije 2PL, mnogi upravitelji brava distribuirani su na različite lokacije, a određeni upravitelj brava odgovoran je za upravljanje bravom za skup podataka. Kada se primarna kopija ažurira, promjena se širi na podređene uređaje.

Distribuirano 2PL

U ovom mehanizmu, upravitelji brava distribuirani su na sve lokacije i odgovorni su za upravljanje bravama za podatke na toj lokaciji. Ako se podaci ne repliciraju, to je ekvivalentno primarnoj kopiji 2PL. Troškovi komunikacije distribuirane 2PL su znatno veći od onih primarne kopije 2PL.

Protokoli temeljeni na vremenskim oznakama

The Protokol temeljen na vremenskim žigovima U DBMS-u je algoritam koji koristi sistemsko vrijeme ili logički brojač kao vremensku oznaku za serijalizaciju izvršavanja istodobnih transakcija. Osigurava da se svaka konfliktna operacija čitanja i pisanja izvršava redoslijedom vremenske oznake.

Starija transakcija uvijek ima prioritet u ovoj metodi. Koristi sistemsko vrijeme za određivanje vremenske oznake transakcije i to je najčešće korišteni protokol za konkurentnost. Protokoli temeljeni na zaključavanju upravljaju redoslijedom između sukobljenih transakcija prilikom njihovog izvršavanja; protokoli temeljeni na vremenskim oznakama upravljaju sukobima čim se operacija stvori.

Primjer:

Suppose there are three transactions T1, T2, and T3.
T1 has entered the system at time 0010
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then T2 and lastly T3.

Prednosti:

  • Rasporedi se mogu serijalizirati, baš kao i 2PL protokoli.
  • Nema čekanja na transakciju, što eliminira mogućnost zastoja.

Nedostaci: Izgladnjivanje je moguće ako se ista transakcija ponovno pokreće i kontinuirano prekida.

Protokol temeljen na validaciji

The Protokol temeljen na validaciji U DBMS-u, poznata i kao tehnika optimistične kontrole konkurentnosti, metoda je za izbjegavanje sukoba konkurentnosti u transakcijama. U ovom protokolu ažuriraju se lokalne kopije podataka o transakcijama, a ne sami podaci, što rezultira manjim smetnjama tijekom izvršavanja.

Protokol temeljen na validaciji provodi se u tri faze:

  1. Pročitajte Fazu
  2. Faza provjere valjanosti
  3. Napiši fazu

Pročitajte Fazu

U fazi čitanja, transakcija može pročitati vrijednosti podataka, ali operacije pisanja ili ažuriranja primjenjuju se samo na lokalne kopije podataka, a ne na stvarnu bazu podataka.

Faza provjere valjanosti

U fazi validacije, podaci se provjeravaju kako bi se osiguralo da primjena ažuriranja neće narušiti serijalizabilnost.

Napiši fazu

U fazi pisanja, ažuriranja se primjenjuju na bazu podataka ako je validacija uspješna; u suprotnom se ažuriranja odbacuju i transakcija se poništava.

Usporedba protokola za kontrolu konkurentnosti

Četiri obitelji protokola prave različite oklade o tome koliko često se transakcije zapravo sukobljavaju. Tablica u nastavku sažima gdje se svaki uklapa.

Protokol Pristup Zastoj Najbolje kada
Na temelju brave Pesimističan, zaključava prije pristupa Moguć Sukobi su česti
Dvofazno zaključavanje Pesimistična, rastuća i smanjivajuća faza Moguć Serijalizabilnost je obavezna
Na temelju vremenske oznake Narudžbe prema vremenskoj oznaci Bez zastoja Naručivanje je važno, čekanje je skupo
Na temelju validacije Optimističan, potvrdi prije pisanja Bez zastoja Sukobi su rijetki

Ukratko, protokoli temeljeni na zaključavanju i 2PL pretpostavljaju da je sukob uobičajen i sprječavaju ga unaprijed, dok protokoli vremenske oznake i validacije pretpostavljaju da je sukob rijedak i rješavaju ga tek kada se pojavi.

Karakteristike dobrog protokola za konkurentnost

Idealni mehanizam kontrole konkurentnosti ima sljedeće ciljeve:

  • Mora biti otporan na kvarove na lokaciji i u komunikaciji.
  • Omogućuje paralelno izvršavanje transakcija kako bi se postigla maksimalna istodobnost.
  • Njegovi mehanizmi za pohranjivanje i računalne metode trebaju biti skromni kako bi se troškovi sveli na minimum.
  • Mora nametnuti neka ograničenja na strukturu atomskih akcija transakcija.

Pitanja i odgovori

Dijeljena brava dopušta istodobno čitanje, ali ne i pisanje, pa je može zadržati nekoliko transakcija. Ekskluzivna brava dopušta čitanje i pisanje i ne može se dijeliti, pa je drži samo jedna transakcija.

Br. 2PL jamči serijalizabilnost, ali ne i odsutnost zastoja. Dvije transakcije i dalje mogu čekati međusobna zaključavanja, tako da je i dalje potreban zaseban mehanizam za detekciju ili istek vremena.

Kada su sukobi rijetki. Kontrola temeljena na validaciji izbjegava opterećenje zaključavanjem i omogućuje transakcijama slobodno izvođenje, provjeravajući samo prilikom potvrđivanja (commit). Pod jakim sukobima, rasipa se rad zbog čestih vraćanja na prethodno stanje.

Umjetna inteligencija proučava prošla opterećenja kako bi predvidjela koje će se transakcije sukobiti, a zatim preporučuje razinu izolacije ili granularnost zaključavanja koja povećava propusnost, a istovremeno održavaping rezultati serijalizabilni.

Nikada ne tjera transakciju da čeka. Konfliktna operacija je ili dopuštena vremenskim žigom ili se transakcija prekida i ponovno pokreće, tako da se ne može formirati kružno čekanje i ne može doći do zastoja.

Sažmite ovu objavu uz: