Kontrola paralelnosti DBMS-a: vremenski žig i protokoli temeljeni na zaključavanju
Što je kontrola istodobnosti?
Kontrola istodobnosti u sustavu upravljanja bazom podataka postupak je upravljanja istodobnim operacijama bez međusobnog sukoba. Osigurava da se transakcije baze podataka izvode istodobno i točno kako bi se proizveli točni rezultati bez narušavanja integriteta podataka odgovarajuće baze podataka.
Istovremeni pristup je vrlo jednostavan ako svi korisnici samo čitaju podatke. Nema šanse da se međusobno miješaju. Iako za bilo koju praktičnu bazu podataka, ona bi imala kombinaciju operacija READ i WRITE i stoga je konkurentnost izazov.
DBMS Concurrency Control koristi se za rješavanje takvih sukoba, koji se uglavnom javljaju kod višekorisničkih sustava. Stoga je kontrola istovremenosti najvažniji element za pravilno funkcioniranje sustava upravljanja bazom podataka gdje se istovremeno izvršavaju dvije ili više transakcija baze podataka, koje zahtijevaju pristup istim podacima.
Potencijalni problemi konkurentnosti
Ovdje su neki problemi s kojima ćete se vjerojatno suočiti dok koristite metodu kontrole istovremenosti DBMS-a:
- Izgubljena ažuriranja nastaju kada više transakcija odabere isti red i ažurira red na temelju odabrane vrijednosti
- Problemi s nedodijeljenom ovisnošću javljaju se kada druga transakcija odabere redak koji je ažuriran drugom transakcijom (prljavo štivo)
- Čitanje koje se ne ponavlja događa se kada druga transakcija pokušava pristupiti istom retku nekoliko puta i svaki put čita različite podatke.
- Problem s netočnim sažetkom događa se kada jedna transakcija uzima sažetak vrijednosti svih instanci ponovljene podatkovne stavke, a druga transakcija ažurira nekoliko instanci te specifične podatkovne stavke. U toj situaciji rezultirajući sažetak ne odražava točan rezultat.
Zašto koristiti Concurrency metodu?
Razlozi za korištenje metode kontrole paralelnosti je DBMS:
- Za primjenu izolacije kroz međusobno isključivanje između sukobljenih transakcija
- Za rješavanje problema sukoba čitanja i pisanja i pisanja i pisanja
- Za očuvanje dosljednosti baze podataka kroz stalno očuvanje prepreka izvršenja
- Sustav mora kontrolirati interakciju među istodobnim transakcijama. Ova kontrola se postiže pomoću shema konkurentne kontrole.
- Kontrola istodobnosti pomaže osigurati mogućnost serijalizacije
Primjer
Pretpostavimo da dvoje ljudi koji u isto vrijeme odlaze na elektroničke kioske kako bi kupili kino ulaznicu za isti film i u isto vrijeme.
Međutim, ostalo je još samo jedno mjesto za filmsku predstavu u tom kinu. Bez kontrole istovremenosti u DBMS-u, moguće je da će oba gledatelja na kraju kupiti kartu. Međutim, metoda kontrole paralelnosti to ne dopušta. Oba gledatelja i dalje mogu pristupiti informacijama zapisanim u bazi podataka o sjedalima u kinu. Ali kontrola istodobnosti daje ulaznicu samo kupcu koji je prvi dovršio proces transakcije.
Protokoli kontrole istodobnosti
Različiti protokoli za kontrolu istodobnosti nude različite prednosti između količine istodobnosti koju dopuštaju i količine režijskih troškova koje nameću. Slijede tehnike kontrole paralelnosti u DBMS-u:
- Protokoli koji se temelje na zaključavanju
- Dvofazni protokol zaključavanja
- Protokoli temeljeni na vremenskim oznakama
- Protokoli temeljeni na validaciji
Protokoli temeljeni na zaključavanju
Protokoli temeljeni na zaključavanju u DBMS je mehanizam u kojem transakcija ne može čitati ili pisati podatke dok ne stekne odgovarajuće zaključavanje. Protokoli temeljeni na zaključavanju pomažu eliminirati problem istovremenosti u DBMS-u za simultane transakcije zaključavanjem ili izoliranjem određene transakcije za jednog korisnika.
Zaključavanje je podatkovna varijabla koja je povezana s podatkovnom stavkom. Ovo zaključavanje označava operacije koje se mogu izvesti na podatkovnoj stavci. Zaključavanja u DBMS-u pomažu sinkronizirati pristup stavkama baze podataka istodobnim transakcijama.
Svi zahtjevi za zaključavanje šalju se upravitelju kontrole paralelnosti. Transakcije se nastavljaju tek nakon što se odobri zahtjev za zaključavanje.
Binarne brave: Binarno zaključavanje podatkovne stavke može biti u zaključanom ili otključanom stanju.
Dijeljeno/ekskluzivno: Ovaj tip mehanizma zaključavanja odvaja brave u DBMS-u na temelju njihove upotrebe. Ako je zaključavanje stečeno na podatkovnoj stavci za izvođenje operacije pisanja, to se naziva ekskluzivno zaključavanje.
1. Zajednička brava (S):
Zajedničko zaključavanje također se naziva i zaključavanje samo za čitanje. Sa zajedničkim zaključavanjem, podatkovna stavka može se dijeliti između transakcija. To je zato što nikada nećete imati dopuštenje za ažuriranje podataka o podatkovnoj stavci.
Na primjer, razmotrite slučaj u kojem dvije transakcije čitaju stanje računa osobe. The baza podataka omogućit će im čitanje postavljanjem zajedničke brave. Međutim, ako neka druga transakcija želi ažurirati stanje tog računa, zajedničko zaključavanje to sprječava dok se proces čitanja ne završi.
2. Ekskluzivna brava (X):
Uz ekskluzivno zaključavanje, podatkovna stavka može se čitati i pisati. Ovo je isključivo i ne može se istovremeno držati na istoj podatkovnoj stavci. X-lock se traži korištenjem lock-x instrukcije. Transakcije mogu otključati podatkovnu stavku nakon završetka operacije 'pisanja'.
Na primjer, kada transakcija treba ažurirati stanje računa osobe. Ovu transakciju možete dopustiti postavljanjem X zaključavanja na nju. Stoga, kada druga transakcija želi čitati ili pisati, ekskluzivno zaključavanje sprječava ovu operaciju.
3. Jednostavni protokol zaključavanja
Ova vrsta protokola koji se temelje na zaključavanju omogućuje transakcijama da dobiju zaključavanje svakog objekta prije početka operacije. Transakcije mogu otključati podatkovnu stavku nakon završetka operacije 'pisanja'.
4. Zaključavanje prije potraživanja
Protokol zaključavanja prethodnog zahtjeva pomaže u procjeni operacija i stvaranju popisa potrebnih podataka koji su potrebni za pokretanje procesa izvršenja. U situaciji kada su sva zaključavanja odobrena, transakcija se izvršava. Nakon toga, sve brave se otpuštaju kada završe sve njegove operacije.
Gladovanje
Izgladnjivanje je situacija kada transakcija treba čekati neodređeno vrijeme da dobije zaključavanje.
Razlozi za gladovanje su sljedeći:
- Kada se shema čekanja za zaključane stavke ne upravlja ispravno
- U slučaju curenja resursa
- Ista se transakcija više puta odabire kao žrtva
Zastoj
Zastoj se odnosi na specifičnu situaciju u kojoj dva ili više procesa čekaju jedan drugog da oslobode resurs ili više od dva procesa čekaju resurs u kružnom lancu.
Dvofazni protokol zaključavanja
Dvofazni protokol zaključavanja također poznat kao 2PL protokol je metoda kontrole istovremenosti u DBMS-u koja osigurava mogućnost serijalizacije primjenom zaključavanja podataka transakcije koja blokira druge transakcije da istovremeno pristupe istim podacima. Protokol dvofaznog zaključavanja pomaže u otklanjanju problema istovremenosti u DBMS-u.
Ovaj protokol zaključavanja dijeli fazu izvršenja transakcije u tri različita dijela.
- U prvoj fazi, kada se transakcija počne izvršavati, zahtijeva dopuštenje za zaključavanja koja su joj potrebna.
- U drugom dijelu transakcija dobiva sva zaključavanja. Kada transakcija oslobodi svoje prvo zaključavanje, počinje treća faza.
- U ovoj trećoj fazi transakcija ne može zahtijevati nova zaključavanja. Umjesto toga, otpušta samo stečene brave.
Protokol dvofaznog zaključavanja omogućuje svakoj transakciji zahtjev za zaključavanje ili otključavanje u dva koraka:
- Faza rasta: U ovoj fazi transakcija može dobiti zaključavanja, ali ne može otpustiti nijedno zaključavanje.
- Faza skupljanja: U ovoj fazi transakcija može osloboditi zaključavanje, ali ne i dobiti novo zaključavanje
Istina je da 2PL protokol nudi mogućnost serijalizacije. Međutim, to ne osigurava da se zastoji neće dogoditi.
Na gore danom dijagramu možete vidjeti da lokalni i globalni detektori zastoja traže zastoje i rješavaju ih nastavkom transakcija u početno stanje.
Stroga dvofazna metoda zaključavanja
Sustav striktno dvofaznog zaključavanja gotovo je sličan 2PL. Jedina razlika je u tome što Strict-2PL nikada ne otključava nakon korištenja. Zadržava sva zaključavanja do točke uvrštavanja i otpušta sva zaključavanja u jednom potezu kada proces završi.
Centralizirani 2PL
U Centralized 2 PL jedno je mjesto odgovorno za proces upravljanja zaključavanjem. Ima samo jedan upravitelj zaključavanja za cijeli DBMS.
Primarna kopija 2PL
Primarna kopija 2PL mehanizma, mnogi upravitelji zaključavanja distribuirani su različitim mjestima. Nakon toga, određeni upravitelj zaključavanja odgovoran je za upravljanje zaključavanjem skupa podatkovnih stavki. Kada se primarna kopija ažurira, promjena se prenosi na podređene uređaje.
Distribuirano 2PL
U ovoj vrsti dvofaznog mehanizma zaključavanja, upravitelji zaključavanja distribuiraju se svim mjestima. Oni su odgovorni za upravljanje zaključavanjem podataka na tom mjestu. Ako se podaci ne repliciraju, to je ekvivalentno primarnoj kopiji 2PL. Komunikacijski troškovi Distribuiranog 2PL-a dosta su veći od primarne kopije 2PL
Protokoli na temelju vremenske oznake
Protokol na temelju vremenske oznake u DBMS je algoritam koji koristi sistemsko vrijeme ili logički brojač kao vremensku oznaku za serijalizaciju izvršenja istodobnih transakcija. Protokol koji se temelji na vremenskoj oznaci osigurava da se sve sukobljene operacije čitanja i pisanja izvršavaju prema redoslijedu s vremenskom žigom.
U ovoj metodi starija transakcija uvijek ima prednost. Koristi sistemsko vrijeme za određivanje vremenske oznake transakcije. Ovo je najčešće korišteni protokol paralelnosti.
Protokoli temeljeni na zaključavanju pomažu vam da upravljate redoslijedom između sukobljenih transakcija kada će se izvršiti. Protokoli koji se temelje na vremenskoj oznaci upravljaju sukobima čim se operacija kreira.
Primjer:
Suppose there are there 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 transaction T2 and lastly Transaction 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
Protokol temeljen na validaciji u DBMS-u također poznata kao Optimistic Concurrency Control Technique je metoda za izbjegavanje istovremenosti u transakcijama. U ovom protokolu ažuriraju se lokalne kopije podataka transakcije, a ne sami podaci, što rezultira manjim smetnjama tijekom izvršenja transakcije.
Protokol temeljen na validaciji provodi se u sljedeće tri faze:
- Pročitajte Fazu
- Faza provjere valjanosti
- Napiši fazu
Pročitajte Fazu
U fazi čitanja, vrijednosti podataka iz baze podataka mogu se čitati transakcijom, ali operacija pisanja ili ažuriranja primjenjuju se samo na lokalne kopije podataka, ne i na stvarnu bazu podataka.
Faza provjere valjanosti
U fazi provjere valjanosti podaci se provjeravaju kako bi se osiguralo da nema kršenja mogućnosti serijalizacije tijekom primjene ažuriranja transakcije na bazu podataka.
Napiši fazu
U fazi pisanja, ažuriranja se primjenjuju na bazu podataka ako je provjera valjanosti uspješna, inače; ažuriranja se ne primjenjuju, a transakcija se vraća.
Karakteristike dobrog paralelnog protokola
Idealan mehanizam kontrole konkurentnosti DBMS ima sljedeće ciljeve:
- Mora biti otporan na kvarove na mjestu i 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 radnji transakcija.
Rezime
- Kontrola istovremenosti je postupak u DBMS za upravljanje simultanim operacijama bez međusobnog sukoba.
- Izgubljena ažuriranja, prljavo čitanje, čitanje koje se ne ponavlja i problem s netočnim sažetkom problemi su s kojima se suočavaju zbog nedostatka kontrole paralelnosti.
- Na temelju zaključavanja, u dvije faze, na temelju vremenske oznake, na temelju provjere valjanosti vrste su protokola za rukovanje paralelnošću
- Brava može biti zajednička (S) ili isključiva (X)
- Protokol dvofaznog zaključavanja koji je također poznat kao 2PL protokol zahtijeva transakciju koja bi trebala steći zaključavanje nakon otpuštanja jednog od svojih zaključavanja. Ima 2 faze rasta i skupljanja.
- Algoritam koji se temelji na vremenskoj oznaci koristi vremensku oznaku za serijalizaciju izvršenja istodobnih transakcija. Protokol koristi Vrijeme sustava ili logičko brojanje kao vremenska oznaka.