DBMS kontrola istodobnosti: vremenska oznaka & Zaključani protokoli

Sadržaj:

Anonim

Š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.

Istodobni pristup prilično je jednostavan ako svi korisnici samo čitaju podatke. Ni na koji način se ne mogu međusobno ometati. Iako bi za bilo koju praktičnu bazu podataka imala kombinaciju READ i WRITE operacija, pa je istodobnost izazov.

DBMS kontrola paralelnosti koristi se za rješavanje takvih sukoba, koji se uglavnom javljaju u višekorisničkom sustavu. Stoga je kontrola istodobnosti 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.

U ovom ćete tutorijalu naučiti

  • Što je kontrola istodobnosti?
  • Potencijalni problemi paralelnosti
  • Zašto koristiti Concurrency metodu?
  • Protokoli za kontrolu istodobnosti
  • Protokoli zasnovani na bravi
  • Dvofazni protokol zaključavanja (2PL)
  • Protokoli temeljeni na vremenskoj oznaci
  • Protokol zasnovan na provjeri valjanosti
  • Karakteristike protokola dobre istodobnosti

Potencijalni problemi paralelnosti

Evo nekoliko problema s kojima ćete se vjerojatno suočiti dok koristite DBMS metodu kontrole paralelnosti:

  • Izgubljena ažuriranja javljaju se kada više transakcija odabere isti redak i ažurira red na temelju odabrane vrijednosti
  • Problemi neovlaštene ovisnosti javljaju se kad druga transakcija odabere redak koji se ažurira drugom transakcijom ( prljavo čitanje )
  • Neponovljivo čitanje događa se kada druga transakcija nekoliko puta pokušava pristupiti istom retku i svaki put čita različite podatke.
  • Pogrešan problem sa sažetkom pojavljuje se kada jedna transakcija preuzme sažetak vrijednosti svih primjera ponovljene podatkovne stavke, a druga transakcija ažurira nekoliko primjera te određene podatkovne stavke. U toj situaciji rezultirajući sažetak ne odražava točan rezultat.

Zašto koristiti Concurrency metodu?

Razlozi za upotrebu metode kontrole paralelnosti su DBMS:

  • Primijeniti izolaciju međusobnim isključivanjem sukobljenih transakcija
  • Riješiti probleme sukoba pri čitanju i pisanju i pisanju i pisanju
  • Da bi se očuvala dosljednost baze podataka stalnim očuvanjem prepreka izvršavanju
  • Sustav mora kontrolirati interakciju među istodobnim transakcijama. Ova se kontrola postiže pomoću shema istodobne kontrole.
  • Kontrola istodobnosti pomaže osigurati serializabilnost

Primjer

Pretpostavimo da dvoje ljudi koji istovremeno odlaze na elektroničke kioske kako bi kupili ulaznicu za film za isti film i isto vrijeme prikazivanja.

Međutim, u tom je kazalištu ostalo samo jedno mjesto za filmsku predstavu. Bez kontrole istodobnosti u DBMS-u moguće je da će oboje gledatelja na kraju kupiti ulaznicu. Međutim, metoda kontrole paralelnosti ne dopušta da se to dogodi. Oboje gledatelja filmova i dalje mogu pristupiti podacima zapisanim u bazi podataka o sjedenju za filmove. Ali kontrola istodobnosti pruža kartu samo kupcu koji je prvi završio postupak transakcije.

Protokoli za kontrolu istodobnosti

Različiti protokoli za kontrolu paralelnosti nude različite pogodnosti između količine paralelnosti koju dopuštaju i količine režijskih troškova koju nameću. Slijede tehnike kontrole istodobnosti u DBMS-u:

  • Zaključani protokoli
  • Dvofazni protokol zaključavanja
  • Protokoli temeljeni na vremenskoj oznaci
  • Protokoli na temelju provjere valjanosti

Protokoli zasnovani na bravi

Zaključani protokoli u DBMS-u mehanizam su u kojem transakcija ne može čitati ili pisati podatke dok ne dobije odgovarajuću blokadu. Lock protokoli pomažu u uklanjanju problema istodobnosti u DBMS-u za simultane transakcije zaključavanjem ili izoliranjem određene transakcije za jednog korisnika.

Brava je podatkovna varijabla koja je povezana s podatkovnom stavkom. Ovo zaključavanje znači da se mogu izvršiti radnje na stavci podataka. Brave u DBMS-u pomažu u sinkronizaciji pristupa stavkama baze podataka istodobnim transakcijama.

Svi zahtjevi za zaključavanje upućuju se upravitelju za kontrolu istodobnosti. Transakcije se nastavljaju samo nakon što se odobri zahtjev za zaključavanjem.

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

