Porazdeljene podatkovne baze

Report
Poglavje II
Porazdeljene podatkovne baze






Osnovni koncepti
Vrste SUPPB
Fragmentacija, replikacija in alokacija podatkov
Ravni transparentnosti v SUPPB
Porazdeljeno procesiranje transakcij
Obnavljanje podatkov v porazdeljenih sistemih
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-1-
P 2.1
Osnovni koncepti
Kaj si bomo pogledali?






PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Razlogi za pojav porazdeljenih PB
Osnovne definicije
Razlika med paralelnimi in porazdeljenimi PB
Arhitekture porazdeljenih PB
Prednosti porazdeljenih PB
Dodatne funkcije porazdeljenih PB
-2-
Pojav porazdeljenih podatkovnih baz
 Porazdeljene podatkovne baze se pojavijo kot
odziv na porazdeljeno procesiranje in računanje,
ki je zaznamovalo področje operacijskih
sistemov.
 V raziskovalni sferi veliko truda vložijo v
porazdeljenost podatkov. Nekatera področja so
zelo težavna:
–
–
–
–
Porazdeljeno poizvedovanje
Obvladovanje transakcij
Varnost podatkov
Upravljanje z meta-podatki
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-3-
Definicije
 Porazdeljena podatkovna baza (PPB) predstavlja
nabor več logično povezanih podatkovnih baz,
fizično razpršenih (porazdeljenih) po računalnikih,
povezanih z računalniškim omrežjem.
 Sistem za upravljanje s PPB (SUPPB) predstavlja
programsko opremo, ki omogoča upravljanje s
PPB na način, ki je uporabniku transparenten.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-4-
Lastnosti porazdeljenih sistemov
 Lastnosti SUPPB:
– zajema eno samo logično podatkovno bazo, ki je razdeljena
na fragmente.
– Fragmenti so shranjeni na enem ali več računalnikih pod
nadzorom ločenih SUPB-jev.
– Fragmenti so lahko replicirani.
– Računalniki so povezani s komunikacijskim omrežjem.
– SUPB na povezanih računalnikih samostojno obdelujejo
lokalne podatke.
– Vsak SUPB na povezanih računalnikih sodeluje v vsaj eni
globalni aplikaciji.
– Porazdeljenost PB je za uporabnike transparentna.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-5-
PPB in porazdeljeno procesiranje
 Porazdeljene podatkovne baze so fizično
porazdeljene po več računalnikih.
 Če so podatki centralizirani, gre zgolj za
porazdeljeno procesiranje, četudi do podatkov
dostopa lahko več uporabnikov.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-6-
Paralelne in porazdeljene PB…
 Paralelne in porazdeljene PB se razlikujejo.
 Paralelne PB označujejo PB, ki tečejo na več
enakih sistemih (so narejene tako, da tečejo na
več procesorjih in diskih) z namenom, da lahko
izvajajo več operacij vzporedno. Cilj je povečati
učinkovitost.
 Porazdeljene PB so navadno heterogene porazdeljene po sistemih z različno strojno in
programsko opremo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-7-
Paralelne in porazdeljene PB
 Tipične arhitekture za paralelne PB:
– Deljen spomin (tesno povezana arhitektura): več procesorjev
si deli skupen sekundarni in primarni pomnilnik.
– Deljeno diskovje (rahlo povezana arhitektura): več
procesorjev si deli skupen sekundarni pomnilnik; vsak ima
svoj primarni spomin.
– Brez deljenih sredstev: vsi procesorji imajo svoj primarni in
sekundarni pomnilnik.
 Katera arhitektura je najbližja porazdeljenim PB?
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-8-
Paralelna PB
Shema arhitekture brez deljenih sredstev
Računalniški sistem 1
Procesor
Računalniški sistem 2
Procesor
DB
Spomin
Spomin
VODILO
Računalniški sistem 3
Procesor
DB
Spomin
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
-9-
DB
Centralizirana arhitektura
DB1
Centralno
vozlišče
LJUBLJANA
Vozlišče
Porazdeljeno procesiranje
DB2
Vozlišče
NOVO MESTO
CELJE
Komunikacijsko omrežje
Vozlišče
Vozlišče
MARIBOR
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
POSTOJNA
- 10 -
Porazdeljena arhitektura
Porazdeljena PB
Vozlišče 2
Vozlišče 1
Vozlišče 5
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Vozlišče 3
Komunikacijsko omrežje
Vozlišče 4
- 11 -
Podatkovna distribucija in replikacija
DELAVEC
DELA NA
PROJEKT
LJUBLJANA
Delavci: CE
Projekti: vsi
Dela_na: za delavce iz CE
Sedež podjetja
NOVO MESTO
CELJE
Komunikacijsko omrežje
Delavci: MB
Projekti: MB+NM
Dela_na: za delavce iz MB
Delavci: PO
Projekti: PO
Dela_na: za delavce iz PO
MARIBOR
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
*
*
1
Delavci: vsi
Projekti: vsi
Dela_na: vsi
Delavci: NM + MB
Projekti: NM
Dela_na: za delavce iz NM
1
POSTOJNA
- 12 -
Prednosti in slabosti PPB...
 Prednosti PPB:
– Lahko izražajo porazdeljeno organizacijsko strukturo
– Izboljšajo porazdeljenost (dostop do vseh podatkov) in
avtonomnost (podatki tam, kjer se uporabljajo)
– Izboljšajo razpoložljivost (sistem je porazdeljen. Če odpove
eno vozlišče, so druga še vedno dostopna)
– Izboljšajo zanesljivost (replikacija)
– Izboljšajo učinkovitost (podatki porazdeljeni glede na
poizvedovanje, paralelnost,...)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 13 -
Prednosti in slabosti PPB...
 Prednosti PPB (nadaljevanje):
– Ekonomičnost
 1960´ - Grosch’s Law (računska moč = cena2) npr. za trikrat večjo
ceno dobimo devet krat večjo računsko moč
 Danes: ceneje sestaviti sistem iz manjših računalnikov kot kupiti
enega večjega! Prenos podatkov po omrežju tudi stane!
– Modularna gradnja (enostavna razširljivost)
– Integracija (osnovna motivacija razvoja SUPB je integracija,
ne centralizacija)
– Konkurenčnost (številne nove IT zahtevajo porazdeljenost,
npr. e-business, skupinsko delo, obvladovanje procesov).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 14 -
Prednosti in slabosti PPB
 Slabosti PPB:
– Kompleksnost (transparentnost porazdelitve, replikacija,...)
– Cena (strošek nabave in vzdrževanja, strošek komunikacije)
– Varnost (podatki na več mestih; varnost komunikacijskega
omrežja)
– Težje zagotavljati podatkovno skladnost
– Pomanjkanje standardov
– Pomanjkanje izkušenj
– Kompleksno načrtovanje
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 15 -
SUPPB iz vidika strojne opreme
 Z vidika strojne opreme se porazdeljen SUPB od
centraliziranega loči predvsem v naslednjih
elementih:
– Obstaja več računalnikov, imenovanih mesta ali vozlišča
– Mesta oziroma vozlišča so povezana z računalniškim
omrežjem, ki omogoča prenos podatkov in ukazov.
 Mesta ali vozlišča so lahko v neposredni bližini,
lahko pa jih ločijo zelo velike razdalje.
Strežnik 2
Strežnik 1
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 16 -
Strežnik 3
Komunikacijsko omrežje
Strežnik 5
Strežnik 4
Vpliv topologije omrežja
 Topologija omrežja ima lahko velik vpliv na
učinkovitost in tudi realizacijo porazdeljenih
sistemov.
 Posebnosti računalniških omrežij, ki vplivajo na
porazdeljene sisteme, ne bomo obravnavali.
 V nadaljevanju predpostavljamo, da neka
omrežna povezava med vozlišči obstaja (ne glede
na njeno topologijo).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 17 -
P 2.2
Vrste sistemov za upravljanje s PPB
Kaj si bomo pogledali?
 Homogeni in heterogeni sistemi
 Federirani in več-bazni sistemi
 Funkcionalnosti in arhitekture SUPPB
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 18 -
Razlike med različnimi SUPPB
 Obstajajo številne vrste SUPPB
 Dva pomembna kriterija, po katerih se SUPPB
razlikujejo, sta:
– Stopnja homogenosti in
– Stopnja lokalne avtonomnosti
Stopnja lokalne
avtonomnosti
Stopnja
homogenosti
PB brez lokalne
avtonomnosti
Homogene PB
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Heterogene PB
- 19 -
Več-bazni in
federirani
sistemi
Homogeni in heterogeni SUPPB...
 Homogeni SUPPB:
–
–
–
–
Vsa mesta uporabljajo enak SUPB;
Enostavni za načrtovanje in obvladovanje;
So razširljivi (enostavno dodajanje novih mest);
Omogočajo paralelnost izvajanja.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 20 -
Homogeni in heterogeni SUPPB
 Heterogeni SUPPB:
– Mesta uporabljajo različne SUPB. Lahko temeljijo na različnih
podatkovnih modelih (relacijskih, objektnih,...)
– Navadno so posledica integracije sistemov, ki so samostojno
nastali v različnih časovnih obdobjih;
– Za razumevanje med različnimi SUPB so potrebne prevedbe;
– Prevedbe se obnesejo za poizvedovanja, problematično
obvladovanje transakcij, zagotavljanje sočasnosti dostopa,
obnovitev podatkov ipd.;
– Potrebno zagotoviti globalno konceptualno shemo;
– Težko zagotoviti transparentnost heterogenosti za
uporabnika;
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 21 -
Več-bazni sistemi…
 Več-bazni sistemi: poseben primer SUPB, kjer
