Professional Documents
Culture Documents
Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka
Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka
Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka
NI
SEMINARSKI RAD
Mariposa: Novi oblik arhitekture za
distribuciju podataka
Predmet: Distribuirane baze podataka
Profesor:
dr Borivoje Miloevi
Student:
Milan orevi RTs 06/13
SADRAJ
-SADRAJ1. UVOD.....................................................................................................................................- 3 2. ZADACI MARIPOSE............................................................................................................- 5 3. SISTEM PRAVILA MARIPOSE...........................................................................................- 7 3.1 Ugraeni dogaaji.............................................................................................................- 7 3.2 Ugraene akcije................................................................................................................- 9 3.3 Rastegljivost....................................................................................................................- 10 3.4 Sistemsko pravilo za izvrenje........................................................................................- 10 4. FRAGMENTI.......................................................................................................................- 12 4.1 Lokacija fragmenta.........................................................................................................- 12 4.2 Migracija fragmenta........................................................................................................- 13 4.2.1 Kanonsko predstavljanje podataka kod Maripose...................................................- 14 4.2.2 Konverzija indeksa...................................................................................................- 14 2
FRAGMENTI
4.3 Migracija kada je aktivno................................................................................................- 15 4.4 Migracioni logovi............................................................................................................- 15 4.5 Poreklo fragmenta..........................................................................................................- 16 5. PROCESOR UPITA MARIPOSE........................................................................................- 17 5.1 Parsovanje upita..............................................................................................................- 17 5.2 Problemi kod optimizacije upita.....................................................................................- 17 5.3 Strategija procesuiranja upita..........................................................................................- 17 5.3.1 Optimizacija u tri faze..............................................................................................- 18 5.3.2 Spajanje dve klase....................................................................................................- 18 6. VIESTRUKE KOPIJE.......................................................................................................- 19 7. ZAKLJUAK.......................................................................................................................- 20 -
1. UVOD
3
FRAGMENTI
Karakteristike svakog pristupa mogu se sumirati u okviru Slike 1. Prvo, svaki pristup pri
istraivanju ima fundamentalnu jedinicu zaduenu za alokaciju memorije, bezbednost i
imenovanje. Na osnovu toga, odluke se moraju usloviti time da li su objekti koji se nalaze u
memoriji fiksirani i kako bi trebalo da se kontrolie transfer izmeu jednog mesta u okviru mree
na drugo. Drugo, sva etiri pristupa keiraju podatke sa udaljenih lokacija. Samim time to
4
FRAGMENTI
uslovljava odluke o respektabilnom odnosu u veliini keiranih podataka, trajanje keiranog fajla
na nekoj lokaciji, mehanizam za upravljanje ke memorijom i da li se objekti menjaju nakon
keiranja. Na kraju, svaki pristup implicitno definie model za izvrenje upita. Kada se pojavi
upit na lokacija A kojoj su potrebni podaci iz lokacije B, postoje dve mogue strategije za
izvrenje upita. Podaci sa lokacije B mogue je prebaciti na lokaciju A i tamo se izvre, ovakva
strategija vodi ka prebacivanju podataka ka upitu, dok je alternativni pristup obrnutog
karaktera i vodi se time da se upit dovede do podataka.
Kako je jasno definisana vanost arhitekture iz aspekta jednog distribuiranog menadera
podataka, pristupa se istraivanju podataka iz Slike 1. pri primeni na postojee menadere
distribuiranih sistema podataka.
FRAGMENTI
FRAGMENTI
FRAGMENTI
"duboko skladitenje" moraju biti na istoj fizikoj maini. Meutim, mora da omogui udaljeni
pristup uredjaju za tercijarnu memoriju sa tog diska za kerianje.Na kraju, kao i distribuirani fajl
sistemi, "duboko skladitenje" koristi strategiju "poalji podatke upitu".
etvrti pristup za distribuciju je implementovan komercijalnom objekto orijentisanom
DBMS kao i prototipima za pretragu. Sve to uzima u obzir klijent-server okruenje i kretanje
blokova diska izmeu klijenta i servera. Objekti podataka imaju fiksnu poziciju i ovaj sistem
implementuje "poalji podatke ka upitu".
Na Slici 1. se moe primetiti da distribuirani fajl sistemi i "duboka skladita" imaju dosta
jednostavnih elemenata. Izuzev veliline objekta keiranog na klijentskoj strani, ali u sutini
izgledaju isto. Oba metoda premetaju podatke na osnovu elja korisnika (brisanjem i
ponovnom kreiranju fajla), keiranje podataka sa hard kodovanim proceduralnim ke
menaderima i pomeranju podataka prema upitu u okviru strageije izvravanja upita.
Mariposa arhitektura ima karakteristike koje se nalaze u poslednjem redu na Slici 1.
Sledee poglavlje objanjava motivaciju i zadatke koji stoje iza ove arhitekture.
2. ZADACI MARIPOSE
Fundametnalni zadaci Maripose su ujedinjenje (dosada razjedinjenih) razliitih pristupa
distribuiranju baza podataka (DBMS), keiranja distribuiranih fajl sistema, "duboko skladitenje"
fajl sistema i servera za objekte. Mariposa distribuira podatke preko puteva koji su povezani
8
FRAGMENTI
nekom lokalnom ili irokopojasnom mreom (LAN/WAN). Svaka lokacija ima ureaj za
skladitenje, koju smatramo glavnom memorijom u ovom sluaju, disk ili tercijalna memorija.
Kada se vie od jednog ureaja za skladitenje memroije povee na isti CPU, to uzei u
obzir ovu temu, predstavlja agregaciju dve ili vie logike lokacije Maripose. I ako se smatra da
obian korisnik oekuje veliki broj ureaja za skladitenje podataka koji se povezuju na isti
CPU, u ovom primeru je to obrnut sluaj razmatrajui sledee faktore. Prvo, ureaji koji koriste
tercijarnu memoriju su veoma spori i skupi. Kao takvi, potrebno je opsluiti svaki takav ureaj
(koji se meri cenama sa est cifara) lino dodeljenim procesorom (ija je cena odreeneo sa etiri
cifara). Tericjarna memorija moe biti na drugoj strani LAN ili brze WAN mree sa keiranog
diska, bez gubljenja u performansama. Kao rezultat, keiranje tercijarne memorije se vri na
udaljenom raunaru. Glavna memorija se uglavnom keira lokalno ali moe biti i udaljena.
Lokalno keiranje sa jednog na drugi ureaj e zahtevati premetanje sa jedne Mariposa logike
jedinice na drugu, i ako se nikakv mreni saobraaj ne odvija.
Mariposa podrava sledee modele za podatke. Mariposa sistem se sastoji od instanca
objekta u imenovanim klasama, od kojih svaka sadri atribute za specifine tipove podataka.
Svaka klasa je podeljena u fragmente, koji predstavljaju jedinice memorije u sistemu. Lokacije
podataka mogu podeliti ili ujediniti fragmente po potrebi. Fragmenti opcionalno mogu imati
kriterijume za distribuciju koje kontroliu logiku kompoziciju instanci u fragmentu. Fragmenti
nemaju specifinu poziciju i mogu se slobodno kretati kroz mreu. Alternativno se moe rei da
fragmenti poseduju trenutnu lokaciju koja se rapidno menja. Primera radi, ako se fragmentu
uestalo pristupa, pretpostavljamo da e se njegova lokacija premestiti sa tercijalne memorije na
disk ili na glavnu memoriju. Kada se aktivnosti smanje, lokacija migrira na sporiju memoriju.
9
FRAGMENTI
10
FRAGMENTI
FRAGMENTI
ovo bez konsultovanja ili notifikacije drugih lokacija. Mogue je implementirati mehanizme koji
omoguavaju prostiranje definicija i metoda na svakom mestu na korisniko transparentan nain.
Meutim, takvi mehanizmi moraju biti sposobni da se nose sa odreenim razlikama u arhitekturi
maine i sistemnskg softvera. Superraunari moraju da "egzistiraju" na razliitim pojedinianim
mainama da bi radili bez problema. I na kraju, najbitnija stavka, potreba lokacija za irenjem
(kako bi sve lokacije bile u mogunosti da odrade bilo koji deo upita) rui tezu o autonomiji, to
povlai direktno pitanje o mogunosti Maripose da garantuje procesuiranje svakog dela upita na
svim lokacijama u sistemu.
Kao rezultat dobijamo glavne aspekte Mariposa sistema:
1. sistem organizovan pravilima koji radi na mehanizmu koji je zasnovan na tom setu
pravila
2. algoritmi za kretanje fragmenata radi vee mobilnosti podataka
3. optimizer upita i mehanizam za izvrenje istih
4. dozvoljava multipliciranje kopija za ovo okruenje
FRAGMENTI
lokacija se upravlja od strane menadera pravila. Posmatra kada se u sistemu pojave dogaaji
koji su od interesa i kada se isti detektuje, nad njima se primenjuje odreeni set akcija za tu vrstu
dogaaja. To se postie korienjem procesora pravila koji kontrolie te funckije. Mariposa
omoguuje jednostavno eksperimentisanje sa razliitim polisama. Konvencionalno procesuiranje
upita i upravljanja fajlova kompajliraju polise u sistem, to oteava izmenu u sistemu ako se
neto eli izmeniti kasnije. Mariposa dozvoljava dinaminu promenu procesuiranja i stragetija
alokacija bilo gde u mrei i na bilo koj lokaciji. Potrebno je da administrator omogui polisu.
Mariposa koristi produktivni sistem pravila u kojoj je svako pravilo u formi:
vidi dogaaj uradi akciju (on event do action).
Dogaaji se dopremaju do sistema pravila uz pomo menadera lokacija, procesora upita
ili drugih spoljanjih agenta. Ako se dogaaj prepozna, njegova akcija se izvri. I dogaaj i
akcija zauzimaju odreeni broj parametara, kao to je prikazano u donjem delu rada, koji mogu
biti preneti na druge dogaaje i akcije ili mogu biti iskoriene za izvrenje kondicionalnih
akcija.
FRAGMENTI
14
FRAGMENTI
Ova pravila imaju sledei efekat: Zahtev za metapodatke klase EMP uvek idu maini koja
je big-server, tj veliki server. Za sve ostale klase, pretrauju se lokalne klase da se vidi da li je
klasa smetena lokalno. Ako je to sluaj, metapodaci se nalaze na toj lokaciji, u suprotnom,
zahtev se alje dalje centralnom serveru imena.
15
FRAGMENTI
Prvi set pravila implementuje centralizovani servis imena. Drugi koristi eksplicinte
informacije o nainu distribucije baze podataka da bi upravljao EMP klasom. Druga pravila je
mogue programirati radi implementacije drugih imenskih servisa.
Dogaaji
discoverfragment(fragment)
exportfragment(fragment)
importfragment(fragment)
mogu da se koriste za implementaciju imenskog servisa radi kontrolisanja lokacije
imenovanog fragmenta. Dogaaj discover-fragment funkcionie isto kao i za klase, importfragment i export-fragment dogaaji kontroliu skladitenje fragmenta. Import-fragment se
koristi kada lokalna lokacija eli da pokupi kopiju fragmenta kako bi je smestio na lokalnoj
particiji. Export-fragment se koristi kada se neki fragment eli premestiti sa lokalne lokacije.
Ovo pravilo e izazvati overflow lokalne lokacije na prethodno dodeljenu backup
lokaciju:
onexportfragment(fragment)do
sendfragment($1,mybackup)
16
FRAGMENTI
Dogaaj
receiverule(event,parameters,action,site)
se aktivira kada god se neka lokacija, nezavisno od toga da li je lokalna ili udaljena, eli
da definie pravilo na lokalnoj lokaciji. Ovaj dogaaj dozvoljava administratoru Maripose na
lokalnoj lokaciji da kontrolie nivo lokalne autonomije. Prva tri parametra su korespodentna
delovima pravila koja se ele primeniti, parametar lokacije je ime lokacije koja eli da definie
novo pravilo.
17
FRAGMENTI
Dogaaj receive-query je automatski aktiviran kada neka druga lokacija eli da poalje
upit lokalnoj lokaciji. Akcioni deo dogaaja nebitno da li je upit procesuiran na licu mesta ili
prosleen dalje na drugu lokaciju.
Na primeru, pravilo:
onreceivequery(*,*)do
if(dataislocal($1))then
return(execute($1))
else
return(sendquery($1,datasite($1))
koje aranira upite koji se izvravaju na lokacijama koje sadre podatke. ( U ovom
primeru, funkcija lokacija podataka nekog fragmenta koji se referencija na upit.)
Sofisticiraniji nain prihvatanja upita i pravila koja se koriste moraju biti definisana u
vidu hendlovanja ogranienja procesa. To moe da sadri ogranienja (CPU load, dostupnost
dovoljne memorije i bafer koji e pokrenuti upit) kao i ogranieno samoodravanje podataka
(nedostatak tipova kojima se pristupa).
FRAGMENTI
U adiciji pri pisanju specijalnih rutina u Tel-u, korisnik moe da izazove bilo koju od
ovih ugraenih akcija:
sendrule(event,parameters,action,
sitelist)
sendfragment(fragment,sitelist)
splitfragment(fragment,splitpredicate)
mergefragment(fragment,fragment)
sendquery(query,site)
getfragment(fragment,site)
deliverevent(event,sitelist,arguments)
Send-rule akcija predstavlja mehanizam koji slui da se registruje novo pravilo u bazi
pravila na svim lokacijama koje treba da znaju za njihovo postojanje. Dogaaj i parametri
argumenata specificriaju dogaaj koji je detektovan. Akcioni argument se aktivira pri
detektovanju pravila. Lokacije u listi lokacija mogu da odlue da li da prihvate ili odbiju pravilo,
zavisno odakle potie ili od kriterijuma. Ovo dozvoljava Mariposi da podri lokalnu autonomiju
na svakoj lokaciji u mrei.
19
FRAGMENTI
3.3 Rastegljivost
Set dogaaja su rastegljivi od strane korisnika koji bi dozvoljavali ekspermentisanje sa
drugaijim polisama za procesuiranje upita i urpavljanje distribucijom podataka. Na primer,
korisnik moe da definie mesto za stvaranje dogaaja koje e se aktivirati pri prepunjenju
lokalne memorije. Deo akcije ovog pravila implementira neku polisu koji odreuje koji e se
20
FRAGMENTI
fragment iskoristiti. Ovde je prikazano celo pravilo koje implementira LRU algoritam za zamenu
lokacije sa backupom.
onmakespace()do
endfragment(oldestlocalfragment(),
mybackupsite)
Novi makespace dogaaj e biti dodat, i fragmenti ,kojima se poslednje pristupilo e biti
exportovani dok se lokalna lokacija ne prepuni.
FRAGMENTI
U Mariposi, usluge koji prua sistem pravila su najprikladiniji za politiku koja vodi do
pravila dok jedan ne uspe. Na primer, izvoz fragmenta e uspeti u nekom trenutku to e dovesti
do toga da se izbegne potreba za pokretanje novih pravila za isti rezultat.
Mehanizam pravila u Mariposi implementira jednostavnu emu prioriteta koja
omoguava fiksni broj prioritetnih nivoa. Samo jedno pravilo se moe primeniti na dati objekat
na svakom nivou prioriteta. Mariposa garantuje to odbijanjem da sauva novo pravilo , ako
drugo pravilo na istom nivou prioriteta ve postoji to bi moglo da dovede do sukoba.
4. FRAGMENTI
Kao to je ranije navedeno, svaka Mariposa klasa se sastoji od jednog ili vie fragmenata
22
FRAGMENTI
Metapodatke klase
instance podataka za fragment
sekundarne indeskne vrednosti za fragment
FRAGMENTI
Sistemi baza podataka obino koriste vie od jedne metode identifikacije objekta kao
kompromis izmeu efikasnosti i praktinosti. Fiziki ODI (npr. zapis adrese) omoguavaju brz
pristup ,ali oni ne dozvoljavaju da se zapis preseli poto bi to rezultovalo ponitenju adrese.
Logiki OID (npr. surogati) imaju loe performanse, ak i ako se koristi ha tabela za mapiranje
adresa. Oni omoguavaju da se podaci presele, ali oni obino zahtevaju pristup dva diska, iako u
najboljem sluaju je mogue da se smanji na jedan pristup.
Logian OID moe biti preveden u fiziki pokaziva, ili svizlovan (eng. swizzled),
kako bi dobio na performansama u nekim sluajevima. Ova operacija se obino obavlja od strane
OODMBS (tj. objektno orijentisanih menadera distribuiranih baza podataka), kada se objekat
kree u memoriju sa diska. Nedostaci svizlovanja su smanjenje korisnosti. Svizling nije vredan
ako na taj nain prevazilazi vreme sauvano korienjem brzih pokazivaa. ak i ako se podac
koriste samo za itanje, pokazivai moraju biti modifikovani kroz svizlovanje. Konano,
svizlovani pokazivai moraju biti obrnuto svizlovani prilikom pisanja objekta nazad na disk.
Idealan nain kretanja podtaka fragmenta bi stoga izbegavao (ili odloio ) svizlovanje.
FRAGMENTI
FRAGMENTI
FRAGMENTI
27
FRAGMENTI
28
FRAGMENTI
FRAGMENTI
30
FRAGMENTI
Svi pokazivai stranica mogu ostati kao logiki pokazivai kada migriraju, odnosno oni
ostaju isti, bez obzira na njihovu trenutnu lokaciju za skladitenje i moe koristiti tabelu da bude
ispravno preveden na trenutnu fiziku vrednost. Alternativno, pokazivai mogu biti svizlovani na
mestu i postavljen flag da ukae da li je pokaziva logiki ili fiziki. Tabele za prevod imaju
jasnu prednost u vidu promene vrednosti pokazivaa na samo jednom mestu (ak i ako postoji
vipe pokazivaa) i izbegavanje auriranja na svim stranicama podataka, kako bi se upisaala
vrednost svizlovanih pokazivaa, ali takoe imaju i nedostatak od zahteva dodatnih nivoa
indirektnosti. U daljem radu se dalje uporeuju performanse i sloenost nivoa obe eme.
FRAGMENTI
nema konkurentnost, odnosno nema pristup na fragment dok se pomera, a potez ne moe poeti
dok se ne dobije pristup za ceo fragment.
Trivijalno se moe poboljati algoritam za zakljuavanje po jednostavnom dobijanju
otpisa brave na delovima fragmenta kada oni postanu dostupni. Poto su odeljci zakljuani, oni
mogu da se kopiraju na udaljenoj lokaciji. Kada se ceo fragment kopira, stara kopija moe biti
izbrisana. Ova ema omoguava itanje i pisanje fragmenta koji se javljaju istovremeno sa
kretanjem fragmenta.
Trea alternativa koja dozvoljava jo veu konkurentnost jeste inkrementalna migracija.
Ova ema koristi istu ideju kao i algoritmi za raslanjenje dump fragmenta ili procesne eme
migracije: sistem na zakljuava nikakve podatke. Inkrementalna ema moe biti tee
implementovana ali dozvoljava neogranieno itanje i pisanje starim kopijama fragmenta dok se
kree.
FRAGMENTI
oporavka. Smatra se da je jednostavnije koristiti bez logovani zapis kako bi se kvar lokalno
kontrolisao.
Poto se fragmenti migrirali odjednom u bloku, log mora biti na istoj granuralnosti tako
da se log moe pomerati u vezi sa blokovima podataka. Mariposa e ispitati algoritme za
viestruke verzije koje pretvaraju zapis u umetke, tako da oporavak postane jednostavniji.
33
FRAGMENTI
FRAGMENTI
mehanizam Maripose obrauje parsovane upite, optimizaciju upita i izvravanje upita. Takoe
obraa se panja na Mariposin run-time sistem sa promenama eme.
FRAGMENTI
Pored standardnih problema vezanih za optimizaciju upita, procesor upita Maripose mora
da reava i neke dodatne probleme i ogranienja izazvana distribucijom i mobilnpu fragmenta
podataka. Neki od ovih problema su:
lokacija i procesuiranje podataka ija pozicija nije fiksirana
odabri izmeu pomeranje podataka i pomeranju upita
replikacija
uitavanje memorije heterogeno izmeu raunara
tip/metoda heterogena (nekoegzistentnost ekstenzija biblioteka)
FRAGMENTI
FRAGMENTI
Mariposa optimizer upita sprovodi na hostu prvi optimizaciju koja kompajlira u plan
upita. Pre nego to se izvri, optimizer na hostu paralelizuje rezultat pri prvom prolazu. Za vreme
izvrenja , Mariposa selektuje lokacije na kojima se izvrava svaki proces upita. Lokacije
odluuju da li ele da prihvate ili odbiju odgovornost za upravljanje porcijama upita sa
izvrenjem receive-query pravilo u setu pravila.
Malo detaljnije objanjen algoritam se sastoji od:
1) Kompilacije: Ova faza uzima drvo upita kao svoj ulaz i proizvodi binarni plan upitnog drveta
Host lokacija konstruie lokalno optimalni plan tako to pokree lokalni optimizer upita, i
kalkulie kotanje uzimajui u obzir da su svi podaci lokalno skladiteni na host lokaciji.
2) Paralelizam: Ova faza uzima binarno drvo upita kao ulaz i stvara bez binarno drvo.
3) Lokacija : Ova faza uzima paralelno, nebinarno drvo, distribuira vorove drveta na razliite
Mariposa lokacija i izvrava ti.
5.3.2 Spajanje dve klase
Bazina operacija spajanja je jednostavno dvo-klasno spajanje. Mariposa implementira
obe ugnjedene loopove i haovane metode za spajanje. U oba sluaja, prva faza optimizacije
stvara standardni plan spajanja.
38
FRAGMENTI
Druga faza replicira plan upita koja reflektuje broj fragmenta u svaku klasu u kojoj je
podeljena, i stvara multi way tree. To drvo izgleda drugaije za dve spojene metode kao to je
opisano.
1) Spajanje ugnjedenog loopa
2) Ha spajanje
6. VIESTRUKE KOPIJE
Mariposa podrava promenljivi broj primeraka svakog fragmenta, a gradi se na
konceptima koji se koriste tradicionalno od sisteam datoteka. Kada se blok datoteka premesta sa
diska na glavne memorije, sistem datoteka pravi kopiju bloka u glavnoj memoriji. Disk kopije i
dalje postoji, ali nije mogue pisati. Umesto toga, glavna memorija kopije se moe itati i pisati.
Ako glavna memorija postane prljava u vreme kada je odbaen ke onda sistem datoteka
zamenjuje odgovarajui blok diska, inae odbacuje kopiju glavne memorije. Na ovaj nain,
privremeno kopije blok je konstruisan a zatim odbaen kada ne bude bio potreban.
Kada fragment preselimo iz jednog do drugog, prijemni sajt moe proglasite potez da
bude jedan od tri vrste:
1) Pomeranje poteza podataka
2) Normalna kopija
3) Obnuta kopija
39
FRAGMENTI
7. ZAKLJUAK
U ovom radu prezentovana je arhitektura Maripose, prototip menadmenta podataka koji
objedinjuje najboljle osobine distribuiranih sistema i distribuiranih medaera pretraga. U odnosu
na prethodne distribuirane sisteme, Mariposa upravlja skladitenjem objekta u okruenju koje
obezbeuje veliku mobilnost podataka i visoko heterogenim mogunostima u sistemu koji
obezbeuje visoke performanse. U adiciji, Mariposin sistem skladitenja je baziran na pravilima
i omoguava lokalnu autonomiju lokacija i dodeljuje administratoru lokacija fleksibilnost u
odabiru polica skladitenja.
Mariposa e sluiti kao "radno sto" za analizu algoritama za baze podataka i fajl sistema.
Distribuirana optimizacija upita je prinikla kao podruje koje e dobiti najveu podrku i takoe
je pitanje kako napraviti sistem koji u svom jezgru ima ugraen sistem pravila.
Dalji rad je zamiljen u podrujima sistemske izdrljivosti, distribuiranom povratku od
nepogode i proceni performansi.
40