Dijeljeno / ekskluzivno: Ova vrsta mehanizma zaključavanja razdvaja brave u DBMS-u na temelju njihove upotrebe. Ako se zaključa stavka podataka za obavljanje operacije pisanja, naziva se ekskluzivna brava.

1. Zajednička brava (S):

Dijeljena brava naziva se i bravom samo za čitanje. Uz zajedničko zaključavanje, podatkovna se stavka može dijeliti između transakcija. To je zato što nikada nećete imati dopuštenje za ažuriranje podataka o stavci podataka.

Na primjer, razmotrite slučaj kada dvije transakcije očitavaju stanje na računu neke osobe. Baza podataka omogućit će im čitanje postavljanjem zajedničke brave. Međutim, ako druga transakcija želi ažurirati stanje računa, zajedničko zaključavanje to spriječi dok postupak čitanja ne završi.

2. Ekskluzivna brava (X):

Uz Ekskluzivnu bravu, i stavka podataka može se čitati i pisati. Ovo je ekskluzivno i ne može se istovremeno držati na istoj stavci podataka. X-lock se zahtijeva pomoću uputa lock-x. Transakcije mogu otključati podatkovnu stavku nakon završetka operacije 'pisanja'.

Na primjer, kada transakcija treba ažurirati stanje računa neke osobe. Ovu transakciju možete dopustiti postavljanjem X brave na nju. Stoga, kada druga transakcija želi čitati ili pisati, ekskluzivno zaključavanje sprječava ovu operaciju.

3. Pojednostavljeni protokol zaključavanja

Ova vrsta protokola zasnovanih na zaključavanju omogućuje transakcijama dobivanje zaključavanja svakog objekta prije početka rada. Transakcije mogu otključati podatkovnu stavku nakon završetka operacije 'pisanja'.

4. Zaključavanje prije polaganja prava

Protokol zaključavanja prije polaganja prava pomaže u procjeni operacija i stvaranju popisa potrebnih podataka koji su potrebni za pokretanje postupka izvršenja. U situaciji kada su odobrena sva zaključavanja, transakcija se izvršava. Nakon toga se sve brave otpuštaju kad sve njegove operacije završe.

Gladovanje

Izgladnjivanje je situacija kada transakcija treba pričekati neograničeno vrijeme da bi stekla bravu.

Slijede razlozi gladovanja:

  • Kada se shemom čekanja zaključanih predmeta ne upravlja pravilno
  • U slučaju curenja resursa
  • Ista transakcija se više puta odabire kao žrtva

Zastoj

Zastoj se odnosi na specifičnu situaciju u kojoj dva ili više procesa čekaju jedni druge da bi oslobodili resurs ili ih više od dva procesa čekaju u kružnom lancu.

Dvofazni protokol zaključavanja

Dvofazni protokol zaključavanja također poznat kao 2PL protokol je metoda kontrole paralelnosti u DBMS-u koja osigurava serializaciju primjenom zaključavanja na podatke o transakciji koja blokira druge transakcije za istovremeni pristup istim podacima. Dvofazni protokol zaključavanja pomaže u uklanjanju problema istodobnosti u DBMS-u.

Ovaj protokol zaključavanja dijeli fazu izvršenja transakcije na tri različita dijela.

  • U prvoj fazi, kada se transakcija počinje izvršavati, potrebna joj je dozvola za brave koje joj trebaju.
  • Drugi je dio gdje transakcija dobiva sve brave. Kada transakcija otpusti svoje prvo zaključavanje, započinje treća faza.
  • U ovoj trećoj fazi transakcija ne može zahtijevati nove brave. Umjesto toga, otpušta samo stečene brave.

Dvofazni protokol zaključavanja omogućuje svakoj transakciji da izvrši zahtjev za zaključavanje ili otključavanje u dva koraka:

  • Faza rasta : U ovoj fazi transakcija može dobiti brave, ali ne smije otpustiti nijednu bravu.
  • Faza skupljanja : U ovoj fazi transakcija može osloboditi brave, ali neće dobiti novu bravu

Istina je da protokol 2PL nudi mogućnost serializacije. Međutim, to ne osigurava da se mrtve točke ne dogode.

Na gore danom dijagramu možete vidjeti da lokalni i globalni detektori mrtvih ciljeva traže mrtve točke i rješavaju ih nastavljanjem transakcija u njihova početna stanja.

Stroga metoda dvofaznog zaključavanja

Strogo dvofazni sustav zaključavanja gotovo je sličan 2PL. Jedina je razlika u tome što Strict-2PL nikada ne oslobađa bravu nakon što je upotrijebi. Zadržava sve brave do točke urezivanja i otpušta sve brave odjednom kad je postupak završen.

Centralizirano 2PL