ima vsako mesto popolno avtonomijo.
– Ideja: logična integracija več povezanih SUPB, kjer ima vsak
SUPB popoln nadzor nad lokalnimi operacijami.
– Nad posameznimi SUPB še dodaten nivo programske
opreme, ki skrbi za skupno funkcionalnost.
– Celovita integracija lokalnih shem ni potrebna.
– Lokalnim skrbnikom je omogočena administracija lokalnih
SUPB.
– Lokalni skrbniki določijo dele modela, ki bodo vidni zunanjim
uporabnikom (export schema).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 22 -
Več-bazni sistemi…
 Več-bazni sistemi:
– Zahtevajo dodatno raven programske opreme, ki predstavlja
skupen vmesnik do podatkovnih in datotečnih sistemov.
– Za uporabnike dodatna raven transparentna; Uporabnik vidi
cel sistem kot eno bazo.
– Vzdržujejo zgolj globalno shemo, ki je na voljo za
poizvedovanje in spreminjanje podatkov. Lokalni SUPB
vzdržujejo svoje podatke sami.
– Več-bazni sistemi poskrbijo za potrebna prevajanja poizvedb
ter nadzirajo transakcije, združujejo delne rezultate…
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 23 -
Federirani več-bazni sistemi…
 Obstajajo nefederirani (ni lokalnih uporabnikov)
in federirani več-bazni sistemi (FDBS - federated
DB systems).
 FDBS so hibridi med centraliziranimi in
porazdeljenimi baznimi sistemi.
– Za globalne uporabnike so porazdeljeni, za lokalne pa
centralizirani.
– Gre za sisteme z neodvisnimi strežniki, centraliziranimi
SUPB-ji z visoko stopnjo lokalne avtonomnosti (lokalni
uporabniki, lokalne transakcije, lokalni DBA,…)
– Uporabljajo globalno shemo federacije podatkovnih baz, ki je
na voljo aplikacijam.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 24 -
Federirani več-bazni sistemi…
 FDBS so lahko popolnoma heterogeni.
– Na enem strežniku je relacijski SUPB, na drugem mrežni, na
tretjem objektni ipd.
 V takem primeru je potrebno uporabljati
neodvisen jezik ter translatorje, ki ta jezik
pretvorijo v posameznim sistemom ustrezno
sintakso.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 25 -
Federirani več-bazni sistemi
 Razlogi za heterogenost v FDBS:
– Razlike v podatkovnih modelih
– Razlike v omejitvah
– Razlike v poizvedovalnih jezikih
 Kadar se pojavijo razlike v interpretaciji, pomenu
in namenu uporabe istih ali povezanih podatkov,
govorimo o semantični heterogenosti.
 Semantična heterogenost - ena največjih preprek
pri gradnji globalnih shem heterogenih sistemov.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 26 -
Funkcionalnosti SUPPB
 SUPPB mora zagotavljati vsaj naslednje funkcije:
– Vodenje evidence o lokaciji podatkov (porazdelitev,
fragmentacija, replikacija) – razširitev sistemskega kataloga;
– Porazdeljeno izvajanje poizvedb
– Obvladovanje porazdeljenih transakcij
– Obvladovanje replikacije
– Obnavljanje PPB po nesrečah
– Zagotavljanje varnosti
– Vodenje razširjenega kataloga
 Za nekatere funkcije, ki so za SUPPB nujne, še
vedno ni učinkovitih rešitev.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 27 -
Referenčna arhitektura za SUPB
ANSI-SPARC
tri-nivojska arhitektura
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 28 -
Ponovitev
Referenčna arhitektura za SUPPB
Zaradi različnih vrst SUPPB
težko določiti referenčno.
Shema predstavlja zgolj
primer.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 29 -
Referenčna arhitektura za FDBS
Tesno sklopljena
arhitektura
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 30 -
P 2.3
Fragmentacija, replikacija in alokacija
Kaj si bomo pogledali?
 Fragmentacija podatkov
 Replikacija podatkov
 Alokacija podatkov
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 31 -
Načrtovanje PPB…
 Pri načrtovanju PPB moramo dodatno poskrbeti
za:
F
A
R
– Fragmentacijo: Kako bomo podatkovno bazo razdelili na
segmente?
– Alokacijo: Kako bomo podatke porazdelili po vozliščih?
– Replikacijo: Ali bomo iste podatke hranili na enem ali več
mestih?
 Za izvedbo dobrega načrta potrebno analizirati
ključne transakcije:
– S kakšno frekvenco bodo izvajane posamezne transakcije?
Na katerem vozlišču se bodo izvajale? Katere relacije,
atribute in zapise obdelujejo? Gre za branje ali pisanje ipd.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 32 -
Načrtovanje PPB
 Pri načrtovanju PPB sledimo predvsem
naslednjim ciljem:
–
–
–
–
Lokalnost
Dostopnost
Učinkovitost
Uravnoteženost med lokalnostjo in stroškom podvajanja
podatkov
– Uravnoteženost med lokalnostjo in replikacijo ter stroški
komunikacije po omrežju.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 33 -
Fragmentacija podatkov v PPB…
 V PPB moramo določiti, katero vozlišče naj ima
določen segment podatkov.
 Vzemimo primer, kjer velja:
– Ni replikacije (vsak segment na samo enem vozlišču)
– Gre za relacijsko PB (enako bi veljalo za druge vrste PB)
– Imamo relacijsko shemo, ki bi jo radi porazdelili po vozliščih
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 34 -
F
Fragmentacija podatkov v PPB…
 Preden izvedemo fragmentacijo, določimo logično
enoto za fragmentiranje.
 Najenostavnejše je za logično enoto vzeti
relacijo.
 Kadar želimo manjše enote, se navadno odločimo
za horizontalne ali vertikalne fragmente
posameznih relacij.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 35 -
DELAVEC
Priimek
EMSO
DRojstva
Spol
Dohodek
Enota
Jože
Mali
1201975500100
12.01.1975
M
6.439.000
E1
Marko
Jug
2202979500222
22.02.1979
M
3.567.000
E2
Miha
Mitrov
1404970500801
14.04.1970
M
4.876.000
E2
Tadej
Plevel
1303969500103
13.03.1969
M
6.439.000
E1
Francka
Ris
1201975505999
12.01.1975
Ž
6.109.000
E3
Joža
Kruh
0612970505133
06.12.1970
Ž
2.189.000
E3
Karmen
Kruh
1808968505100
18.08.1968
Ž
8.978.000
E1
Klemen
Mihelj
1306972502122
13.06.1972
M
5.234.000
E4
Tilen
Fras
1207971500345
12.07.1971
M
6.439.000
E5
Gregor
Coli
0707969500566
07.07.1969
M
6.109.000
E3
Marija
Jeklič
1402965505456
14.02.1965
Ž
2.189.000
E3
Vertikalni fragment
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 36 -
Horizontalni fragment
Ime
Horizontalna fragmentacija...
 Horizontalni fragment relacije je podmnožica nteric relacije.
 N-terice, ki spadajo v fragment, so določene s
pogojem nad enim ali več atributov relacije.
 Pri horizontalni fragmentaciji dobimo podmnožice
n-teric, ki imajo nek logični pomen.
 Izpeljana horizontalna fragmentacija –
fragmentiranje relacije na osnovi povezanih
relacij…
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 37 -
Horizontalna fragmentacija...
 Horizontalni fragment nad relacijo R lahko
zapišemo kot Ci(R), kjer je:
–  selekcija (operacija relacijske algebre)
– Ci; i = 1..n nabor pogojev
– R relacija
 Kadar vsaka n-terica relacije R zadošča pogoju
(C1 OR C2 OR … OR Cn) pravimo, da gre za popolno
horizontalno fragmentacijo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 38 -
Horizontalna fragmentacija
 Kadar je horizontalna fragmentacija disjunktna,
velja, da nobena n-terica ni v več kot enem
fragmentu.
 Tedaj velja, da nobena n-terica ne zadošča
pogoju (Ci AND Cj), kjer i ≠ j
 Kader je v uporabi horizontalna fragmentacija,
lahko osnovno relacijo rekonstruiramo s pomočjo
operacije UNION.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 39 -
Vertikalna fragmentacija…
 Pri vertikalni fragmentaciji relacijo razdelimo
vertikalno, po stolpcih.
 Smiselno, ko na nekem vozlišču ne potrebujemo
vseh atributov relacije…
 Opozorilo: z vertikalno fragmentacijo lahko
zgubimo podatke!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 40 -
Vertikalna fragmentacija…
DELAVEC
Ime
Priimek
EMSO
DRojstva
Spol
Dohodek
Enota
Jože
Mali
1201975500100
12.01.1975
M
6.439.000
E1
Marko
Jug
2202979500222
22.02.1979
M
3.567.000
E2
Miha
Mitrov
1404970500801
14.04.1970
M
4.876.000
E2
Tadej
Plevel
1303969500103
13.03.1969
M
6.439.000
E1
Francka
Ris
1201975505999
12.01.1975
Ž
6.109.000
E3
Joža
Kruh
0612970505133
06.12.1970
Ž
2.189.000
E3
Karmen
Kruh
1808968505100
18.08.1968
Ž
8.978.000
E1
Klemen
Mihelj
1306972502122
13.06.1972
M
5.234.000
E4
Tilen
Fras
1207971500345
12.07.1971
M
6.439.000
E5
Gregor
Coli
0707969500566
07.07.1969
M
6.109.000
E3
Marija
Jeklič
1402965505456
14.02.1965
Ž
2.189.000
E3
Osebni podatki
Službeni podatki
Potrebujemo vsaj en enoličen atribut za
povezavo (ključ ali kandidat za ključ)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 41 -
Vertikalna fragmentacija…
 Vertikalni fragment nad relacijo R lahko zapišemo
