Download - Konkurentni pristup bazi podataka
-
8/8/2019 Konkurentni pristup bazi podataka
1/87
KOKURENTNI PRISTUPKOKURENTNI PRISTUPBAZI PODATAKABAZI PODATAKA
Panevropski Univerzitet ApeironBanja Luka
Seminarski rad iz predmeta: RDBMS i CASE alati
Predmetni profesor:Prof. dr Zoran . Avramovi
Student:Dragan Bori
Banja Luka, Decembar 2010 god.
Tema:
-
8/8/2019 Konkurentni pristup bazi podataka
2/87
SADRAJ RADA:SADRAJ RADA:
y UVODy BAZE PODATAKAy
TRANSAKCIJEy KONTROLA KONKURENTNOSTIy TEHNIKE ZAKLJUAVANjAy
NEPOVRATNO ZAKLJUAVANJEPODATAKAy OSTALE METODE KONTROLE
KONKURENTOSTI
-
8/8/2019 Konkurentni pristup bazi podataka
3/87
-
8/8/2019 Konkurentni pristup bazi podataka
4/87
UVODUVOD
y Baze podataka predstavljaju viu razinu radas podacima u odnosu na klasine programskejezike
y
Tehnologija nastala s namjerom da se ukloneslabosti tradicionalne automatske obradepodataka iz 60-tih i 70-tih godina 20. veka
y Osiguranje vee produktivnosti, kvalitete i
pouzdanosti u razvoju aplikacija koje sesvode na pohranjivanje i pretraivanjepodataka u raunaru
-
8/8/2019 Konkurentni pristup bazi podataka
5/87
UVODUVOD
y Baza podataka je skup meusobnopovezanih podataka, sauvanih u vanjskojmemoriji raunara
y Podaci su istovremeno dostupni raznimkorisnicima i aplikacijskim programima.
y Unos, promena, brisanje i itanje podataka
obavlja se posredstvom zajednikogsoftvera - SUBP
-
8/8/2019 Konkurentni pristup bazi podataka
6/87
BAZEBAZE
PODATAKAPODATAKA
-
8/8/2019 Konkurentni pristup bazi podataka
7/87
BAZE PODATAKABAZE PODATAKAy Baza podataka je skup istovrsnih podataka s
viestrukom namjenom. Korisnik nije zainteresiranza sve vrste podataka u bazi, ve samo za one kojisu mu potrebni u njegovom poslu. Korisnik moe
imati uvid u samo jednu, njemu potrebnudatoteku, koja ima uvijek istu i to vrlojednostavnu strukturu, iako je u biti izvedena izmnogo kompleksnije strukture podataka. Razliitikorisnici uzimaju u obzir razliite datoteke
izvedene iz iste baze podataka. Dakle, iako je bazapodataka zajednika veem broju korisnika,razliiti korisnici je razliito shvataju. -JamesMartin
-
8/8/2019 Konkurentni pristup bazi podataka
8/87
BAZE PODATAKABAZE PODATAKA
y Baze podataka se dele na: Operacijske (transakcijske, produkcijske) baze
Distribuirane baze podataka
Eksterne baze podataka Data Warehouse i Data Mining
Hipermedijalne baze podataka naWeb-u
-
8/8/2019 Konkurentni pristup bazi podataka
9/87
OperacijskeOperacijske bazebaze
y Operacijske (transakcijske,produkcijske) baze podataka - pamtedetaljne i aktuelne podatke potrebne za
podrku poslovnih procesa i operacijay Primeri su baza kupaca, baza ljudskih
resursa, baza zaliha i druge baze
generisane poslovnim operacijama
-
8/8/2019 Konkurentni pristup bazi podataka
10/87
EksterneEksterne bazebaze podatakapodatakay Pristup informacijama iz eksternih baza podataka je
mogu putem velikog broja komercijalnih onlineservisa, kao i sa plaanjem ili bez, iz mnogih izvora naInternetu
y Web-stranice osiguravaju putem hiperlinkovanihstrana pretraivanje multimedijalnih dokumenata uhipermedijalnim bazama podataka
y Eksterni podaci su najece u vidu statistikih bazapodataka nastalih kao rezultat ekonomskih idemografskih istraivanja i aktivnosti.
y Takoer su popularne bibliografske ili full text baze izkojih se mogu vidjeti ili preuzeti apstrakti ilikompletne kopije raznih asopisa, istraivakih radovai drugih publiciranih materijala.
-
8/8/2019 Konkurentni pristup bazi podataka
11/87
Data WarehouseData Warehousey Data Warehouse baza podataka memorie podatke
ekstrahirane iz razliitih operacijskih, eksternih ilinekih drugih baza podataka u okviru organizacije.
y Ona je sredinji izvor preienih i transformiranihaktuelnih i istorijskih podataka koje koriste menaderii drugi poslovni strunjaci za data mining, OLAP (engl.online analytical processing) i druge vrste poslovnihanaliza, istraivanja trita, i podrku odlucivanju.
y Data warehouse moe biti podijeljen na data mart-ove koji sadre podskupove podataka warehose-a koji
su fokusirani na neki specificni aspekt kompanije, kaoto je odjel ili poslovni proces.
-
8/8/2019 Konkurentni pristup bazi podataka
12/87
HipermedijalneHipermedijalne bazebaze podatakapodataka
nanaWebWeb--uuy Rapidni napredak Web tehnologija jeznaajno poveao primjenu bazahipermedijalnih dokumenata koje se nazivajuhipermedijalne baze podataka
y Hipermedijalna baza podataka je zapravoweb stranica koja se sastoji odhiperlinkovanih multimedijalnih strana
y Sa take gledita teorije baza podataka,
hipermedijalna baza podataka nije skupmeusobno povezanih slogova, ve skupmeusobno hiperlinkovanih multimedijalnihstrana.
-
8/8/2019 Konkurentni pristup bazi podataka
13/87
DistribuiranaDistribuirana bazabaza podatakapodatakay Baza podataka koja se ne nalazi u celini najednom raunaru, ve je razdeljena na vielokacija koje su povezane komunikacijskom
mreom.y Svaka lokacija ima svoj vlastiti, autonomni
sistem za upravljanje bazama podataka, savlastitom kontrolom , upravljaem transakcija
i oporavka od pada, i ostalim znaajnimfunkcijama.y Poseduje svoj procesor i ulazno/izlazne
ureaje.
-
8/8/2019 Konkurentni pristup bazi podataka
14/87
DistribuiranaDistribuirana bazabaza podatakapodataka
-
8/8/2019 Konkurentni pristup bazi podataka
15/87
PROBLEMI dPROBLEMI distribuiranistribuiranihih bazabaza
podatakapodatakay Sporost mrene komunikacijey Da bi postigli visoku efikasnost DSUBP njegove
komponente treba razvijati na takav nain da sesmanji mrena komunikacija, tanije koliina podatakakoju prenosimo preko mree.
y Problemi sa kojima se sreemo udistribuiranimsistemima baza podataka su: fragmentacija podataka distribuirana obradba upita
distribuirano auriranje upravljanje katalogom distribuirano izvrenje skupa transakcija, to ukljuuje
konkurentnost, integritet, oporavak i protokolekompletiranja transakcija
-
8/8/2019 Konkurentni pristup bazi podataka
16/87
TRANSAKCIJETRANSAKCIJE
-
8/8/2019 Konkurentni pristup bazi podataka
17/87
TRANSAKCIJETRANSAKCIJEy Prema broju korisnika beze podataka
moemo klasifikovati na:jedno korisnike (engl. Single user) i multikorisnilke (engl. Multi users).
y Transakcija je logika jedinica procesiranjapodataka u bazi koja ukljuuje jednu ili vieoperacija u bazi podataka.
y Operacije mogu biti: insert (ubacivanje), delete (brisanje), update (izmjene), select (pretraivanje).
-
8/8/2019 Konkurentni pristup bazi podataka
18/87
OZNAAVANJE GRANICAOZNAAVANJE GRANICATRANSAKCIJETRANSAKCIJEy eksplicitno navoenje begin transaction i
end transaction odnosno commit ilirollback.
y Drugi nain je automatski nain rada priemu svaka operacija predstavlja transakciju.
y Bitno je napomenuti da jedan program moe
imati vie transakcija.y U sluaju da transakcija nema operaciju
auriranja (izmjene baze) transakcija se zoveread-only.
-
8/8/2019 Konkurentni pristup bazi podataka
19/87
Operacije za pristup BPOperacije za pristup BP
y Osnovne operacije za pristup bazipodataka, koje transakcija ukljuuje su: Read_item(X) ita podatak iz baze sa
imenom X i smjeta ga u programsku varijabluX
Write_item(X) pie vrednost programskevarijable X u bazu podatak
y Podatak u bazi je oznaen sa X
-
8/8/2019 Konkurentni pristup bazi podataka
20/87
ITANjE PODATKAITANjE PODATKA
y Koraci izvrenja read_item(X):
Nai adresu disk bloka koji
sadri podatak X
Kopirati disk blok u bafer uglavnoj memoriji (ako disk
blok ve nije u memoriji),
Kopirati podatak X iz bafera uprogramsku varijablu saimenom X
-
8/8/2019 Konkurentni pristup bazi podataka
21/87
IZMENA PODATKAIZMENA PODATKA
y Koraci izvrenje write_item(X):
Nai adresu disk bloka kojisadri podatak X
Kopiraj disk blok u bafer uglavnoj memoriji (ako disk blokve nije u memoriji)
Kopiraj podatak X iz
programske varijable nakorektnu lokaciju u bafer
Pii blok iz memorije nadisk
-
8/8/2019 Konkurentni pristup bazi podataka
22/87
PRIMER:PRIMER:
I transakcija II transakcija
Read_item(X) Read_item(X)
X:=X-N X:=X+MWrite_item(X) Write_item(X)
Read_item(Y)
Y:=Y+N
Write_item(Y)
Opis: Prebaci n = 5 rezervacijakarata sa leta X na let Y
Opis: Rezervii m = 8 mesta naletu X
70 70
65 78
50
55
-
8/8/2019 Konkurentni pristup bazi podataka
23/87
ISTOVREMENO IZVRENjEISTOVREMENO IZVRENjE
y U sluaju da se dve transakcije izvravajuistovremeno potrebno je: Vriti kontrolu konkurentnosti (Vie korisnika
moe istovremeno itati podatke i menjati ih.U sluaju nekontrolisanog rada moe doi donekonzistentnosti baze)
Obezbediti mehanizam ponitenja transakcije
-
8/8/2019 Konkurentni pristup bazi podataka
24/87
STATUSI TRANSAKCIJESTATUSI TRANSAKCIJE
PADtransakcije
PARCIJALNOPOTVRENA POTVRENA
KRAJTRANSAKCIJE IZVRI
POETAKTRANSAKCIJE
READWRITE
PREKID PREKID
AKTIVNA
-
8/8/2019 Konkurentni pristup bazi podataka
25/87
OsobineOsobine transakcijatransakcijay Transakcija treba da ima nekoliko osobina, one se
esto nazivaju ACID osobine i one treba da sprovodekontrolu konkurentosti i metode oporavka u SUBP.ACID osobine: Atomicity (nedeljivost) Transakcija je nedeljiva jedinica
procesiranja koja se ili izvri u celosti ili se ni jedan njendio ne izvri Consistency preservation (Zatita konzistentnosti) -
transakcija titi bazu od nekonzistentnosti. Bolje reenovodi bazu iz jednog u drugo konzistentno stanje
Islolation (Izolacija) transakcija se izvrava izolovano oddruge transakcije
Durability ili Permanency (Trajnost promene) promene ubazi koje su potvrene (commit-ovane) moraju biti trajneu bazi. One ne smeju biti izgubljene zbog bilo kakve greke.
-
8/8/2019 Konkurentni pristup bazi podataka
26/87
KONTROLAKONTROLAKONKURENTNOSTIKONKURENTNOSTI
-
8/8/2019 Konkurentni pristup bazi podataka
27/87
TEHNIKETEHNIKE
y Veina tehnika za kontrolu konkurentnostiobezbeuje serijsko izvravanje.
yJedan vaan skup protokola koristitehniku zakljuavanja podataka da bispreilo da vie transakcija pristupaistovremeno istom podatku.
y Tehnike zakljuavanja se koriste u veinikomercijalnih SUBP.
-
8/8/2019 Konkurentni pristup bazi podataka
28/87
TEHNIKE ZA KONTROLUTEHNIKE ZA KONTROLUy Tehnike kontrole konkurentnosti:
Tehnika zakljuavanja Kontrola konkurentnosti na baziTimeStamp
redosleda Vie verzijska kontrola konkurentnosti Tehnika validacije (optimistika) kontrola
konkurentnosti Granularnost podataka i viestruko granularno
zakljuavanje Upotreba katanaca za kontrolu konkurentnosti u
indeksima Ostale kontrole konkurentnosti
-
8/8/2019 Konkurentni pristup bazi podataka
29/87
y U sluaju da se ne potuje kontrolakonkurentnosti moe doi do sledeihproblema: Problem gubitka auriranja Problem privremenog auriranja
Problem pogrenog sabiranja
PROBLEMI KONKURENTNOGPROBLEMI KONKURENTNOGPRISTUPAPRISTUPA
-
8/8/2019 Konkurentni pristup bazi podataka
30/87
y Pojavljuje se kada se istovremeno itajuvrednosti iz baze i onda se odvojenoauriraju.
y Primer: U sistemu rezervacije karataizvrenje transakcijaT1 (prebacivanje 5rezervacija sa jednog na drugi let) i T2
(rezervacija 4 karte) istovremeno. Ako jebroj rezervacija X=80. Rezultattransakcije je prikazan u Tabeli 2.
Problem gubitka auriranjaProblem gubitka auriranja
-
8/8/2019 Konkurentni pristup bazi podataka
31/87
Problem gubitka auriranjaProblem gubitka auriranja
I transakcija Vreme II transakcija
Read_item(X) //80 t1
tn
X:=X-N //75Read_item(X) //80
X:=X+M //84
Write_item(X) //75
Read_item(Y)
Write_item(X) //84Y:=Y+N
Write_item(Y)
UMESTO 79 IMAMO 84
-
8/8/2019 Konkurentni pristup bazi podataka
32/87
ProblemProblem privremenogprivremenog auriranjaauriranja
y nastaje kada se dve transakcije izvravajuparalelno
y Ako prva transakcija promeni neku
vrednost koja se kasnije koristi u drugojtransakciji a nakon toga se prvatransakcija poniti odnosno umesto
naredbe COMMIT prva transkacija zatraiopoziv izdavanjem naredbe ROLLBACK
-
8/8/2019 Konkurentni pristup bazi podataka
33/87
ProblemProblem privremenogprivremenog auriranjaauriranja
I transakcija Vreme II transakcija
Read_item(X) t1
tn
X:=X-N
Write_item(X)
Read_item(X)ROLLBACK
-
8/8/2019 Konkurentni pristup bazi podataka
34/87
ProblemProblem pogrenogpogrenog sabiranjasabiranja
y Pojavljuje se kada se dve transakcijeizvravaju paralelno. Jedna aurira bazu adruga pravi zbrajanje i u tom procesu
uzima dio podataka pre a dio posleauriranja.
-
8/8/2019 Konkurentni pristup bazi podataka
35/87
ProblemProblem pogrenogpogrenog sabiranjasabiranja
I transakcija Vreme II transakcija
t1
tn
Suma = 10
Read_item(X) //80
X:=X-N //70
Read_item(X) //80
Write_item(X) //70 Suma = suma +X //90
COMMIT Read_item(Y) // 3
Suma = Suma / Y //30Read_item(Y) // 3
Y:=Y+M // 5
Write_item(Y) // 5
UMESTO Suma = 16, Suma JE 30
-
8/8/2019 Konkurentni pristup bazi podataka
36/87
SUBPSUBP
y Iz prethodnih primera zakljuuje se da je usluaju greke potrebno ponitenjetransakcije
y Kada se transakcija poalje SUBP naizvrenje sistem je odgovoran da e sigurno: Sve operacije u transakciji zavrtiti uspeno i
njihov efekat e se zapisati u bazu za stalno
ILI Transakcija nee imati nikakvog efekta na bazu
niti na bilo koju njenu transakciju.
-
8/8/2019 Konkurentni pristup bazi podataka
37/87
PAD TRANSAKCIJEPAD TRANSAKCIJE
y Neki od razloga za pad transkacije su: Greka raunara (hardverske, softverske ili
mrene greke u raunarskom sistemu za vreme
trajanja transakcije), Greka sistema ili transakcije (neke operacije
mogu biti sa grekom (delenje sa nulom,prekoraenje...), greka u programu,
Detekcija izuzetka (engl. exception) nije nadjenpodatak (nema dovoljno novca na raunu),
Greka kontrole konkurentnosti deadlock...
Greka okruenja iskljuenje raunara,...
-
8/8/2019 Konkurentni pristup bazi podataka
38/87
TEHNIKETEHNIKEZAKLjUAVANjAZAKLjUAVANjA
-
8/8/2019 Konkurentni pristup bazi podataka
39/87
KATANCIKATANCI LOCKLOCKy Katanac (engl lock) je varijabla pridruena
podatku koji opisuje status podatka uodnosu na operacije koje se mogu primjenitina podatke. Katanac se koristi za
sinhronizaciju pristupa podacima od stranekonkurentnih transakcija.y Tipovi katanaca:
Binarni katanci imaju samo dva statusa:zakljuan i nije zakljuan
Deljeni/ekskluzivni katanci dozvoljava pristup(itanje) za vie transakcija ali samo jednoj zapisanje.
-
8/8/2019 Konkurentni pristup bazi podataka
40/87
-
8/8/2019 Konkurentni pristup bazi podataka
41/87
BinarniBinarni katanackatanacy Provera statusa podatka X se dobija sa naredbom
LOCK(X)ako je LOCK(X) = 1, transakcija je primorana dapriekaAko je LOCK(X) = 0, onda se postavlja 1(postavlja se katanac na podatak) i transakcijadobija pristup podatku X.
y Kada se zavri transakcija, ona izdaje naredbu
unlock_item(X)koja LOCK(X) postavlja na 0, odnosno otkljuavapodatak tako da se podatku X moe pristupiti odstrane druge transakcije.
-
8/8/2019 Konkurentni pristup bazi podataka
42/87
-
8/8/2019 Konkurentni pristup bazi podataka
43/87
PSEUDO KOD bPSEUDO KOD binarninarnogog katanckatancaa
lock_item(X):B:ifLOCK(X)=O //podatakje otkljuan
then LOCK(X)1//zakljuaj podatak
else beginwait (untillock(X)=0);
go to B
end;
unlock_item (X):LOCK (X)O;//otkljuava podatak
-
8/8/2019 Konkurentni pristup bazi podataka
44/87
-
8/8/2019 Konkurentni pristup bazi podataka
45/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac
y Deljeno tj eksluzivno zakljuavanjedozvoljava da vie transakcija ita podatkeali samo jedna transkacija moe da pie
(aurira) podatak.y Da bi se to omoguilo koriste se razliiti
tipovi katanaca, da transakcija mogla da
aurira podatak mora da ima eksluzivnipristup (eksluzivni katanac).
-
8/8/2019 Konkurentni pristup bazi podataka
46/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac
y Pri upotrebi deljenog/ eksluzivnog katancaili itaj / pii (engl. write / read) katanca,koriste se sledee tri operacije, pri emu
X predstavlja podatak kojem transakcijapristupa: Read_lock(X)
Write_lock(X) Unlock(X)
-
8/8/2019 Konkurentni pristup bazi podataka
47/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac
y Prilikom zakljuavanja podatka X,LOCK(X) moe imati sledee statuse: Read_locked (shared_locked) katanac
itanja. Ostale transakcije mogu itati podataki moe ih biti vie nad jednim podatkom
Write_locked (exclusive_locked)katanacpisanja. Samo jedna transakcija moe pristupiti
podatku, da bi ga izmenila. Unlocked otkljuaj podatak. Izbrii katanac
sa podatka
-
8/8/2019 Konkurentni pristup bazi podataka
48/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac
y Svaki zapis u tabeli katanaca mora da imasledea etiri polja: Naziv polja
Lock (vrsta katanca) Broj itanja
Transakcija
-
8/8/2019 Konkurentni pristup bazi podataka
49/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac -- PravilaPravila
y Kada se koristi deljeno/eksluzivno zakljuavanje,sistem mora da se pridrava sledeih pravila:1. TransakcijaT mora uraditi operacije read_lock(X)
ili write_locked(X) pre bilo koje read_item(X)2. TransakcijaT mora uraditi operaciju
write_locked(X) pre bilo koje write_item(X)3. TransakcijaT mora uraditi operaciju unlocked(X)
posle svih read_item(X) i write_item(X)4. TransakcijaT nee uraditi read_lock(X) ako ve
postoji read ili write katanac na X
5. TransakcijaT nee uraditi write_lock(X) akotransakcija ima read ili write katanac nad X
6. TransakcijaT nee uraditi unlock(X) operaciju akotransakcija nema read ili write katanac na X
-
8/8/2019 Konkurentni pristup bazi podataka
50/87
DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac -- PravilaPravila
y Pravilo 4 i 5 se mogu malo promeniti i to: Ako transakcija T ima read_lock(X) i ako
transakcija traba da postavi write_lock(X) to
se moe uraditi ako jedino transakcijaT imaread_lock na X
Ako transakcija T ima write_lock(X) onamoe katanac nad X promeniti u
read_lock(X)
-
8/8/2019 Konkurentni pristup bazi podataka
51/87
PSEUDO KODPSEUDO KODread_lock (X):
B: ifLOCK(X)= "unlocked"then begin LOCK(X) "read_locked";no_of_reads(X) 1 //broj zakljucanih
endelse ifLOCK(X)="read_Iocked"
then no_of_reads(X) no_of_reads(X) + 1//inkrementiraj broj katanaca
elsebegin wait (until LOCK(X) = "unlocked")
go to Bend;
-
8/8/2019 Konkurentni pristup bazi podataka
52/87
PSEUDO KODPSEUDO KOD
write_lock (X):B: ifLOCK(X) = "unlocked"
then LOCK(X) ''write_locked''
elsebegin wait (until LOCK(X)= "unlocked");go to B
end;
-
8/8/2019 Konkurentni pristup bazi podataka
53/87
-
8/8/2019 Konkurentni pristup bazi podataka
54/87
PPreranorerano otkljuavanjotkljuavanjee podatakapodataka
I transakcija Vreme II transakcijaread_lock(Y)
t1
tn
read_item(Y) //30unlock(Y)
read_lock(X)
read_item(X) //20
unlock(X)
write_lock(Y)
read_item(Y) //30Y:=X+Y //50
write_item(Y)
unlock(Y)write_lock(X)
read_item(X) //20
X:=X+Y //50write_item(X)
unlock(X)
InicijalnavrijednostX=20,Y=30;
Rezultat jeX=50, Y=50umestoX=70, Y=50
-
8/8/2019 Konkurentni pristup bazi podataka
55/87
DVOFAZNO ZAKLjUAVANjEDVOFAZNO ZAKLjUAVANjEy Da bi se prethodni problem prevaziao potrebno je
koristiti dodatni protokol zakljuavanja i otkljuavanjapoznat kao dvofazno zakljuavanje
y Dvofaznostje metoda za postizanje linearizovanog
izvrenja skupa transakcija, korienjem mehanizmazakljuavanj
y Transakcija je dvofazna ako se sastoji od dve serijske faze:faze zakljuavanja objekata i faze otkljuavanjaobjekata
y U fazi zakljuavanja nema nijedne radnje otkljuavanjaobjekta, odnosno u fazi otkljuavanja vie nema radnjizakljuavanja (naravno, obe ove faze ukljuuju i drugeoperacije nad objektima kao to su itanje, obrada, upis
objekata)
-
8/8/2019 Konkurentni pristup bazi podataka
56/87
Dvofazno zakljuavanjeDvofazno zakljuavanjey Za transakciju se kae da slijedi dvofazni protokol
ako sve operacije zakljuavanja (read_lock,write_lock) prethode prvom otkljuavanju.
y Takva transakcija ima dvije faze i to:
fazu irenja (zakljuavanja) i fazu skupljanja (otkljuavanja)
y Dvofazno zakljuavanje moe zakljuati dostaobjekata.
y U nekim momentima moe drati zakljuane i
objekte koji joj vie nisu potrebni.y Iz tih razloga neke druge transakcije mogu ekati
due na izvrenje. To je cijena dvofaznogzakljuavanja.
-
8/8/2019 Konkurentni pristup bazi podataka
57/87
Dvofazno zakljuavanjeDvofazno zakljuavanje
y Konzervativno dvofazno zakljuavanjezahteva da transakcija zakljua svepotrebne podatke prije poetka izvrenja
sa predefinisanim read-skupom i write-skupom.y Ako transakcija neto ne moe zakljuati
ona eka da se taj resurs oslobodiy Ova metoda nije primjenljiva jer se
nekada ne moe znati ta se sve trebazakljuati.
-
8/8/2019 Konkurentni pristup bazi podataka
58/87
Dvofazno zakljuavanjeDvofazno zakljuavanje
y Striktna dvofazno zakljuavanje,transakcija ne oslobaa ni jedan katanacdok se transakcija ne zavri.
y Nijedna druga transakcija ne moezakljuati, itati ni pisati podatak dok sene uradi commit ili abort.
-
8/8/2019 Konkurentni pristup bazi podataka
59/87
Dvofazno zakljuavanjeDvofazno zakljuavanje
y Rigorozno dvofazno zakljuavanjetransakcija ne oslobaa ni jedanekskluzivni ni dijeljeni lok dok se
transkacija ne zavri.y Laka je za realizaciju nego strikno
zakljuavanje
-
8/8/2019 Konkurentni pristup bazi podataka
60/87
-
8/8/2019 Konkurentni pristup bazi podataka
61/87
NEPOVRATNONEPOVRATNOZAKLjUAVANjEZAKLjUAVANjE
-
8/8/2019 Konkurentni pristup bazi podataka
62/87
NEPOVRATNONEPOVRATNOZAKLjUAVANjEZAKLjUAVANjE
y Nepovratno zakljuavanje podataka (engl. Deadlock) jepojava kada svaka transakcija u skupu od dvije ili vietransakcija eka za nekim resursom koji je zakljuan oddruge transakcije iz tog skupa.
I transakcija Vreme II transakcija
Read_lock(Y) t1
tn
Read_item(Y)
Read_lock(X)Read_item(X)
Write_lock(X)Write_lock(Y)
T1 i T2 su nepovratnozakljuane u parcijalnomizvrenju, Transakcija T1 ekau redu za podatkom X, koji jezakljuan odtransakcije T2 dok T2 eka u
redu za podatak Y koji jezakljuan od transakcije T1.Meutim, ni transakcija T1 niT2 niti bilo koja transakcijane mogu pristupiti podatku Xi Y.
-
8/8/2019 Konkurentni pristup bazi podataka
63/87
Nepovratno zakljuavanjeNepovratno zakljuavanje
yJedan od naina da se sprei deadlock jesteda se koristi preventivni protokol.
y Ovaj protokol zahtjeva da svaka transakcijana poetku zakljua sve resurse (podatke)koji joj trebaju. Ako joj svi resursi nisudostupni transakcije ne vri nikakvozakljuavanje i takva transakcija eka nekovrijeme i opet pokuava izvriti zakljuavanje.
y Ovo reenje smanjuje sposobnostkonkurentnog pristupa.
-
8/8/2019 Konkurentni pristup bazi podataka
64/87
Nepovratno zakljuavanjeNepovratno zakljuavanje
y Drugi nain prevencije jeste na bazivremenske oznake (engl. Timestamp).
y Koncept timestamp jeste da se svakoj
transakciji dodijeli jedinstven identifikatorzvani timestamp TS(T) koji se definie naosnovu vremena startanja transakcije.
y Ako je transakcija T1 startala prijetransakcije T2 tada je TS(T1) < TS(T2).
-
8/8/2019 Konkurentni pristup bazi podataka
65/87
DEADLOCKDEADLOCK --TimeStampTimeStamp
y Ovaj protokol se zasniva na sledeimpravilima: Wait-die Ako je TS(T1) < TS(T2) tada (T1 je
startala prije) T1 ima dozvolu da eka inae ako je
TS(T1) >= TS(T2) (T1 je startala kasnije) T1 seprekida i startuje kasnije sa istim TS {Starijatransakcija eka a mlaa se ukida i kasnijeponovno starta}
Wound-wait ako je TS(T1) < TS(T2) tada seprekida T2 i restartuje kasnije sa istim TS inae jedozvoljeno da T1 eka {Mladja transakcija eka astarija se ukida i kasnije ponovno starta}
-
8/8/2019 Konkurentni pristup bazi podataka
66/87
DEADLOCKDEADLOCK --TimeStampTimeStamp
y U Wait-die, starijijoj transakciji jedozvoljeno da eka na mlau transkakciju,ukoliko mlaa transakcija zahteva podatak
koji dri starija, transakcija se ponitava irestartuje.
y Druga grupa protokola za prevenciju
deadlocka ne zahteva vremenske oznake,one ukljuuju no waiting (NW) i cautiouswaiting (CW) algoritme.
-
8/8/2019 Konkurentni pristup bazi podataka
67/87
No waiting algoritamNo waiting algoritam
y Kod no waiting algoritma, kada transakcijanije u mogunosti da zakljua podatak onase odmah prekida i restartuje nakon
izvjesnog vremena bez provjere da li sepodatak oslobodio.y Ova ema moe prouzrokovati velik broj
prekidanja i restartanja transakcija to
samo po sebi znai mnogo upisivanja podiskovima, to proizvodi usporenjasistema.
-
8/8/2019 Konkurentni pristup bazi podataka
68/87
Cautious waitingCautious waiting
y Cautious waiting algoritam predlae da sepokua smanjiti broj nepotrebnihprekida/restartovanja.
y Pretpostavimo da transakcija T1 pokuava dazakljua podatak X ali nije u stanju da touini jer je X zakljuan od neke drugetransakcije T2, u tom sluaju vai pravilo: Ako transakcija T2 nije blokirana (ne eka neki
drugi objekat) tada je T1 blokirana i ima dozvoluda eka, ona eka inae ako nema dozvolu zaekanje T1 se prekida. Blokiranim transakcijamase mjeri vrijeme b(T) i na osnovu njega se
transakcije ponitavaju.
-
8/8/2019 Konkurentni pristup bazi podataka
69/87
y Jo jedan pristup je detekcija deadlock-a, gde sistemproverava stanje da li deadlock zaista postoji
y Ova solucija je atraktivnija ako znamo da e biti meanjeizmeu transakcija to jest ako razliite transakcije retkopristupaju istom podatku u isto vreme.
y
To se moe desiti ako su transakcije kratke i svaka transakcijase zakljuava samo nekoliko podataka ili je optereenjetransakcije malo.
y ako su transakcije duge i svaka transakcija koristi mnogopodataka ili optereenje transakcije je prilino veliko to moebiti korisno za koritenje eme za prevenciju deadlocka.
y
Jednostavan nain za otkrivanje deadlocka se vrikonstrukcijom i odravanje wait-for grafa u kom se navodepodaci koji vor (transakcija) eka na zavretak transakcije.
y Ako graf ima ciklus tada u njemu postoji deadlock
-
8/8/2019 Konkurentni pristup bazi podataka
70/87
y Jedan od problema sa ovim pristupom je pitanjeodreivanja kada sistem treba da proveri da li imadeadlock.
y Kriterijumi koji se mogu koristiti su broj transakcijakoji se trenutno izvrava ili vremenski period nekoliko
transakcija koje ekaju da zakljuaju podatak.y Ako je sistem u stanju deadlock, neke transakcije koje
izazivaju deadlock trebaju se prekinuti i te transakcijese nazivaju rtve odnosno u engleskoj literaturipoznate pod nazivom Victim selectiom.
y Algoritam za odabir rtava omoguava da transakcijesa vie auriranja, duim vremenom izvrenja nastavesa radom.
-
8/8/2019 Konkurentni pristup bazi podataka
71/87
yJo jedan jednostavan nain detekcijedeadlocka je upotreba vremenskih oznaka(engl.timestamp). u ovom metodu, ako
transakcija eka due od definisanogvremena , sistem pretpostavlja datransakcija je moda u deadlock ili jeprekinuta bez obzira da li postojideadlock ili ne.
-
8/8/2019 Konkurentni pristup bazi podataka
72/87
Izgladnjivanje (engl. starivation)Izgladnjivanje (engl. starivation)
y Sluaj kada transakcija ne moe izvravatinedefinisano dugo vremena dok se drugetransakcije izvravaju normalno. T
y o se moe javiti ako je plan za zakljuavanjenepravedan odnosno ako se pojedinimtransakcijama daju veliki ili mali prioritetitako da neka transakcija ne moe da doedo resursa.
yJedan od metoda za reavanje je potenaraspodela resursa npr. po principu prvatransakcija se pojavi - prva se izvrava.
-
8/8/2019 Konkurentni pristup bazi podataka
73/87
TEHNIKE KONTROLETEHNIKE KONTROLE
-
8/8/2019 Konkurentni pristup bazi podataka
74/87
TEHNIKE KONTROLETEHNIKE KONTROLEKONKURENTNOSTIKONKURENTNOSTI
y Kontrola konkurentnosti na baziTimeStampredosleda
y Vieverzijska kontrola konkurentnostiy
Tehnika validacije (optimistika) kontrolakonkurentnostiy Granularnost podataka i viestruko
granularno zakljuavanje
y Upotreba katanaca za kontrolukonkurentnosti u indeksimay Ostale kontrole konkurentnosti
K lK l k kk k bb
-
8/8/2019 Konkurentni pristup bazi podataka
75/87
KontrolaKontrola konkurentnostikonkurentnosti nana bazibaziTimeStampTimeStamp redosledaredosleday Svakoj transakciji se dodeljuje jedinstveni
identifikator u redosledu u kome su transakcijedospele u sistem, pa se identifikator moetretirati kao vreme njenog poetka
y Konflikti u izvrenju transakcija nastaju kada nekatransakcija zahteva da vidi neki podatak kojeg jemlaa transakcija aurirala ili kada nekatransakcija hoe da aurira neki podatak kojeg jemlaa transakcija ve aurirala ili videla.
y Konflikti se razreavaju ponovnim startovanjemstarije transakcije.
-
8/8/2019 Konkurentni pristup bazi podataka
76/87
-
8/8/2019 Konkurentni pristup bazi podataka
77/87
KontrolaKontrola konkurentnostikonkurentnosti nana bazibaziTimeStampTimeStampredosledaredosleda
y Osnove timestamp izvrenja: Svakoj transakciji se prilikom poetka izvrenja dodijeli
timestamp tako da se zna taan redoslijed startanja transakcijaTS(X)
Read_TS(X) metoda koja za podatak X daje zadnji TS koji jeuspjeno proitao podatak X
Write_TS(X) pie TS za zadnje uspjeno pisanje podatka X Kada neka transakcija T pokuava da koristi Read_TS(X) i
Write_TS(X) osnovni TS algoritam poredi TS transakcije iupisani TS posljednje uspjene transakcije. Ako poredak izvrenjatransakcija nije dobar vri se ponitenje transakcije T i ona seponovno starta sa novim timestampom. Sve transakcije koje su
koristile podatke nakon transakcije T se takoer ponitavaju ideava se t.z. Kaskadni rollback. Deadlock se ne moe desiti ali se moe desiti periodini prekid i
restart transakcija
Vi ij kVi ij k k lk l
-
8/8/2019 Konkurentni pristup bazi podataka
78/87
VieverzijskaVieverzijska kontrolakontrolakonkurentnostikonkurentnosti
y Kod ove metode se prilikom auriranjauvaju i stare i nove vrijednosti podataka(vie verzija)
y Kada transakcija trai podatak odgovarajua
verzija podatka se pronae.y Kada se pie podatak uvijek se pie nova
verzija podataka a stara verzija se zadrava.y Meutim, vie verzija podataka zahtjeva vie
prostora.y Ekstremna verzija ovakvog naina rada su
vremenske baze koje uvaju sve promjene ubazi.
-
8/8/2019 Konkurentni pristup bazi podataka
79/87
y U ovoj metodi postoji vie verzija istogpodatka koji se uva u bazi (X1, X2,...,Xn).Za svaku verziju, odnosno verziju podatka
Xi uvaju se dva timestampa i to: Read_TS(Xi) zadnje itanje podatka Xi od
strane uspene transakcije
Write_TS(Xi) zadnji timestamp transakcijekoja je uradila write podatka Xi
-
8/8/2019 Konkurentni pristup bazi podataka
80/87
y TransakcijaT se ponitava (abortira) i vrise njen rollback ako T: Pokuava upisati podatak X iza ve upisanog
podatka X u transakciji koja je startana kasnije Ako postoji itanje podatka X transakcije kojaje startana iza transakcijeT. Inae se podatakX pie sa novom verzijom u bazu od strane
transakcijeT
-
8/8/2019 Konkurentni pristup bazi podataka
81/87
y Ako Transakcija T koristi read_item(X) inae verziju Xi koji ima vee vrijemepisanja transakcije (startana kasnije) tada
se vraa odgovarajua verzija X i upisujese TS za read_TS(Xi) koje je jednakomax(read_TS(Xi) ili TS(T)). Read operacija
je uvijek uspjeno izvrena
T h ikT h ik lid ijlid ij
-
8/8/2019 Konkurentni pristup bazi podataka
82/87
TehnikaTehnika validacijevalidacije((optimistikaoptimistika)) kontrolakontrola
y Kod tehnike validacije kontrolekonkurentnosti unaprijed se ne vri nikakvakontrola.
y Kod ove metode se auriranje vri tek kada
se transakcija zavri.y Za vrijeme izvrenja transakcije auriranje se
radi na lokalnoj kopiji.y Na kraju transakcije vri se validacija.
y Sve informacije potrebne za validacijuobezbjeuje sistem i ako je validacijauspjena transakcija se prihvata.
G lG l d kd k ii i ki k
-
8/8/2019 Konkurentni pristup bazi podataka
83/87
GranularnostGranularnost podatakapodataka ii viestrukoviestrukogranularnogranularno zakljuavanjezakljuavanje
y Sve tehnike kontrole konkurentnostipretpostavljaju da se baza sastoji odimenovanih podataka. Podatak iz baze
moe biti: Polje sloga baze
Slog baze
Bloka na disku Cijele datoteke
Cijele baze
-
8/8/2019 Konkurentni pristup bazi podataka
84/87
GranularnostGranularnost podatakapodatakay Granularnost ukazuje na nivo detalja ili sumarizacije
jedinica podataka u bazi podataka. to vie detalja tu ima,to je nii nivo granularnosti.
y to manje detalja tu ima to je vii nivo granularnosti
y Zakljuavanje vee granule uvodi vie zabrana za pristuppodacima (baza, datoteka).
y Ako se koriste manje granule (polje, slog) tada ima viekatanaca znai vie katanaca se postavlja i skida.
y
U tom sluaju potrebno je vie prostora za tabelekatanaca odnosno vie vremena za izvrenje zakljuavanjatj potrebno je vie prostora i vremena za read_TS iwrite_TS.
-
8/8/2019 Konkurentni pristup bazi podataka
85/87
GranularnostGranularnost podatakapodatakay Optimalna veliina granule zavisi od tipa
transakcija odnosno od aplikacije, akotransakcija pristupa malom broju slogovatada je bolje zakljuavati slogove.
y
Ako transakcija prilazi veem broju slogovatada je bolje zakljuavati blok ili akdatoteku.
y Veliina granule zavisi od vrste transakcije.y
Najbolja varijanta je da baza podravazakljuavanja raznih tipova granula
-
8/8/2019 Konkurentni pristup bazi podataka
86/87
OstaleOstale kontrolekontrole konkurentnostikonkurentnostiy problem koji se javlja sa ubacivanjem i brisanjem slogova, tajproblem je poznat pod nazivom kao fantomski problemy Fantomski problem se pojavljuje kada transakcija T upie slog
a druga transakcija pretrauje slogove sa uslovom koji biukljuio i ovaj novi slog u rezultat ali ga ne ukljuuje.
y Kada se novi podatak ubacuje njemu se ne moe pristupitidok se operacija ne kompletira. Takav podatak je eksluzivnozakljuan. Katanci se oslobaaju istovremeno i upisuje setimestamp od transakcije
y Pre brisanja postavlja se eksluzivni lok na poetku. Zatimestamp protokol mora biti siguran da nije bilo itanjanakon zakljuavanja.
-
8/8/2019 Konkurentni pristup bazi podataka
87/87
Reza (engl. latch)Reza (engl. latch)
y Reza je kratki katanac koji se obinokoristi za izvrenje kratkih operacija kojene mogu proizvesti deadlok ili sline
probleme. Katanac se koristi za vrijemepisanja bafera na disk da ne bi dolo doauriranja bloka za vrijeme pisanja.