U Centraliziranom 2 PL jedno je mjesto odgovorno za postupak upravljanja zaključavanjem. Ima samo jedan upravitelj zaključavanja za cijeli DBMS.

Primarni primjerak 2PL

Primarni mehanizam kopiranja 2PL, mnogi upravitelji zaključavanja distribuiraju se na različite web stranice. Nakon toga, određeni upravitelj zaključavanja odgovoran je za upravljanje zaključavanjem skupa podataka. Kada se primarna kopija ažurira, promjena se prenosi na robove.

Distribuirani 2PL

U ovoj vrsti dvofaznog mehanizma zaključavanja, upravitelji brave distribuiraju se na svim web mjestima. Oni su odgovorni za upravljanje zaključavanjima podataka na toj web lokaciji. Ako se niti jedan podatak ne replicira, ekvivalentan je primarnoj kopiji 2PL. Troškovi komunikacije Distributed 2PL prilično su veći od primarne kopije 2PL

Protokoli temeljeni na vremenskoj oznaci

Protokol zasnovan na vremenskoj oznaci u DBMS-u algoritam je koji koristi sistemsko vrijeme ili logički brojač kao vremensku oznaku za serializaciju izvršavanja istodobnih transakcija. Protokol zasnovan na vremenskoj oznaci osigurava da se sve sukobljene operacije čitanja i pisanja izvršavaju redoslijedom vremenskih žigova.

Ovom metodom uvijek se daje prednost starijoj transakciji. Koristi sistemsko vrijeme za određivanje vremenskog žiga transakcije. Ovo je najčešće korišteni protokol istodobnosti.

Lock-based protokoli pomažu vam u upravljanju redoslijedom između sukobljenih transakcija kada će se izvršiti. Protokoli temeljeni na vremenskoj oznaci upravljaju sukobima čim se kreira operacija.

Primjer:

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 :

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

Mane:

Izgladnjivanje je moguće ako se ista transakcija ponovno pokrene i kontinuirano prekida

Protokol zasnovan na provjeri valjanosti

Protokol zasnovan na provjeri valjanosti u DBMS-u, poznat i kao Optimistična tehnika kontrole paralelnosti, metoda je za izbjegavanje istodobnosti u transakcijama. U ovom se protokolu ažuriraju lokalne kopije podataka o transakciji, a ne sami podaci, što rezultira manjim smetnjama tijekom izvršavanja transakcije.

Protokol zasnovan na provjeri valjanosti izvodi se u sljedeće tri faze:

  1. Čitaj fazu
  2. Faza provjere valjanosti
  3. Napišite fazu

Čitaj fazu

U fazi čitanja, vrijednosti podataka iz baze podataka mogu se pročitati transakcijom, ali operacija upisivanja ili ažuriranja primjenjuju se samo na lokalne kopije podataka, a ne na stvarnu bazu podataka.

Faza provjere valjanosti

U fazi provjere valjanosti podaci se provjeravaju kako bi se osiguralo da nema kršenja serializabilnosti tijekom primjene ažuriranja transakcije na bazu podataka.

Napišite fazu

U fazi pisanja, ažuriranja se primjenjuju na bazu podataka ako je provjera valjanosti uspješna, inače; ažuriranja se ne primjenjuju i transakcija se vraća.

Karakteristike protokola dobre istodobnosti

Idealan DBMS mehanizam za kontrolu paralelnosti ima sljedeće ciljeve:

  • Mora biti otporna na kvarove na mjestu i komunikaciji.
  • Omogućuje paralelno izvršavanje transakcija kako bi se postigla maksimalna istodobnost.
  • Njegovi mehanizmi pohrane i računske metode trebali bi biti skromni kako bi se smanjili režijski troškovi.
  • Mora nametnuti neka ograničenja u strukturi atomskih akcija transakcija.

Sažetak

  • Kontrola istodobnosti postupak je u DBMS-u za upravljanje istodobnim operacijama bez međusobnog sukoba.
  • Izgubljena ažuriranja, prljavo čitanje, neponovljivo čitanje i netočan sažetak predstavljaju probleme s kojima se suočava nedostatak kontrole istodobnosti.
  • Na temelju zaključavanja, dvofaznog, temeljenog na vremenskoj oznaci i na temelju provjere valjanosti tipovi su protokola za obradu paralelnih valuta
  • Brava može biti dijeljena (S) ili ekskluzivna (X)
  • Dvofazni protokol zaključavanja, koji je poznat i kao protokol 2PL, treba transakciju steći nakon što otpusti jednu od svojih brava. Ima 2 faze rasta i smanjivanja.
  • Algoritam zasnovan na vremenskoj oznaci koristi vremensku oznaku za serializiranje izvršavanja istodobnih transakcija. Protokol koristi sistemsko vrijeme ili logičko brojanje kao vremensku oznaku.