kot Li(R), kjer je:
–  projekcija (operacija relacijske algebre)
– Li; seznam atributov, ki so vključeni v fragment (projekcijski
nabor)
– R relacija
 Množico vertikalnih fragmentov, katerih
projekcijski nabori vključujejo vse atribute
relacije R (delijo si pa primarni ključ), imenujemo
popolna vertikalna fragmentacijo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 42 -
Vertikalna fragmentacija
 V primeru popolne vertikalne fragmentacije velja:
– L1  L2  …  Ln = ATTRS(R)
– Li  Lj = PK(R); za  i ≠ j, kjer je
relacije R.
PK(R)
primarni ključ
 Kadar je v uporabi popolna vertikalna
fragmentacija, dobimo osnovno relacijo z
uporabo zunanjega stika.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 43 -
Hibridna ali mešana fragmentacija
 Horizontalni in vertikalni fragmentaciji lahko
kombiniramo.
 V splošnem lahko fragment nad R določimo z
uporabo kombinacije selekcija-projekcija.
L( C(R) )
– Če C = true in L ≠
– Če C ≠ true in L =
– Če C ≠ true in L ≠
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
ATTRS(R)
 vertikalni fragment
ATTRS(R)  horizontalni fragment
ATTRS(R)  mešani fragment
- 44 -
Podatkovna replikacija…
 Z replikacijo večamo razpoložljivost podatkov.
 Polno replicirana PPB ima na vseh vozliščih vse
podatke. Podatki so na voljo, če vsaj eno vozlišče
deluje.
– Veča učinkovitost globalnih poizvedb (podatki so velikokrat
najdeni lokalno).
– Močno obremeni sistem ob spremembah (dodajanje,
spreminjanje)
 Drug ekstrem so PPB brez replikacije. Vsak
fragment se nahaja na natanko enem vozlišču.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 45 -
R
Parcialne replikacije
Intenzivnost replikacije
 Parcialne replikacije so značilne za okolja, kjer
zaposleni delajo na terenu
– PB nosijo s seboj na teren
– Kasneje replicirajo s centralnim strežnikom.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 46 -
Polna replikacija
Brez replikacije
Podatkovna replikacija
Alokacija podatkov…
A
 Vsak fragment (in vsaka njegova kopija) mora
biti dodeljen nekemu vozlišču v porazdeljenem
sistemu.
 Proces dodeljevanja imenujemo podatkovna
alokacija ali podatkovna distribucija.
 Izbira vozlišč in stopnje replikacije je odvisna
želene učinkovitosti sistema in razpoložljivosti
podatkov ter pogostosti in tipa transakcij, ki naj
bi na posameznem vozlišču tekle. Optimizacijska naloga
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 47 -
Strategije alokacije podatkov…
 Ločimo štiri strategije alokacije fragmentov:
– Centralizirana: podatki na enem mestu
– Porazdeljena: podatki porazdeljeni po mestih; ni replikacije
– Polno replicirana: vsako mesto vsebuje popolno kopijo
podatkovne baze
– Delno replicirana: nekateri podatki so replicirani na več
mestih
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 48 -
Strategije alokacije podatkov
 Kriteriji za primerjavo strategij:
–
–
–
–
–
Lokalnost
Zanesljivost in razpoložljivost
Učinkovitost
Stroški shranjevanja
Stroški komunikacije
Lokalnost
Zanesljivost in
razpoložljivost
Učinkovitost
Stroški
shranjevanja
Stroški
komunikacije
Centralizirana
Najnižja
Najnižja
Nizka
Najnižji
Najvišji
Porazdeljena
Visoka*
Nizka za enoto,
visoka za sistem
Zadovoljiva*
Najnižji
Nizki*
Polno
replicirana
Najvišja
Najvišja
Najboljša za
branje
Najvišji
Nizka za enoto,
visoka za sistem
Delno
replicirana
Visoka*
Nizka za enoto,
visoka za sistem
Zadovoljiva*
Povprečni
Nizki*
* velja, če dobro načrtovana porazdelitev
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 49 -
P 2.4
Ravni transparentnosti v SUPPB
Kaj si bomo pogledali?






PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Ravni transparentnosti v SUPPB in njihov pomen
Transparentnost porazdeljenosti
Transparentnost transakcij
Transparentnost učinkovitosti
Transparentnost SUPB
Dvanajst pravil za SUPPB
- 50 -
Ravni transparentnosti v SUPPB
 V SUPPB porazdeljenost transparentna za
uporabnike.
– Podatki o implementaciji porazdeljenosti so uporabniku
skriti.
 V SUPPB obstaja več ravni transparentnosti:
–
–
–
–
Transparentnost porazdeljenosti
Transparentnost transakcij
Transparentnost učinkovitosti
Transparentnost SUPB
 Popolna transparentnosti je predmet diskusij…
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 51 -
Dekompozicija ravni transparentnosti
Ravni transparentnosti
Transparentnost
porazdeljenosti
Transparentnost
transakcij
Transparentnost
fragmentacije
Transparentnost
sočasnosti
Transparentnost
lokacije podatkov
Transparentnost
neuspešne
izvedbe
Transparentnost
učinkovitosti
Transparentnost
Lokalnega
mapiranja
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 52 -
Transparentnost
SUPB
Transparentnost
porazdeljenosti
Transparentnost porazdelitve
 Uporabnik PB dojema kot logično celoto.
 Na ravni porazdeljenosti ločimo več vrst
transparentnosti:
– Transparentnost fragmentacije: ni potrebno vedeti, ali so
podatki fragmentirani;
– Transparentnost lokacije podatkov: Ni potrebno vedeti, kje
so podatki shranjeni;
– Transparentnost lokalnega mapiranja: za uporabnika so
transparentni samo podatki o tem, kje lokalno so segmenti
podatkov shranjeni, vedeti pa mora, kakšna je fragmentacija
in kje po distribuiranem sistemu so fragmenti shranjeni.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 53 -
Primer DreamHome
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 54 -
Primer transparentnosti porazdelitve…
 Imejmo naslednjo situacijo:
Lokacija
S1: staffNo, position, sex, DOB, salary(Staff)
mesto 5
S2: staffNo, fName, lName, branchNo(Staff)
S21: branchNo = ‘B003’(S2)
mesto 3
mesto 5
mesto 7
S22: branchNo = ‘B005’(S2)
S23: branchNo = ‘B007’(S2)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 55 -
Primer transparentnosti porazdelitve…
 Izpisali bi radi imena vseh managerjev!
 Transparentnost fragmentacije
SELECT fName, lName
FROM Staff
WHERE position = ‘Manager’;
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 56 -
Primer transparentnosti porazdelitve…
 Transparentnost lokacije podatkov
SELECT fName, lName FROM S21
WHERE staffNo IN
(SELECT staffNo FROM S1 WHERE position = ‘Manager’)
UNION
SELECT fName, lName FROM S22
WHERE staffNo IN
(SELECT staffNo FROM S1 WHERE position = ‘Manager’)
UNION
SELECT fName, lName FROM S23
WHERE staffNo IN
(SELECT staffNo FROM S1 WHERE position = ‘Manager’)
Če se PB fizično reorganizira to ne vpliva na aplikacije, ki s PB delajo…
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 57 -
Primer transparentnosti porazdelitve
 Transparentnost lokalnega mapiranja
SELECT fName, lName FROM S21 AT SITE 3
WHERE staffNo IN
(SELECT staffNo FROM S1 AT SITE 5
WHERE position = ‘Manager’)
UNION
SELECT fName, lName FROM S22 AT SITE 5
WHERE staffNo IN
(SELECT staffNo FROM S1 AT SITE 5
WHERE position = ‘Manager’)
UNION
SELECT fName, lName FROM S23 AT SITE 7
WHERE staffNo IN
(SELECT staffNo FROM S1 AT SITE 5
WHERE position = ‘Manager’)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 58 - za uporabnike nezadovoljiva raven.
Najnižja raven transparentnosti. Običajno
Transparentnost
transakcij
Transparentnost transakcij…
 Zagotavlja, da porazdeljene transakcije ohranjajo
celovitost in skladnost podatkov v PB.
 Porazdeljena transakcija
– dostopa do podatkov, ki so shranjeni na različnih lokacijah.
– sestavljena iz več podtransakcij - za vsako mesto dostopa
svoja transakcija.
– Vsako podtransakcijo predstavlja svoj agent.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 59 -
Primer porazdeljene transakcije…
 Imejmo naslednjo situacijo:
Lokacija
S1: staffNo, position, sex, DOB, salary(Staff)
mesto 5
S2: staffNo, fName, lName, branchNo(Staff)
S21: branchNo = ‘B003’(S2)
mesto 3
mesto 5
mesto 7
S22: branchNo = ‘B005’(S2)
S23: branchNo = ‘B007’(S2)
 T: izpiši imena vseh zaposlenih
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 60 -
Primer porazdeljene transakcije
Čas
t1
TS3
begin_transaction
TS5
begin_transaction
TS7
begin_transaction
t2
read (fName, lName)
read (fName, lName)
read (fName, lName)
t3
print (fName, lName)
print (fName, lName)
print (fName, lName)
t4
end_transaction
end_transaction
end_transaction
 Atomarnost tudi pri porazdeljenih transakcijah
ključna. Upoštevati potrebno tudi atomarnost na
ravni pod-transakcije:
– Sinhronizacija pod-transakcije z drugimi lokalnimi
transakcijami, ki se sočasno izvajajo na vozlišču
– Sinhronizacija pod-transakcije s celotno transakcijo
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 61 -
Transparentnost transakcij…
 S fragmentacijo, replikacijo in alokacijo
kompleksnost transparentnosti transakcij
naraste.
 Dve vrsti transparentnosti transakcij:
– Transparentnost sočasnosti
– Transparentnost neuspešne izvedbe
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 62 -
Transparentnost sočasnosti…
 Transparentnost sočasnosti:
