Kaj je nadzor hkratnosti?
Nadzor sočasnosti v sistemu za upravljanje baz podatkov je postopek upravljanja hkratnih operacij, ne da bi pri tem prihajalo do konflikta. Zagotavlja, da se transakcije zbirke podatkov izvajajo sočasno in natančno, da se dobijo pravilni rezultati, ne da bi se kršila integriteta podatkov posamezne baze podatkov.
Sočasen dostop je dokaj enostaven, če vsi uporabniki samo berejo podatke. Nikakor se ne morejo vmešati drug v drugega. Čeprav bi za katero koli praktično zbirko podatkov imela kombinacijo READ in WRITE operacij, zato je sočasnost izziv.
DBMS Concurrency Control se uporablja za reševanje tovrstnih konfliktov, ki se večinoma pojavijo pri več uporabniškem sistemu. Zato je nadzor hkratnosti najpomembnejši element za pravilno delovanje sistema za upravljanje baz podatkov, kjer se hkrati izvedeta dve ali več transakcij z bazami podatkov, ki zahtevajo dostop do istih podatkov.
V tej vadnici boste izvedeli
- Kaj je nadzor hkratnosti?
- Potencialne težave sočasnosti
- Zakaj uporabljati metodo Concurrency?
- Protokoli za nadzor sočasnosti
- Zaklenjeni protokoli
- Dvofazni protokol za zaklepanje (2PL)
- Protokoli, ki temeljijo na časovnem žigu
- Protokol na podlagi preverjanja
- Značilnosti protokola dobre sočasnosti
Potencialne težave sočasnosti
Tu je nekaj težav, s katerimi se boste verjetno soočili med uporabo metode DBMS Concurrency Control:
- Izgubljene posodobitve se pojavijo, ko več transakcij izbere isto vrstico in jo posodobi glede na izbrano vrednost
- Nezavezane težave z odvisnostjo se pojavijo, ko druga transakcija izbere vrstico, ki jo posodobi druga transakcija ( umazano branje )
- Neponovljivo branje se zgodi, ko poskuša druga transakcija večkrat dostopati do iste vrstice in vsakič prebere različne podatke.
- Napačna težava s povzetkom se pojavi, ko ena transakcija prevzame povzetek vrednosti vseh primerkov ponovljene podatkovne postavke, druga transakcija pa posodobi nekaj primerkov te posebne podatkovne postavke. V tem primeru povzetek, ki izhaja, ne odraža pravilnega rezultata.
Zakaj uporabljati metodo Concurrency?
Razlogi za uporabo metode nadzora hkratnosti so DBMS:
- Uporaba izolacije z medsebojno izključitvijo med nasprotujočimi si transakcijami
- Reševanje težav s spori med branjem in pisanjem ter pisanjem in pisanjem
- Da bi ohranili doslednost baze podatkov z nenehnim ohranjanjem ovir za izvajanje
- Sistem mora nadzorovati interakcijo med sočasnimi transakcijami. Ta nadzor se doseže z uporabo shem sočasnega nadzora.
- Nadzor sočasnosti pomaga zagotoviti serializacijo
Primer
Predpostavimo, da dve osebi, ki hkrati hodita v elektronske kioske, da bi kupili vstopnico za isti film in isti čas predvajanja.
Vendar pa je za to predstavo v tem gledališču na voljo le en sedež. Brez nadzora hkratnosti v DBMS je možno, da bosta oba obiskovalca na koncu kupila vstopnico. Vendar metoda nadzora hkratnosti tega ne dopušča. Oba gledalca lahko še vedno dostopata do informacij, zapisanih v zbirki podatkov o sedežih. Toda nadzor hkratnosti ponuja vstopnico samo kupcu, ki je najprej zaključil postopek transakcije.
Protokoli za nadzor sočasnosti
Različni protokoli za nadzor hkratnosti ponujajo različne prednosti med dovoljeno količino sočasnosti in zneskom režijskih stroškov, ki jih naložijo. Sledijo tehnike nadzora hkratnosti v DBMS:
- Zaklenjeni protokoli
- Dvofazni protokol za zaklepanje
- Protokoli na podlagi časovnega žiga
- Protokoli, ki temeljijo na validaciji
Zaklenjeni protokoli
Zaklenjeni protokoli v DBMS so mehanizem, pri katerem transakcija ne more brati ali zapisovati podatkov, dokler ne dobi ustrezne ključavnice. Zaklenjeni protokoli pomagajo odpraviti problem sočasnosti v DBMS za hkratne transakcije tako, da določeno transakcijo zaklenejo ali izolirajo enemu uporabniku.
Ključavnica je podatkovna spremenljivka, ki je povezana s podatkovnim elementom. To zaklepanje pomeni, da je mogoče na podatkovnem elementu izvesti operacije. Ključavnice v DBMS pomagajo sinhronizirati dostop do elementov baze podatkov s sočasnimi transakcijami.
Vse zahteve za zaklepanje se pošljejo upravitelju nadzora hkratnosti. Transakcije se nadaljujejo šele, ko je odobrena zahteva za zaklepanje.
Binarne ključavnice: Binarna ključavnica podatkovnega elementa lahko zaklene ali odklene stanja.
Skupno / izključno: Ta vrsta mehanizma za zaklepanje ločuje ključavnice v DBMS glede na njihovo uporabo. Če je na podatkovnem elementu pridobljena ključavnica za izvajanje operacije pisanja, se imenuje izključna ključavnica.
1. Skupna ključavnica (S):
Zaklepanje v skupni rabi se imenuje tudi zaklepanje samo za branje. S skupno ključavnico lahko podatkovni element delite med transakcijami. To je zato, ker nikoli ne boste imeli dovoljenja za posodobitev podatkov o podatku.
Na primer, razmislite o primeru, ko dve transakciji bereta stanje na računu osebe. Zbirka podatkov jim bo omogočila branje, tako da bodo namestili ključavnico v skupni rabi. Če pa druga transakcija želi posodobiti stanje na računu, jo zaklepanje v skupni rabi prepreči, dokler se postopek branja ne konča.
2. Ekskluzivna ključavnica (X):
Z ekskluzivno ključavnico lahko podatkovni element berete in zapisujete. To je izključno in ga ni mogoče hraniti hkrati na istem podatku. X-lock se zahteva z navodili lock-x. Transakcije lahko odklenejo podatkovni element po zaključku operacije pisanja.
Na primer, ko mora transakcija posodobiti stanje na računu osebe. To transakcijo lahko dovolite tako, da nanjo postavite X lock. Ko druga transakcija želi brati ali pisati, izključitev zaklene to operacijo.
3. Poenostavljeni protokol za zaklepanje
Ta vrsta protokolov, ki temeljijo na ključavnicah, omogoča transakcijam, da pridobijo ključavnico vsakega predmeta pred začetkom delovanja. Transakcije lahko odklenejo podatkovni element po zaključku operacije pisanja.
4. Zaklepanje pred zahtevkom
Protokol za zaklepanje pred vložitvijo zahtevka pomaga ovrednotiti operacije in ustvariti seznam zahtevanih podatkovnih postavk, ki so potrebne za začetek postopka izvršitve. V primeru odobritve vseh ključavnic se transakcija izvede. Po tem se vse ključavnice sprostijo, ko so vse njene operacije končane.
Lakota
Stradanje je situacija, ko mora transakcija počakati nedoločen čas, da pridobi ključavnico.
Razlogi za stradanje so naslednji:
- Ko shema čakanja na zaklenjene predmete ni pravilno vodena
- V primeru uhajanja virov
- Ista transakcija je večkrat izbrana kot žrtev
Zastoj
Zastoj se nanaša na posebno situacijo, ko dva ali več procesov čakata, da drug drugega sprosti vir, ali več kot dva procesa čakata na vir v krožni verigi.
Dvofazni protokol za zaklepanje
Dvofazni protokol za zaklepanje, znan tudi kot 2PL protokol, je metoda nadzora hkratnosti v DBMS, ki zagotavlja serializacijo z uporabo zaklepanja na podatke o transakciji, ki blokira druge transakcije za sočasen dostop do istih podatkov. Dvofazni protokol za zaklepanje pomaga odpraviti problem sočasnosti v DBMS.
Ta protokol zaklepanja deli fazo izvrševanja transakcije na tri različne dele.
- V prvi fazi, ko se transakcija začne izvajati, zahteva dovoljenje za ključavnice, ki jih potrebuje.
- Drugi del je, če transakcija pridobi vse ključavnice. Ko transakcija sprosti svojo prvo ključavnico, se začne tretja faza.
- V tej tretji fazi transakcija ne more zahtevati novih ključavnic. Namesto tega sprosti samo pridobljene ključavnice.
Protokol dvofaznega zaklepanja omogoča, da vsaka transakcija v dveh korakih poda zahtevo za zaklepanje ali odklepanje:
- Faza rasti : V tej fazi lahko transakcija pridobi ključavnice, vendar ne sme sprostiti nobene ključavnice.
- Faza krčenja : v tej fazi lahko transakcija sprosti ključavnice, ne pa tudi nove ključavnice
Res je, da protokol 2PL ponuja serializacijo. Vendar ne zagotavlja, da se mrtve točke ne zgodijo.
Na zgornjem diagramu lahko vidite, da lokalni in globalni detektorji zastojev iščejo zastoje in jih rešujejo z nadaljevanjem transakcij v začetna stanja.
Stroga dvofazna metoda zaklepanja
Dvofazni sistem zaklepanja je skoraj podoben 2PL. Edina razlika je v tem, da Strict-2PL po uporabi nikoli ne sprosti ključavnice. Vse ključavnice zadrži do točke prevzema in sprosti vse ključavnice naenkrat, ko je postopek končan.
Centraliziran 2PL
V Centralized 2 PL je eno mesto odgovorno za postopek upravljanja zaklepanja. Ima samo en upravitelj zaklepanja za celoten DBMS.
Primarna kopija 2PL
Mehanizem primarne kopije 2PL, veliko upraviteljev zaklepanja je razdeljenih na različna spletna mesta. Po tem je določen upravitelj zaklepanja odgovoren za upravljanje zaklepanja za nabor podatkovnih postavk. Ko je primarna kopija posodobljena, se sprememba razširi na podrejene.
Porazdeljeno 2PL
Pri tovrstnem dvofaznem mehanizmu zaklepanja se upravitelji ključavnic razporedijo na vsa spletna mesta. Odgovorni so za upravljanje ključavnic za podatke na tem spletnem mestu. Če se podvojijo nobeni podatki, je to enakovredno primarni kopiji 2PL. Stroški komunikacije Distributed 2PL so precej višji od primarne kopije 2PL
Protokoli, ki temeljijo na časovnem žigu
Protokol na osnovi časovnega žiga v DBMS je algoritem, ki uporablja sistemski čas ali logični števec kot časovni žig za serializacijo izvajanja sočasnih transakcij. Protokol, ki temelji na časovnem žigu, zagotavlja, da se vse nasprotujoče si operacije branja in pisanja izvajajo v zaporedju časovnih žigov.
Pri tej metodi ima vedno prednost starejša transakcija. Za določitev časovnega žiga transakcije uporablja sistemski čas. To je najpogosteje uporabljen sočasni protokol.
Zaklenjeni protokoli vam pomagajo upravljati vrstni red med nasprotujočimi si transakcijami, kdaj se bodo izvršile. Protokoli, ki temeljijo na časovnem žigu, obvladujejo konflikte takoj, ko je operacija ustvarjena.
Primer:
Suppose there are there transactions T1, T2, and T3.T1 has entered the system at time 0010T2 has entered the system at 0020T3 has entered the system at 0030Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.
Prednosti :
- Urniki so serializirani tako kot protokoli 2PL
- Brez čakanja na transakcijo, kar odpravlja možnost zastojev!
Slabosti:
Stradanje je možno, če se ista transakcija znova zažene in neprekinjeno prekine
Protokol na podlagi preverjanja
Protokol, ki temelji na preverjanju veljavnosti v DBMS, znan tudi kot Optimistična tehnika nadzora sočasnosti, je metoda za preprečevanje sočasnosti pri transakcijah. V tem protokolu se posodobijo lokalne kopije podatkov o transakciji in ne sami podatki, kar ima za posledico manj motenj med izvajanjem transakcije.
Protokol, ki temelji na preverjanju veljavnosti, se izvaja v naslednjih treh fazah:
- Preberite fazo
- Faza potrjevanja
- Napišite fazo
Preberite fazo
V fazi branja lahko vrednosti podatkov iz baze podatkov bere transakcija, vendar se operacija zapisovanja ali posodobitve uporabljajo samo za lokalne kopije podatkov, ne pa tudi za dejansko bazo podatkov.
Faza potrjevanja
V fazi preverjanja veljavnosti se podatki preverijo, da se med uporabo posodobitev transakcij v zbirki podatkov ne krši serializabilnost.
Napišite fazo
V fazi pisanja se posodobitve uveljavijo v zbirki podatkov, če je preverjanje veljavnosti uspešno; sicer; posodobitve se ne uporabljajo in transakcija se povrne.
Značilnosti protokola dobre sočasnosti
Idealen mehanizem DBMS za nadzor hkratnosti ima naslednje cilje:
- Biti mora odporen na napake na spletnem mestu in komunikaciji.
- Omogoča vzporedno izvajanje transakcij za doseganje največje sočasnosti.
- Njeni mehanizmi shranjevanja in računske metode bi morali biti skromni, da bi zmanjšali režijske stroške.
- Uveljaviti mora nekatere omejitve glede strukture atomskih akcij transakcij.
Povzetek
- Nadzor sočasnosti je postopek v DBMS za upravljanje hkratnih operacij brez medsebojnega konflikta.
- Izgubljene posodobitve, umazano branje, neponovljivo branje in napačen povzetek so težave zaradi pomanjkanja nadzora hkratnosti.
- Zaklenjeni, dvofazni, časovni žigi in preverjanja veljavnosti so vrste protokolov za obdelavo sočasnosti
- Ključavnica je lahko skupna (S) ali ekskluzivna (X)
- Dvofazni protokol zaklepanja, ki je znan tudi kot protokol 2PL, potrebuje transakcijo, potem ko sprosti eno od svojih ključavnic, mora pridobiti ključavnico. Ima dve fazi rasti in krčenja.
- Algoritem, ki temelji na časovnem žigu, uporablja časovni žig za serializacijo izvajanja sočasnih transakcij. Protokol kot časovni žig uporablja sistemski čas ali logično štetje .