– Velja enako kot pri centraliziranih SUPB: rezultat vseh
sočasnih transakcij mora biti enak, kot če bi transakcije
izvedli eno za drugo, v poljubnem vrstnem redu.
 Pri porazdeljenih transakcijah dodatna
kompleksnost:
– Lokalne in globalne transakcije se ne smejo ovirati;
– SUPPB mora zagotoviti skladnost vseh pod-transakcij neke
globalne transakcije.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 63 -
Transparentnost sočasnosti
 Dodaten problem pri zagotavljanju skladnosti
podatkov je replikacija:
– Podatke, ki jih neka transakcija spremeni, je potrebno
spremeniti na vseh mestih, kjer se nahajajo.
 Možne strategije:
– Celovita izvedba sprememb: izvajanje sprememb na kopijah
lahko jemljemo kot del transakcije. Problem: če neko mesto
s kopijo podatkov ni dostopno, cela transakcija čaka…
– Delna izvedba sprememb: spremembe izvedemo samo na
mestih, ki so trenutno dostopna. Spremembe na ostalih
mestih izvedemo, ko postanejo dostopna. Problem: nekaj
časa PB ni konsistentna…
Pravilen pristop za obravnavo sočasnosti v SUPPB bo obravnavan v nadaljevanju!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 64 -
Transparentnost neuspešne izvedbe…
 Transakcije so atomarne: izvedejo se lahko le v
celoti. Po potrditvi postanejo rezultati transakcije
trajni.
 V centraliziranih SUPB številni razlogi za
neuspešnost izvedbe transakcij:
–
–
–
–
–
–
napake v sistemski ali aplikativni programski opremi,
napake strojne opreme,
malomarnost,
fizične poškodbe,
sabotaža,
naravne nesreče ipd.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 65 -
Transparentnost neuspešne izvedbe
 Dodatno pri SUPPB:
–
–
–
–
Izguba sporočila
Napaka na komunikacijski povezavi
Napaka v vozlišču
…
Pravilen pristop za obnovitev podatkov v SUPPB bo obravnavan v nadaljevanju!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 66 -
Transparentnost učinkovitosti…
 Transparentnost učinkovitosti zahteva, da SUPPB
deluje tako, kot bi bil centraliziran SUPB.
– Porazdeljenost arhitekture ne sme vplivati na učinkovitost
sistema…
 Transparentnost učinkovitosti zahteva tudi, da
SUPPB identificira časovno najugodnejšo
strategijo za izvedbo zahteve.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 72 -
Procesor poizvedb…
 SUPB
– Procesor poizvedb izračuna vsako zahtevo po podatkih
– Poišče najugodnejšo strategijo izvedbe, ki jo sestavlja
zaporedje operacij nad podatkovno bazo
 SUPPB
– V porazdeljenem okolju procesor poizvedb podatkovne
zahteve pretvori v zaporedja operacij nad lokalnimi
podatkovnimi bazami.
– Večja kompleksnost zaradi fragmentacije, replikacije in
alokacije podatkov.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 73 -
Procesor poizvedb…
 Procesor poizvedb v SUPPB se odloča:
– Kateri fragment prebrati?
– Katero kopijo fragmenta uporabiti, če je repliciran?
– Katero lokacijo uporabiti?
 Pri izbiri strategije procesor izračuna ceno vsake
strategije:
– Čas dostopa (I/O) do fizičnih podatkov na disku
– Čas procesorja za obdelavo podatkov v glavnem spominu
– Čas prenosa podatkov po omrežju
Dodatno pri SUPPB
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 74 -
Primer uporabe različnih strategij…
 Vzemimo naslednjo shemo:
Property (propertyNo, city)
Client (clientNo, maxPrice)
Viewing (propertyNo, clientNo)
10.000 zapisov v Londonu
100.000 zapisov v Glasgow-u
1.000.000 zapisov v Londonu
 T: izpiši nepremičnine iz Aberdeen-a, ki so si jih
ogledale stranke, ki imajo mejo za nakup višjo od
$200.000
SELECT pfr.propertyNo
FROM PropertyForRent pfr INNER JOIN
(Client c INNER JOIN Viewing v ON c.clientNo )
ON p.propertyNo = v.propertyNo
WHERE pfr.city = ‘Aberdeen’ AND c.maxPrice > 200000;
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 75 -
Primer uporabe različnih strategij
 Časovna kompleksnost za različne strategije
Strategija
Čas
1
Relacijo Client premakni v London in tam izvedi procesiranje.
16.7 minute
2
Relaciji PropertyForRent, Viewing premakni v Glasgow in tam izvedi
procesiranje
3
Poveži PropertyForRent in Viewing relaciji v Londonu, izberi n-terice za
Aberdeen. Za vsako od teh v Glasgowu preveri, če je pripadajoča cena
> $200.000
4
Iz Glasgow-a izberi stranke (Client) z maxPrice > $200.000. Za vsako
tako stranko v Londonu preveri, če si je ogledovala nepremičnino
Aberdeen.
5
Poveži PropertyForRent in Viewing relaciji, izberi Aberdeen
nepremičnine, projeciraj rezultat na propertyNo in clientNo. Rezultat
premakni v Glasgow, kjer poišči povezavo z maxprice > $200.000
16.7 minute
6
Iz Glasgow-a izberi stranke, ki imajo maxPrice > $200.000. Rezultat
premakni v London, kjer poišči povezavo z nepremičnino Aberdeen.
1 sekundo
28 ur
2,3 dni
20 sekund
Predpostavke: vsaka n-terica je dolga 100 znakov, prenos po omrežju je 10.000 znakov na sekundo, obstaja 10
strank, ki imajo nepremičnine dražje od $200.000, čas računanja zanemarljiv v primerjavi s časom prenosa ,
- 76 pošiljanje sporočila iz enega mesta na drugo ima čas zakasnitve 1 sekundo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Transparentnost SUPB
 Transparentnost SUPB omogoča, da se
uporabniku ni potrebno zavedati različnosti med
lokalnimi SUPB.
 Velja za heterogene sisteme.
 Ena najtežjih oblik zagotavljanja
transparentnosti.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 77 -
Dvanajst pravil za SUPPB
 Pravila napisal C. J. Date, 1987*
 Osnovna ideja:
– sistem za upravljanje s porazdeljenimi podatki bi moral za
uporabnika delovati kot navaden sistem za upravljanje s
podatki.
P1: Lokalna avtonomnost
P2: Neodvisnost od centralnega mesta
P3: Neprekinjenost delovanja
P4: Lokalna neodvisnost
P5: Neodvisnost od fragmentacije
P6: Neodvisnost od replikacije
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
P7: Porazdeljeno izvajanje poizvedb
P8: Porazdeljeno procesiranje transakcij
P9: Neodvisnost od strojne opreme
P10: Neodvisnost od operacijskega sistema
P11: Neodvisnost od omrežja
P12: Neodvisnost od SUPB
- 78 - Computer World, 21(23), 75-81.
* C. J. Date, 1987, Twelve Rules for a Distributed Database,
P 2.5
Porazdeljeno procesiranje transakcij
Kaj si bomo pogledali?





PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Obvladovanje transakcij
Sočasnost dostopa
Detekcija mrtvih zank
Obnova po nesrečah
Zagotavljanje skladnosti in celovitosti podatkov
- 79 -
Transakcije v centraliziranem SUPB
Ponovitev
 Komponente SUPB za obvladovanje transakcij,
nadzor sočasnosti in obnovitev podatkov:
Koordinira transakcije
v imenu uporabniških
programov
Realizira različne strategije
za nadzor sočasnosti. Cilj:
maksimizirati sočasnost brez
da bi se transakcije med seboj
motile.
Skrbi za učinkovit
prenos podatkov
med diskom in
glavnim spominom.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Zagotavlja obnovitev podatkov
ob napakah in nesrečah...
- 80 -
Transakcije v porazdeljenih sistemih
 V SUPPB obvladovanje transakcij težje:
– Zahteva atomarnost globalnih transakcij in vsake od podtransakcij
 Lokalni SUPB-ji v porazdeljenih sistemih imajo
enake komponente kot v centralnih izvedbah.
 Dodatno na vsakem vozlišču:
– Globalna komponenta za koordiniranje transakcij (Global
Transaction Manager ali Transaction Coordinator): koordinira
izvajanje globalnih in lokalnih transakcij, ki so bile inicirane v
vozlišču.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 81 -
Postopek za izvedbo transakcije
 Transakcija pognana na vozlišču S1
– Koordinator transakcij na S1 razdeli transakcijo na pod-transakcije,
upoštevajoč podatke v globalnem sistemskem katalogu.
– Komponenta za podatkovno komunikacijo na S1 pošlje podtransakcije na ustrezna vozlišča.
– Poslane pod-transakcije prevzamejo lokalni koordinatorji transakcij.
– Rezultat se posreduje nazaj koordinatorju transakcij na vozlišču S1.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 82 -
Nadzor sočasnosti…
 Komponenta za nadzor sočasnosti (Concurrency
Control) zagotavlja
– ohranitev celovitosti in skladnosti podatkov po izvedbi
transakcij in
– Dokončanje vsake atomarne operacije.
 V SUPPB dober sistem za nadzor sočasnosti
zagotavlja še:
–
–
–
–
–
Hitro odzivnost in obnovljivost v primeru napak,
Paralelnost delovanja,
Minimalni “overhead” v smislu procesiranja in shranjevanja
Zadovoljivo delovanje v mrežnem okolju
Minimalno število omejitev nad strukturo atomarnih operacij.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 83 -
Problemi v zvezi z nadzorom sočasnosti…
Ponovitev
 V centraliziranem SUPB zaradi sočasnosti dostopa
različni problemi:
– Izgubljene spremembe: uspešno izveden UPDATE se
razveljavi zaradi istočasno izvajane operacije s strani
drugega uporabnika.
– Uporaba nepotrjenih podatkov (dirty read): transakciji je
dovoljen vpogled v podatke druge transakcije, še preden je
ta potrjena.
– Neskladnost analize: transakcija prebere več vrednosti iz
podatkovne baze. Nekatere izmed njih se v času izvajanja
prve transakcije zaradi drugih transakcij spremenijo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 84 -
Primeri težav s sočasnostjo dostopa…
Ponovitev
 Izgubljene spremembe
 T1 dvig $10 iz TRR, na katerem je začetno stanje $100.
 T2 depozit $100 na isti TRR.
 Po zaporedju T1, T2 končno stanje enako $190.
Rešitev: T1 ne dovolimo branja stanja, dokler T2 ni potrjena.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 85 -
Primeri težav s sočasnostjo dostopa…
Ponovitev
 Uporaba nepotrjenih podatkov
 T3 dvig $10 iz TRR.
 T4 depozit $100 na isti TRR.
 Po zaporedju T3, T4 končno stanje enako $190.
Rešitev: T3 ne dovolimo branja stanja, dokler ni določeno, ali bo T4
- 86 potrjena ali razveljavljena!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Primeri težav s sočasnostjo dostopa…
Ponovitev
 Nekonsistentna analiza
 T5 prenos $10 iz TRRx na TRRz.
 T6 izračun skupnega stanja na računih TRRx, TRRy in TRRz.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 87bal
Rešitev: T6 ne dovolimo branja stanja
x in balz, dokler se T5 ne zaključi!
Serializacija in obnovljivost…
Ponovitev
 Če transakcije izvajamo zaporedno, se izognemo
vsem problemom. Problem: nizka učinkovitost.
 Kako v največji meri uporabiti paralelnost?
 Nekaj definicij:
 Serializacija:
– način, kako identificirati načine izvedbe transakcij, ki
zagotovijo ohranitev skladnosti in celovitosti podatkov.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 88 -
Serializacija in obnovljivost…
Ponovitev
 Prepletanje operacij dveh transakcij…
t1
T1
T2
t2
CPU
CPU
t3
CPU
CPU
t4
CPU
CPU
t5
I/O
CPU
t6
I/O
CPU
t7
I/O
CPU
t8
I/O
t9
I/O
t10
CPU
t11
I/O
CPU
CPU
t12
t13
t14
t15
PODATKOVNE BAZE – II del
3. Letnik UNI, Informatika
©Laboratorij za podatkovne tehnologije
- 89 -
T1
T2
CPU
CPU
CPU
I/O
CPU
I/O
CPU
I/O
CPU
I/O
CPU
CPU
CPU
CPU
CPU
I/O
I/O
CPU
Serializacija in obnovljivost…
Ponovitev
 Urnik
– Zaporedje operacij iz množice sočasnih transakcij, ki ohranja
vrstni red operacij posameznih transakcij.
 Zaporedni urnik
– Urnik, v katerem so operacije posameznih transakcij
izvedene zaporedoma, brez prepletanja z operacijami iz
drugih transakcij.
 Nezaporedni urnik
– Urnik, v katerem se operacije ene transakcija prepletajo z
operacijami iz drugih transakcij.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 90 -
Serializacija in obnovljivost…
Ponovitev
 Namen serializacije:
– Najti nezaporedne urnike, ki omogočajo vzporedno izvajanje
transakcij brez konfliktov. Dajo rezultat, kot če bi transakcije
izvedel zaporedno.
 S serializacijo v urnikih spreminjamo vrstni red
bralno/pisalnih operacij. Vrstni red je pomemben:
– Če dve transakciji bereta isti podatek, nista v konfliktu.
Vrstni red nepomemben.
– Če dve transakciji bereta ali pišeta popolnoma ločene
podatke, nista v konfliktu. Vrstni red nepomemben.
– Če neka transakcija podatek zapiše, druga pa ta isti podatek
bere ali piše, je vrstni red pomemben.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 91 -
Primer
UA
Nezaporedni urnik
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
UB
Nezaporedni urnik
- 92 -
Ponovitev
UC
Zaporedni urnik
Transakcije, ki jih ni moč serializirati…
Ponovitev
 Preverjamo s pomočjo usmerjenega grafa
zaporedja
G = (N, E); N  vozlišča, E  povezave
 Gradnja grafa:
– Kreiraj vozlišče za vsako transakcijo
– Kreiraj usmerjeno povezavo Ti  Tj, če Tj bere vrednost,
zapisano s Ti
– Kreiraj usmerjeno povezavo Ti  Tj, če Tj piše vrednost, ki
je bila predhodno prebrana s Ti
– Kreiraj usmerjeno povezavo Ti  Tj, če Tj piše vrednost, ki
je bila predhodno zapisana s Ti
Če graf vsebuje cikel, potem serializacija urnika ni možna!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 93 -
Primer
Ponovitev
 Imamo naslednjo situacijo:
– T9 prenese $100 iz TRRx na TRRy.
– T10 stanje na obeh računih poveča za 10%.
– Graf zaporedja vsebuje cikel, zato transakciji ni moč
serializirati.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 94 -
Vrste serializacij
Ponovitev
 Predmet serializacije, ki smo jo obravnavali, so
bile konflikte operacije.
– Serializacija konfliktnih operacij (Conflict Serializibility)
zagotavlja, da so konfliktne operacije izvedene tako, kot bi
bile v zaporednem urniku.
 Obstajajo tudi druge vrste serializacije.
– Primer: serializacija vpogledov (View serializibility)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 95 -
Serializacija vpogledov...
Ponovitev
 Urnika S1 in S2, ki ju sestavljajo operacije iz istih
n transakcij sta ekvivalentna po vpogledih, če
velja:
– Za vsak podatek x mora veljati:
 če Ti bere začetno vrednost x v urniku S1, mora isto veljati za S2
 če je zadnji vpis x izvedla transakcija Ti v S1, mora isto veljati za S2
– Za vsako branje x, ki ga izvede Ti v S1
 če je x bil zapisan s Tj, potem mora enako veljati tudi v S2
 Urnik je moč serializirati po vpogledih, če je
ekvivalenten nekemu zaporednemu urniku.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 96 -
Serializacija vpogledov...
Ponovitev
 Vsak urnik, ki ga je moč serializirati po konfliktnih
operacijah, je moč tudi serializirati po vpogledih.
 Obratno ne velja  serializacija po konfliktnih
operacijah je močnejša serializacija.
Urnik je moč serializirati po vpogledih, po konfliktih pa ne.
T11
T12
T13
Transakciji T12 in T13 ne zadoščati pravilu, ki pravi, da mora transakcija vsak podatek,
ki
ga zapiše, predhodno prebrati. Urnik, ki ga je moč serializirati po vpogledih ne pa po
PODATKOVNE BAZE
Podiplomski študij
- 97 - pisanje.
konfliktnih
ima vedno kakšno slepo
©Laboratorij za podatkovneoperacijah
tehnologije
Testiranje serializacije vpogledov
Ponovitev
 Testiranje serializacije vpogledov:
– veliko težje od testiranja serializacije konfliktnih operacij.
– velja za NP polni problem.
 Algoritem
– glej [1, 584-586]
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 98 -
Obnovljivost...
Ponovitev
 Serializacija zagotavlja, da je urnik možno izvesti
tako, da stanje v podatkovni bazi ostane
konsistentno, pri predpostavki, da se vse
transakcije izvedejo uspešno.
 Kaj če pride do neuspešne izvedbe?
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 99 -
Obnovljivost
Ponovitev
 Urnik lahko preverimo tudi v smislu, če omogoča
obnovljivost.
 Urnik, ki obnovljivost omogoča, imenujemo
obnovljiv urnik (Recoverable Schedule)
 Urnik je obnovljiv, če za vse transakcije, ki
nastopajo v urniku, velja:
– če Tj bere neko podatkovno enoto, predhodno zapisano s Ti,
potem mora biti Ti potrjena pred Tj (commit).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 100 -
Metode nadzora sočasnosti...
Ponovitev
 Nadzor sočasnosti temelji na dveh osnovnih
metodah:
– Zaklepanje: zagotavlja, da je sočasno izvajanje enakovredno
zaporednemu izvajanju, pri čemer zaporedje ni določeno.
– Časovno žigosanje: zagotavlja, da je sočasno izvajanje
enakovredno zaporednemu izvajanju, pri čemer je zaporedje
določeno s časovnimi žigi.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 101 -
Metode nadzora sočasnosti
Ponovitev
 Metode za nadzor sočasnosti delimo na:
– Pesimistične: v primeru, da bi lahko prišlo do konfliktov, se
izvajanje ene ali več transakcij zadrži in
– Optimistične: izhajamo iz predpostavke, da je konfliktov
malo, zato dovolimo vzporedno izvajanje, za konflikte pa
preverimo na kocu izvedbe.
 V nadaljevanju: zaklepanje in časovno žigosanje
(pesimistični metodi) ter primer optimistične
metode.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 102 -
Zaklepanje...
Ponovitev
 Zaklepanje je postopek, ki ga uporabljamo za
nadzor sočasnega dostopa do podatkov.
– Ko ena transakcija dostopa do nekega podatka, zaklepanje
onemogoči, da bi ga istočasno uporabljale tudi druge kar bi
lahko pripeljalo do napačnih rezultatov.
 Obstaja več načinov izvedbe. Vsem je skupno
naslednje:
– Transakcija mora preden podatek prebere zahtevati deljeno
zaklepanje (shared lock) pred pisanjem pa ekskluzivno
zaklepanje (exclusive lock).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 103 -
Zaklepanje...
Ponovitev
 Zrnatost zaklepanja:
– Zaklepanje se lahko nanaša na poljuben del podatkovne
baze (od polja do cele podatkovne baze). Imenovali bomo
“podatkovna enota”.
 Pomen deljenega in ekskluzivnega zaklepanja:
– Če ima transakcija deljeno zaklepanje nad neko podatkovno
enoto, lahko enoto prebere, ne sme pa vanjo pisati.
– Če ima transakcija ekskluzivno zaklepanje nad neko
podatkovno enoto, lahko enoto prebere in vanjo piše.
– Deljeno zaklepanje nad neko podatkovno enoto ima lahko
več transakcij, ekskluzivno pa samo ena.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 104 -
Zaklepanje...
Ponovitev
 Postopek zaklepanja:
– Če transakcija želi dostopati do neke podatkovne enote,
mora pridobiti deljeno (samo za branje) ali ekskluzivno
zaklepanje (za branje in pisanje).
– Če enota ni že zaklenjena, se transakciji zaklepanje odobri.
– Če je enota že zaklenjena:
 če je obstoječe zaklepanje deljeno, se odobri
 če je obstoječe zaklepanje ekskluzivno, mora transakcija počakati,
da se sprosti.
– Ko transakcija enkrat pridobi zaklepanje, le-to velja, dokler
ga ne sprosti. To se lahko zgodi eksplicitno ali implicitno (ob
prekinitvi ali potrditvi transakcije).
Nekateri sistemi omogočajo prehajanje iz deljenega v ekskluzivno zaklepanje
- 105 in obratno.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Zaklepanje...
Ponovitev
 Opisan postopek zaklepanja sam po sebi še ne
zagotavlja serializacije urnikov.
 Primer:
S=
{write_lock(T9, balx), read(T9, balx),
write(T9, balx), unlock(T9, balx),
write_lock(T10, balx), read(T10, balx),
write(T10, balx), unlock(T10, balx),
write_lock(T10, baly), read(T10, baly),
write(T10, baly), unlock(T10, baly),
commit(T10), write_lock(T9, baly),
read(T9, baly), write(T9, baly),
unlock(T9, baly), commit(T9) }
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 106 -
Dvofazno zaklepanje – 2PL...
Ponovitev
 Da zagotovimo serializacijo, moramo upoštevati
dodaten protokol, ki natančno definira, kje v
transakcijah so postavljena zaklepanja in kje se
sprostijo.
 Eden najbolj znanih protokolov je dvofazno
zaklepanje (2PL – Two-phase locking).
 Transakcija sledi 2PL protokolu, če se vsa
zaklepanja v transakciji izvedejo pred prvim
odklepanjem.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 107 -
Dvofazno zaklepanje – 2PL...
Ponovitev
 Po 2PL lahko vsako transakcijo razdelimo na
– fazo zasedanja: transakcija pridobija zaklepanja, vendar
nobenega ne sprosti in
– fazo sproščanja: transakcija sprošča zaklepanja, vendar ne
more več pridobiti novega zaklepanja.
 Protokol 2PL zahteva:
– Transakcija mora pred delom z podatkovno enoto pridobiti
zaklepanje
– Ko enkrat sprosti neko zaklepanje, ne more več pridobiti
novega.
– Če je dovoljeno nadgrajevanje zaklepanja (iz deljenega v
ekskluzivno, je to lahko izvedeno le v fazi zasedanja..
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 108 -
Reševanje izgubljenih sprememb z 2PL
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 109 -
Ponovitev
Ponovitev
Reševanje nepotrjenih podatkov z 2PL
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 110 -
Reševanje nekonsistentne analize z 2PL
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 111 -
Ponovitev
Kaskadni preklic…
Ponovitev
 Če vse transakcije v urniku sledijo 2PL protokolu,
je urnik moč serializirati.
 Pojavijo se lahko težave zaradi nepravilno
izvedenih preklicev zaklepanj.
– Ali lahko preklic zaklepanja neke podatkovne enote
naredimo takoj, ko je končana zadnja operacija, ki do te
enote dostopa?
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 112 -
Kaskadni preklic…
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Ponovitev
- 113 -
Kaskadni preklic
 Kaskadni preklici so nezaželeni.
 2PL, ki onemogoča kaskadne preklice, zahteva,
da se sprostitev preklicev izvede šele na koncu
transakcije.
– Rigorozni 2PL (Rigorous 2PL): do konca transakcij
zadržujemo vse sprostitve.
– Striktni 2PL (Strict 2PL): zadržujemo le ekskluzivna
zaklepanja.
 Večina DBMS-jev realizira rigorozni ali striktni
2PL.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 114
Urnike, ki sledijo rigoroznemu 2PL protokolu,
je vedno
moč serializirati.
Ponovitev
Mrtve zanke…
Ponovitev
 Mrtva zanka (dead lock): brezizhoden položaj, do
katerega pride, ko dve ali več transakcij čakajo
ena na drugo, da bodo sprostile zaklepanja.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 115 -
Mrtve zanke…
Ponovitev
 Samo ena možnost, da razbijemo mrtvo zanko:
preklic ene ali več transakcij.
 Mrtva zanka oziroma njena detekcija in odprava
mora biti za uporabnika transparentna.
– SUPB sam razveljavi operacije, ki so bile narejene do točke
preklica transakcije in transakcijo ponovno starta.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 116 -
Mrtve zanke…
Ponovitev
 Tehnike obravnave mrtvih zank:
– Prekinitev: po poteku določenega časa SUPB transakcijo
prekliče in ponovno zažene.
– Preprečitev: uporabimo časovne žige; dva algoritma:
 Wait-Die: samo starejše transakcije lahko čakajo na mlajše, sicer
transakcija prekinjena (die) in ponovno pognana z istim časovnim
žigom. Sčasoma postane starejša…
 Wound-Wait: simetrični pristop: samo mlajša transakcija lahko
čaka starejšo. Če starejša zahteva zaklepanje, ki ga drži mlajša, se
mlajša prekine (wounded).
– Detekcija in odprava: sestavimo graf WFG (wait-for graph, ki
nakazuje odvisnosti med transakcijami in omogoča detekcijo
mrtvih zank.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 117 -
Mrtve zanke…
Ponovitev
 WFG je usmerjen graf G = (N, E), kjer N vozlišča,
E povezave.
 Postopek risanja WFG:
– Kreiraj vozlišče za vsako transakcijo
– Kreiraj direktno povezavo Ti  Tj, če Ti čaka na zaklepanje
podatkvne enote, ki je zaklenjena s strani Tj.
 Pojav mrtve zanke označuje cikel v grafu.
 SUPB periodično gradi graf in preverja obstoj
mrtve zanke.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 118 -
Mrtve zanke…
Ponovitev
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 119 -
Mrtve zanke
Ponovitev
 Ko je mrtva zanka detektirana, je potrebno eno
ali več transakcij prekiniti.
 Pomembno:
– Izbira transakcije za prekinitev: možni kriteriji: ‘starost’
transakcije, število sprememb, ki jih je transakcija naredila,
število sprememb, ki jih transakcija še mora opraviti.
– Koliko transakcije preklicati: namesto preklica cele
transakcije včasih mrtvo zanko moč rešiti s preklicom le dela
transakcije.
– Izogibanje stalno istim žrtvam: potrebno preprečiti, da ni
vedno izbrana ista transakcija. Podobno živi zanki (live lock)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 120 -
Časovno žigosanje…
Ponovitev
 Časovni žig: enolični identifikator, ki ga SUPB
dodeli transakciji in pove relativni čas začetka
transakcije.
 Časovno žigosanje: protokol nadzora sočasnosti,
ki razvrsti transakcije tako, da so prve tiste, ki so
starejše.
– Alternativa zaklepanju pri reševanju sočasnega dostopa
– Če transakcija želi brati/pisati neko podatkovno enoto, se ji
to dovoli, če je bila zadnja sprememba nad to enoto
narejena s starejšo transakcijo. Sicer se restarta z novim
žigom.
– Ni zaklepanj  ni mrtvih zank
– Ni čakanja  če transakcija v konfliktu, se restarta.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 121 -
Časovno žigosanje…
Ponovitev
 Časovni žig imajo tudi podatkovne enote
– Read_timestamp: časovni žig transakcije, ki je podatkovno
polje nazadnje prebrala,
– Write_timestamp: časovni žig transakcije, ki je v podatkovno
polje nazadnje pisala.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 122 -
Časovno žigosanje…
Ponovitev

Princip delovanja časovnega žigosanja:
– Imamo transakcijo T s časovnim žigom ts(T)
A) T zažene operacijo read(x)


Če x že spremenjen s strani mlajše transakcije
ts(T) < write_timestamp(x)
potem moramo transakcijo prekiniti in restartati z novim žigom.
Sicer: ts(T) ≥ write_timestamp(x), z branjem nadaljujemo.
Nastavimo read_timestamp(x) = max( ts(T), read_timestamp(x) ).
Problem je potencialna nekonsistentnost
z drugimi vrednostmi, ki jih je transakcija
že prebrala.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 123 -
Časovno žigosanje…
Ponovitev

Princip delovanja časovnega žigosanja
(nadaljevanje):
B) T zažene operacijo write(x)



PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Če x že prebrana s strani mlajše transakcije
ts(T) < read_timestamp(x)
potem moramo transakcijo prekiniti in restartati z novim žigom.
Če x že zapisana s strani mlajše transakcije
ts(T) < write_timestamp(x)
potem moramo transakcijo prekiniti in restartati z novim žigom.
Sicer: ts(T) ≥ write_timestamp(x), z branjem nadaljujemo.
Nastavimo write_timestamp(x) = ts(T).
- 124 -
Časovno žigosanje…
Ponovitev
 Časovno žigosanje po opisanem principu
imenujemo osnovna ureditev po časovnih žigih
(basic timestamp ordering)
 Osnovna ureditev po časovnih žigih:
– zagotavlja serializacijo konfliktnih operacij, vendar
– ne zagotavlja obnovljivosti urnika.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 125 -
Časovno žigosanje…
Ponovitev
 Tomaževo pravilo pisanja – dodatno pravilo, ki
poveča stopnjo sočasnosti:
– Dodatno pravilo za pisanje: pisanje zavrni, če se nanaša na
neko zastarelo podatkovno enoto.
– T zažene operacijo write(x)
 Če x že prebrana s strani mlajše transakcije
ts(T) < read_timestamp(x)
potem moramo transakcijo prekiniti in restartati z novim žigom.
 Če x že zapisana s strani mlajše transakcije
ts(T) < write_timestamp(x)
potem transakcijo ignoriramo.
 Sicer: ts(T) ≥ write_timestamp(x), z branjem nadaljujemo.
Nastavimo write_timestamp(x) = ts(T).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 126 -
Časovno žigosanje…
Ponovitev
 A) osnovna ureditev po časovnih žigih:
– Operacija write(balx) v T11, ki sledi operaciji write(balx) v T12
bi bila zavrnjena; T11 bi morali obnoviti in ponovno pognati z
novim žigom.
 B) upoštevajoč Tomovo pravilo pisanja
– Ne zahteva nobenega obnavljanja.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 127 -
Ponovitev
Primer
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 128 -
Primerjava metod nadzora sočasnosti
Ponovitev
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 129 -
Ponovitev
Časovno žigosanje več verzij…
 Z verzioniranjem podatkov lahko povečamo
sočasnost.
 Osnovni protokol urejanja po časovnih žigih
– predpostavlja, da obstaja samo ena verzija podatkovne
enote  samo ena transakcija lahko do enote dostopa
naenkrat.
 Časovno žigosanje več verzij omogoča več
transakcijam istočasno brati/pisati različne verzije
iste podatkovne enote.
 Zagotavlja, da vsaka transakcija vidi konsistentno
množico verzij za vse enote, ki jih uporablja.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 130 -
Ponovitev
Časovno žigosanje več verzij…
 Pri uporabi časovnega žigosanja več verzij vsaka
pisalna operacija kreira novo verzijo podatkovne
enote in zadrži staro.
 Ko transakcija poskuša podatek prebrati, SUPB
izbere tisto verzijo, ki zagotavlja serializacijo.
 Verzije brišemo takrat, ko jih ne potrebujemo
več.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 131 -
Ponovitev
Časovno žigosanje več verzij…
 Postopek časovnega žigosanja več verzij:
– Predpostavimo, da za vsako podatkovno enoto x obstaja n
verzij: x1, x2,… xn.
– Za vsako verzijo i sistem hrani tri vrednosti:
 Vrednost verzije xi
 Read_timestamp(xi)
 Write_timestamp(xi)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 132 -
Ponovitev
Časovno žigosanje več verzij…
 Postopek časovnega žigosanja več verzij
(nadaljevanje):
– Naj bo ts(T) časovni žig trenutne transakcije.
– Protokol časovnega žigosanja več verzij sledi dvema
praviloma:
– (I) T zažene operacijo write(x)
 Če T želi pisati enoto x, moramo zagotoviti, da enota še ni bila
prebrana s strani novejše transakcije Tj. Če T dovolimo pisanje, bi
morali zaradi serializacije zagotoviti, da Tj x še enkrat prebere. Ker
je x že prebrala, se to ne zgodi. Tako transakcijo prekinemo in
ponovno poženemo z novim žigom.
 Če T želi brati enoto x, mora prebrati zadnjo verzijo x, ki ima
časovni žig pisanja še manjši od žiga transakcije (prebrati moramo
verzijo, ki je bila zapisana pred začetkom transakcije). Časovni žig
branja nastavimo na max(ts(T), read_timestamp(xj))
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 133 -
Pri takem protokolu branje vedno uspe.
Ponovitev
Časovno žigosanje več verzij
 Brisanje verzij:
– Verzije lahko brišemo
– Postopek:
 poiščemo najstarejšo transakcijo Tp
 poiščemo vse verzije x: x1, x2,…, xn za katere velja
write_timestamp(xi) < ts(Tp) ter zbrišemo vse razen najmlajše.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 134 -
Ponovitev
Optimistične tehnike…
 Optimistične metode za nadzor sočasnosti
– temeljijo na predpostavki, da je konfliktov malo, zato je
vzporedno izvajanje dovoljeno brez kontrole, morebitne
konflikte preverimo na koncu izvedbe.
– Ob zaključku transakcije (commit) se preveri morebitne
konflikte. Če konflikt, se transakcija razveljavi.
– Omogočajo večjo stopnjo sočasnosti (pri predpostavki, da je
konfliktov malo)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 135 -
Ponovitev
Optimistične tehnike…
 Protokoli, ki temeljijo na optimističnem pristopu,
imajo tipično tri faze:
– Faza branja: traja vse od začetka transakcije do tik pred
njeno potrditvijo (commit). Preberejo se vsi podatki, ki jih
transakcija potrebuje ter zapišejo v lokalne spremenljivke.
Vse spremembe se izvajajo nad lokalnimi podatki.
– Faza preverjanja: začne za fazo branja. Preveri se, ali je moč
spremembe, ki so vidne lokalno, aplicirati tudi v podatkovno
bazo.
 Za transakcije, ki zgolj berejo, še enkrat preverimo, če so prebrane
vrednosti še vedno iste. Če konfliktov ni, sledi potrditev, sicer
zavrnitev ter ponovni zagon transakcije.
 Za transakcije, ki podatke spreminjajo, moramo preveriti, če
spremembe ohranijo konsistentnost podatkovne baze.
– Faza pisanja: sledi fazi preverjanja. Če slednja uspešna, se
podatki zapišejo v podatkovno bazo.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 136 -
Ponovitev
Optimistične tehnike
 Izvedba faze preverjanja:
– Vsaka transakcija T ima dodeljene tri časovne žige: ob
začetku – start(T), ob preverjanju – validation(T) in ob
zaključku – finish(T).
– Preverjanje uspešno, če velja vsaj eden od pogojev:
 Vse transakcije S s starejšim žigom se morajo končati pred
začetkom T: finish(S) < start(T)
 Če T začne preden se starejša transakcija S konča, potem:
(a) množica podatkov, zapisanih s starejšo transakcijo, ne vključuje
tistih, ki jih je trenutna transakcija prebrala.
(b) starejša transakcija zaključi fazo pisanja preden mlajša začne s
fazo preverjanja: start(T) < finish(S) < validation(T).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 137 -
Nadzor sočasnosti v porazdeljenih sistemih...
 Razširjena serializacija:
– Če je urnik izvedbe transakcij na posameznih vozliščih moč
serializirati, potem je tudi globalni urnik (sestavljen iz vseh
urnikov vozlišč) moč serializirati, če velja, da so zaporedja na
vozliščih identična:
 Naj bo Ti na S1 označen kot Ti_1
 Za serializacijo globalnega urnika moramo zagotoviti, da če Ti_1 <
Tj_1 potem Ti_n < Tj_n, za vsako vozlišče Sn, na katerem imata Ti in
Tj pod-transakcije!
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 138 -
Nadzor sočasnosti v porazdeljenih sistemih...
 Nadzor sočasnosti v porazdeljenih sistemih
temelji na dveh osnovnih pristopih (enako kot pri
centraliziranih sistemih):
– Zaklepanje: zagotavlja, da je sočasno izvajanje enakovredno
nekemu (poljubnemu) zaporednemu izvajanju.
– Dodeljevanje časovnih žigov: zagotavlja, da je sočasno
izvajanje enakovredno zaporednemu izvajanju, določenemu
s časovnimi žigi.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 139 -
Nadzor sočasnosti v porazdeljenih sistemih
 Če podatkovna baza
– centralizirana ali porazdeljena (vendar ne replicirana) in so
vse transakcije lokalne ali pa se izvajajo na enem strežniku,
potem protokoli iz centraliziranih sistemov zadoščajo. Sicer
so potrebni posebni protokoli.
 Pogledali bomo:
– Protokole zaklepanja: centraliziran 2PL, 2PL s primarno
kopijo, porazdeljen 2PL, večinsko zaklepanje
– Protokole s časovnim žigom
– Način identifikacije centraliziranih, hierarhičnih in
porazdeljenih mrtvih zank
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 140 -
Centraliziran 2PL…
 Vsi podatki o zaklepanju se vodijo na enem
vozlišču. Za dodajanje in sproščanje zaklepanj
obstaja centralni LM*.
 Postopek za transakcijo T pognano na vozlišču S1:
– TC1+ razdeli transakcijo na dele upoštevajoč podatke v
globalnem sistemskem katalogu. TC1 zadolžen za skladnost
PB.
– Če transakcija zajema spremembo replicirane podatkovne
enote, TC1 poskrbi, da se spremenijo vse kopije. TC1 zahteva
ekskluzivno zaklepanje vseh kopij, dokler ne izvede
spremembe. TC1 sam odloči, katero kopijo uporabi.
*LM
– Lock Manager
+TC – Transaction Coordinator
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 141 -
Centraliziran 2PL…
 Postopek za transakcijo T pognano na vozlišču S1
(nadaljevanje):
– Lokalni TM, vključeni v globalno transakcijo, zahtevajo in
sproščajo zaklepanja v centralnem TM (uporabljajo se
pravila navadnega 2PL).
– Centralni LM preveri, če je zahtevano zaklepanje
kompatibilno z obstoječimi:
 Če kompatibilno, zaklepanje izvede in obvesti vozlišče, iz katerega
je prišla zahteva
 Sicer zahtevo da v vrsto, dokler zaklepanje ni možno.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 142 -
Centraliziran 2PL
 Prednosti:
– Enostavna implementacija
– Detekcija mrtvih zank enako kot na navadnem SUPB (z
vsemi zaklepanji dela en sam LM)
– Relativno nizki stroški komunikacije
 Slabosti:
– Pot do centralnega LM lahko ozko grlo (vse zahteve gredo
na centralni LM)
– Nižja zanesljivost: odpoved centralnega mesta pomeni velik
problem
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 143 -
2PL s primarno kopijo…
 Odpravlja slabosti centraliziranega 2PL
 Ideja:
– Več LM, ki so porazdeljeni po več vozliščih
– Vsak LM je zadolžen za en segment podatkov
– Za vsako replicirano podatkovno enoto izberemo eno kopijo in
jo označimo kot primarno kopijo. LM, ki izvaja zaklepanja in
sproščanja primarne kopije, ni potrebno, da je nujno na istem
vozlišču kot primarna kopija.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 144 -
2PL s primarno kopijo…
 Protokol 2PL s primarno kopijo predstavlja
razširitev centraliziranega 2PL. Razlika s
centraliziranim 2PL:
– ko je potrebno nek podatek spremeniti, najprej poiščemo
lokacijo primarne kopije, da lahko pošljemo zahtevo za
zaklepanje ustreznemu LM.
– Ekskluzivno zaklepanje potrebno samo za primarno kopijo
– Ostale kopije spremenimo kasneje (zaželeno čim prej).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 145 -
2PL s primarno kopijo
 2PL s primarno kopijo uporaben v primerih:
– ko je replikacija selektivna,
– Spremembe niso pogoste,
– Vozlišča ne potrebujejo vedno zadnje verzije podatkov
 Slabosti:
– Težavno identificiranje mrtvih zank (zaradi več LM)
– Ni povsem distribuiran sistem (neko primarno kopijo lahko
zaklepa le en LM)  lahko omilimo, če določimo dodatna
vozlišča kot backup za podatke o zaklepanju.
 Prednost:
– Stroški komunikacije nižji ter učinkovitost večja kot pri
centraliziranemu 2PL (manj oddaljenega zaklepanja).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 146 -
Porazdeljen 2PL…
 Podobno kot 2PL s primarno kopijo poskuša
odpraviti težave centraliziranega 2PL.
 Ideja:
– LM so porazdeljeni po vseh vozliščih.
– Vsak LM odgovoren za zaklepanja in sproščanja podatkov na
vozlišču, kateremu pripada.
– Če podatki niso replicirani, gre za enak protokol kot 2PL s
primarno kopijo.
– Če podatki replicirani, se uporabi protokol kontrole
replikacije imenovan ROWA (Read-One-Write-All).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 147 -
Porazdeljen 2PL
 Delovanje ROWA:
– Katerakoli kopija neke podatkovne enote se lahko uporabi za
branje, vendar morajo biti vse enote ekskluzivno zaklenjene,
če eno spreminjamo.
 Prednosti:
– Zaklepanje se izvaja porazdeljeno (odpravimo slabosti
centraliziranega pristopa)
 Slabosti:
– Kompleksno identificiranje mrtvih zank
– Večji stroški komunikacije kot pri 2PL s primarno kopijo (vse
kopije moramo pri pisanju zakleniti)
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 148 -
Večinsko zaklepanje…
 Predstavlja razširitev porazdeljenega 2PL, kjer se
izognemo potrebi po zaklepanju vseh kopij…
 Koncept:
– LM porazdeljeni po vseh vozliščih
– Vsak LM skrbi za lokalne podatke
– Če transakcija želi brati ali pisati podatkovno enoto, zapisano
na n mestih, mora poslati zahtevo za zaklepanje na več kot
pol vozlišč, kjer je enota shranjena.
– Transakcija ne more nadaljevati, dokler ni zaklenjena večina
kopij.
– Če v določenem času ne uspe pridobiti dovolj zaklepanj, se
transakcija prekine ter o tem obvesti vsa mesta, ki so
zaklepanja izvedla.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 149 -
Večinsko zaklepanje
 Koncept (nadaljevanje):
– Poljubno število transakcij ima lahko istočasno deljeno
zaklepanje nad večino podatkovnih enot, samo ena pa
ekskluzivno zaklepanje.
 Prednosti:
– Odprava slabosti centraliziranega pristopa
 Slabosti
– Kompleksnost protokola
– Kompleksnost identifikacije mrtvih zank
– Stroški zaklepanja in odklepanja
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 150 -
Časovno žigosanje...
 Cilj časovnega žigosanja:
– Transakcije urediti tako, da imajo starejše transakcije
prednost v primeru konflikta.
– V centraliziranih SUPB za dodeljevanje časovnih žigov
uporabimo sistemsko uro ali števec.
 V porazdeljenih sistemih:
– Časovno žigosanje globalno in lokalno
– Sistemska ura ali lokalni števec ne ustrezna za dodeljevanje
časovnih žigov – problem sinhronizacije
– Tipična rešitev: uporabimo združen niz
<lokalni žig, oznaka vozlišča>
– Uporablja se tudi med-vozliščna sinhronizacija
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 151 -
Časovno žigosanje
 Da preprečimo, da bi bolj zasedena vozlišča
generirala večje žige kot nezasedena:
– Vsako vozlišče v sporočilu, ki ga pošlje drugim vozliščem,
vključi še žig.
– Prejemnik primerja svoj žig s prejetim in če je prejeti žig
večji, svojega popravi tako, da postane večji od prejetega.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 152 -
Detekcija mrtvih zank v SUPPB...
 V porazdeljenih sistemih detekcija in odprava
mrtvih zank kompleksnejša.
 Možna poenostavitev: uporaba centraliziranega
LM.
 Primer:
– Imamo tri transakcije: T1, T2 in T3
 T1 pognana na S1, njen del pa tudi na S2
 T2 pognana na S2, njen del pa tudi na S3
 T3 pognana na S3, njen del pa tudi na S1
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 153 -
Detekcija mrtvih zank v SUPPB...
 Primer (nadaljevanje):
– Zaklepanja:
Čas
S1
S2
S3
t1
Read_lock(T1, x1)
Write_lock(T2, y2)
Read_lock(T3, z3)
t2
Write_lock(T1, y1)
Write_lock(T2, z2)
t3
Write_lock(T3, x1)
Write_lock(T1, y2)
Write_lock(T2, z3)
– Če konstruiramo WFG, dobimo
T3
T1
T1
S1
– Združeni WFG
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
T2
S2
T1
T3
S3
T2
T3 - 154
T2
Detekcija mrtvih zank v SUPPB...
 V SUPPB lokalni graf čakanja (WFG) ne zadošča –
potrebno sestaviti tudi globalni WFG, ki
predstavlja unijo lokalnih WFG.
 V porazdeljenih sistemih v uporabi trije pristopi
za detekcijo mrtvih zank:
– Centralizirana detekcija
– Hierarhična detekcija
– Porazdeljena detekcija
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 155 -
Detekcija mrtvih zank v SUPPB...
 Centralizirana detekcija:
– Določeno je eno vozlišče, ki je odgovorno za detekcijo
mrtvih zank (DDC – Dead Lock Coordinator)
– Naloga DDC je
 konstruirati in globalni WFG
 Preverjati obstoj zank v globalnem WFG
 V primeru zank izbrati transakcije, ki se prekinejo (rollback) in
ponovno poženejo.
– Za minimizacijo prometa po omrežju LM pošilja DDC-ju zgolj
spremembe v lokalnem WFG (dodane ali brisane povezave).
 Slabost:
– Nižja zanesljivost (če odpove vozlišče z DDC).
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 156 -
Detekcija mrtvih zank v SUPPB...
 Hierarhična detekcija:
– Vozlišča urejena v hierarhijo
– Vsako vozlišče pošlje svoj WFG vozlišču, ki je nad njim v
hierarhiji
– Primer hierarhije za 8 vozlišč
Raven 4: globalna detekcija
mrtvih zank
Raven 3: detekcija mrtvih
zank štirih sosedov
Raven 2: detekcija mrtvih
zank dveh sosedov
Raven 1: lokalna detekcija
mrtvih zank
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 157 -
Detekcija mrtvih zank v SUPPB...
 Hierarhični detekcija (nadaljevanje)
– Prednost pred centraliziranim pristopom: manjša odvisnost
od centralnega vozlišča.
– Slabost je kompleksnost implementacije
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 158 -
Detekcija mrtvih zank v SUPPB...
 Porazdeljena detekcija:
– Obstajajo številni algoritmi za porazdeljeno detekcijo mrtvih
zank
– Primer algoritma:
 Lokalnemu WFG pridobi dodatno vozlišče Text, ki predstavlja del
transakcije, izvajane na nekem drugem vozlišču.
 Npr., če T1 na S1 požene del transakcije na S2, dodamo povezavo v
lokalni WFG, ki kaže iz T1 v Text.
T1 pognana na S1, njen del pa tudi na S2
T2 pognana na S2, njen del pa tudi na S3
- 159 T3 pognana na S3, njen del pa tudi na S1
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
Detekcija mrtvih zank v SUPPB...
 Porazdeljena detekcija (nadaljevanje):
– Če na lokalnem WFG identificiran cikel, ki ne vključuje Text,
potem vozlišče in SUPPB v mrtvi zanki. Mrtvo zanko
odpravimo lokalno.
– Če na lokalnem WFG identificiran cikel, ki vključuje Text,
potem potencialno obstaja globalna mrtva zanka. Da
ugotovimo, če zanka obstaja, moramo združiti lokalna grafa.
PODATKOVNE BAZE
Podiplomski študij
©Laboratorij za podatkovne tehnologije
- 160 -

similar documents