mariposa novi oblik arhitekture za distribuciju podataka

59
V I S O K A T E H N I Č K A Š K O L A N I Š SEMINARSKI RAD Mariposa: Novi oblik arhitekture za distribuciju podataka Predmet: Distribuirane baze podataka 1

Upload: milan-dordevic

Post on 28-Jan-2016

20 views

Category:

Documents


1 download

DESCRIPTION

Oblik arhitekture za distribuciju podataka

TRANSCRIPT

Page 1: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

V I S O K A T E H N I Č K A Š K O L AN I Š

SEMINARSKI RAD

Mariposa: Novi oblik arhitekture za distribuciju podataka

Predmet: Distribuirane baze podataka

Profesor: Student:dr Borivoje Milošević Milan Đorđević RTs 06/13

1

Page 2: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SADRŽAJ Novi oblik arhitekture za distribuciju podataka

-SADRŽAJ-1. UVOD.....................................................................................................................................- 3 -

2. ZADACI MARIPOSE............................................................................................................- 5 -

3. SISTEM PRAVILA MARIPOSE..........................................................................................- 7 -

3.1 Ugrađeni događaji.............................................................................................................- 7 -

3.2 Ugrađene akcije................................................................................................................- 9 -

3.3 Rastegljivost....................................................................................................................- 10 -

3.4 Sistemsko pravilo za izvršenje........................................................................................- 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

Page 3: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SADRŽAJ Novi oblik arhitekture za distribuciju podataka

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. VIŠESTRUKE KOPIJE.......................................................................................................- 19 -

7. ZAKLJUČAK.......................................................................................................................- 20 -

3

Page 4: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

UVOD Novi oblik arhitekture za distribuciju podataka

1. UVOD

Definicija dizajniranja sistema zvanog Mariposa, koji predstavlja eksperimentalni vid upravljanja distribucijom podataka koji obezbeđuje visoki učinak u oblasti velike mobilnosti podataka i heterogenih mogućnosti hosta. Mariposa objedinjuje pristup koji se uzima pri radu sa distribuiranim fajl sistemima i distribuiranim bazama. Kao takav, omogućuje sveobuhvatnu fleksibilnu platformu za izradu novih algoritama za optimizaciju distribuiranih upita, upravljanje memorijom i skalabilne strukture za čuvanje podataka. Fleksibilnost se primarno koristi za korišćenje veće autonomije koja dozvoljava izvršenje lokalnih naredbi nezavisno od mesta gde se podatak nalazio u memoriji, mesta izvršenja upita i upravljanja memorijom.

Postoje četiri pristupa koij se odnose na upravljanje distribuiranim podacima koji su se istraživali:

distribuirani bazni sistemi klijent-server distribuirani fajl sistemi "deep store" fajl sistemi objektno-orijentisani bazni sistemi

Karakteristike svakog pristupa mogu se sumirati u okviru Slike 1. Prvo, svaki pristup pri istraživanju ima fundamentalnu jedinicu zaduženu 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 kontroliše transfer između jednog mesta u okviru mreže na drugo. Drugo, sva četiri pristupa keširaju podatke sa udaljenih lokacija. Samim time to uslovljava odluke o respektabilnom odnosu u veličini keširanih podataka, trajanje keširanog fajla na nekoj lokaciji, mehanizam za upravljanje keš memorijom i da li se objekti menjaju nakon keširanja. Na kraju, svaki pristup implicitno definiše model za izvršenje upita. Kada se pojavi upit na lokacija A kojoj su potrebni podaci iz lokacije B, postoje dve moguće strategije za izvršenje upita. Podaci sa lokacije B moguće je prebaciti na lokaciju A i tamo se izvrše, 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 važnost arhitekture iz aspekta jednog distribuiranog menadžera podataka, pristupa se istraživanju podataka iz Slike 1. pri primeni na postojeće menadžere distribuiranih sistema podataka.

Slika 1.Alternativne arhitekture za distribuiranje podataka

4

Page 5: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

UVOD Novi oblik arhitekture za distribuciju podataka

Na početku, uzećemo u obzir pristup iz ugla medažersko upravljačih distribuiranih sistema. Nekoliko distribuiranih prototip sistema razvijeni su tokom ranih 1980tih, kao što su R* [WILL81], SDD-1 [BERN81], SIRIUS-DELTA [LITW82], and Distributed INGRES [STON86a].

Gledano sa strane arhitekture, pristup izradi distribuiranih baza je drugačiji u odnosu na neki drugi. Svaki pojedinačni DMBS podrazumeva "bez podele" arhitekturu [STON86b] i poseduje bazičnu filozofiju prenosa upita ka podacima. Kao rezultat, ovi sisitemi alociraju podatke na lokacije koje se nalaze na mreži i ta alokacija ostaje dok god je administrator ne promeni. Samim tim, objekti poseduju fiksnu lokaciju a upiti se "dovode" ka njima kako bi koristili podatke u procesu izrade. Ako se objekat podataka mora premestiti sa razlogom da se udruži, onda se kreira priveremena kopija podataka koja je validna isključivo za vreme trajanja procesa udruživanja. Svi sekundarni indeski se moraju nanovo definisati za te privremene podatke. Nekoliko sistema je predočilo rastavljanje relacija u fragmente čija se kompozicija kontroliše pomoću distribuiranih kriterijumima. Do sada ni jedan sistem nije sveobuhvatno implementovao fragmente, no ipak predstavlja vid jedinice za alokaciju memorije.

Drugi pristup distribuciji je definisan klijen-server fajl sistem pristupom kao što su Andrew [HOWA88] i NFS-orijentisan komercijalni pristup. U takvim sistemima, fajl ( ili više njih) je jedinica za alokaciju memorije i poseduje jedinstvenu lokaciju na nekom serveru. Relativno mali, fiksirani blokovi fajlova se dobavljaju do klijentnog dela pri pristupu, i tako implementuje strategija "premeštanje podataka do upita". Blokovi se keširaju na klijentu dok ne izgube vrednost. Većina fajl sistema implementuju hard kodirani keš menadžer, gde se uglavnom koristi LRU algoritam (least-recently used eng. za najmanje korišćen podatak).

5

Page 6: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

UVOD Novi oblik arhitekture za distribuciju podataka

Treći pristup distribuciji se ogleda u primeni tercijarnih memorija ili "duboko skladištenje" fajl sistema. Sistemi u ovoj kategorijji integrišu Inversion [OLSO93], Highlight [KOHL92], i komercijalni kao što su Epoch [EPOC92] i UniTree [GENE91]. Ovakvi sistemi tipično nude servis za keširanje za tercijalnu memoriju. Neki proizvodi iziskuju da disk keš i "duboko skladištenje" moraju biti na istoj fizičkoj mašini. Međutim, mora da omogući udaljeni pristup uredjaju za tercijarnu memoriju sa tog diska za kešrianje.Na kraju, kao i distribuirani fajl sistemi, "duboko skladištenje" koristi strategiju "pošalji podatke upitu".

Četvrti pristup za distribuciju je implementovan komercijalnom objekto orijentisanom DBMS kao i prototipima za pretragu. Sve to uzima u obzir klijent-server okruženje i kretanje blokova diska između klijenta i servera. Objekti podataka imaju fiksnu poziciju i ovaj sistem implementuje "poašlji podatke ka upitu".

Na Slici 1. se može primetiti da distribuirani fajl sistemi i "duboka skladišta" imaju dosta jednostavnih elemenata. Izuzev velilčine objekta keširanog na klijentskoj strani, ali u suštini izgledaju isto. Oba metoda premeštaju podatke na osnovu želja korisnika (brisanjem i ponovnom kreiranju fajla), keširanje podataka sa hard kodovanim proceduralnim keš menadžerima i pomeranju podataka prema upitu u okviru strageije izvršavanja upita.

Mariposa arhitektura ima karakteristike koje se nalaze u poslednjem redu na Slici 1. Sledeće poglavlje objašnjava motivaciju i zadatke koji stoje iza ove arhitekture.

6

Page 7: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

ZADACI MARIPOSE Novi oblik arhitekture za distribuciju podataka

2. ZADACI MARIPOSE

Fundametnalni zadaci Maripose su ujedinjenje (dosada razjedinjenih) različitih pristupa distribuiranju baza podataka (DBMS), keširanja distribuiranih fajl sistema, "duboko skladištenje" fajl sistema i servera za objekte. Mariposa distribuira podatke preko puteva koji su povezani nekom lokalnom ili širokopojasnom mrežom (LAN/WAN). Svaka lokacija ima uređaj za skladištenje, koju smatramo glavnom memorijom u ovom slučaju, disk ili tercijalna memorija.

Kada se više od jednog uređaja za skladištenje memroije poveže na isti CPU, to uzeći u obzir ovu temu, predstavlja agregaciju dve ili više logičke lokacije Maripose. I ako se smatra da običan korisnik očekuje veliki broj uređaja za skladištenje podataka koji se povezuju na isti CPU, u ovom primeru je to obrnut slučaj razmatrajući sledeće faktore. Prvo, uređaji koji koriste tercijarnu memoriju su veoma spori i skupi. Kao takvi, potrebno je opslužiti svaki takav uređaj (koji se meri cenama sa šest cifara) lično dodeljenim procesorom (čija je cena određeneo sa četiri cifara). Tericjarna memorija može biti na drugoj strani LAN ili brze WAN mreže sa keširanog diska, bez gubljenja u performansama. Kao rezultat, keširanje tercijarne memorije se vrši na udaljenom računaru. Glavna memorija se uglavnom kešira lokalno ali može biti i udaljena. Lokalno keširanje sa jednog na drugi uređaj će zahtevati premeštanje sa jedne Mariposa logičke jedinice na drugu, i ako se nikakv mrežni saobraćaj ne odvija.

Mariposa podržava sledeće modele za podatke. Mariposa sistem se sastoji od instanca objekta u imenovanim klasama, od kojih svaka sadrži atribute za specifične 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 kontrolišu logičku kompoziciju instanci u fragmentu. Fragmenti nemaju specifičnu poziciju i mogu se slobodno kretati kroz mrežu. Alternativno se može reći da fragmenti poseduju trenutnu lokaciju koja se rapidno menja. Primera radi, ako se fragmentu učestalo 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.

Svaka lokacija u Mariposi je lokalno autonomna, što znači da administrator svake lokacije gde se baza nalazi u potpunosti kontroliše skladištenje objekata na toj lokaciji. Administrator to uspeva tako što specifira set pravila koja se primenjuju u tom reonu. Na primer administrator mora da specifira pravila za kontrolu izbacivanja fragmenata sa jedne lookacije ako je memorija preopterećena. Svaka lokacija pojedinačno odlučuje o tome koji se fragmenti izbacuju i gde će se slati.

Pristup Maripose ovim zadacima je da odredi jednu reprezentaciju koju će svaki menadžer memorije da primeni, tzv. kanonsku reprezentaciju i sekundarnu opcionalnu privatnu reprezentaciju. Brzo kretanje fragmenata moguće je ostvariti transferom kanonske reprezentacije sa jednog medadžera memorije na drugi. Sa druge strane, lokalno otimizovana reprezentacija je opcionalna, u kojem slučaju bi se transfer fragmenata oslonio na konverzaciju formata sa privatne strane na kanonsku reprezentaciju i tek nakon toga natrag u format privatne strane.

U Mariposi, moguće je prebaciti fragment sa jedne strane na drugu ili izvršiti keširanje framgenta na nekoj drugoj lokaciji. U ovom slučaju, kopija fragmenta se stvara i Mariposa čuva podatke o broju nastalih kopija. Normalno, potrebno je imati algoritam koji omogućava ažuriranje postojećih kopija, o tome više dalje u radu.

Na kraju, Mariposa ima optimizer upita koji generiše plan za rešavanje upita. Očigledno je da takav servis "boluje" od standardnog problema i to same optimizacije distribuiranih upita kao i drugih otežavajućih faktora.

7

Page 8: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Na početku je bitno naglasiti da ni jedna lokacija ne poseduje globalne informacije o stanju baze podataka. Prethodni sistemi su generalno pretpostavljali (implicitno ili eksplicitno) perfektno poznavanje globalnog znanja o rasporedu podataka, šemama baza podataka i drugih faktora koji su tradicionalni optimizeri baza podatka; raspored podataka je ili statičan ili se sporo menja i korišćenje metapodataka u vidu optimizacije upita ili nije bilo dozovljeno ili se pretpostavljalo da bude element reoptimizacije.

Druga bitna stvar, je sam optimizer koji ima opciju prenosa upita do lokacije gde misli da se podaci nalaze ili obrnut proces. Odabir koja će se strategija koristiti predstavlja odluku optimizacije. I ako je poznato da se samostalni upit optimalno izvršava prenosom upita do podataka, ako optimizer prosudi da je veća verovatnočća da će upit pre biti viđen od strane lokacije, postoji mogućnost da je transfer podatak bolja opcija. Mariposa optimizer uzima u obzir obe opcije.

Treće, ako bi se Mariposa odlučila da prenese podatake do upita, mora da odabere koju će kopiju da prenese ili da odluči da napravi novu kopiju, što dalje dovodi do veće kompleksnosti sistema.

Četvrto, pretpostavlja se da je Mariposa sistem heterogen, tj da poseduje različite brzine, kapacitet i osobine. Na primer, nemoguće je izrvšiti sve operacije na svlik lokacijama zbog limita u kapacitetu memorije. Pored toga,u nadogradivim DBMS okruženju, lokalni DBMS na svakoj lokaciji mogu imati drugačije tipove biblioteka. Puna autonomija lokacije podrazumeva da svaka lokacija može dodati ili ukloniti nove abstraktne podatke, tipove, funkcije, operacije, pristup metodama ili bilo koju drugu sistemsku ekstenzijiu u bilo kom trenutku. Lokacije mogu izvršiti ovo bez konsultovanja ili notifikacije drugih lokacija. Moguće je implementirati

8

Page 9: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

mehanizme koji omogućavaju prostiranje definicija i metoda na svakom mestu na korisničko transparentan način. Međutim, takvi mehanizmi moraju biti sposobni da se nose sa određenim razlikama u arhitekturi mašine i sistemnskg softvera. Superračunari moraju da "egzistiraju" na različitim pojediničanim mašinama da bi radili bez problema. I na kraju, najbitnija stavka, potreba lokacija za širenjem (kako bi sve lokacije bile u mogućnosti da odrade bilo koji deo upita) ruši tezu o autonomiji, što povlači direktno pitanje o mogućnosti 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 veće mobilnosti podataka3. optimizer upita i mehanizam za izvršenje istih4. dozvoljava multipliciranje kopija za ovo okruženje

9

Page 10: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

3. SISTEM PRAVILA MARIPOSE

Mariposa poseduje podsistem za procesuiranje upita baziran na setu pravila, koji takođe služi za upravljanje alokacijom memorije i obezbeđuje rezoluciju imenovanja. Svaka Mariposa lokacija se upravlja od strane menadžera pravila. Posmatra kada se u sistemu pojave događaji koji su od interesa i kada se isti detektuje, nad njima se primenjuje određeni set akcija za tu vrstu događaja. To se postiže korišćenjem procesora pravila koji kontroliše te funckije. Mariposa omogućuje jednostavno eksperimentisanje sa različitim polisama. Konvencionalno procesuiranje upita i upravljanja fajlova kompajliraju polise u sistem, što otežava izmenu u sistemu ako se nešto želi izmeniti kasnije. Mariposa dozvoljava dinamičnu promenu procesuiranja i stragetija alokacija bilo gde u mreži i na bilo koj lokaciji. Potrebno je da administrator omogući polisu.

Mariposa koristi produktivni sistem pravila u kojoj je svako pravilo u formi:

vidi događaj uradi akciju (on event do action).

Događaji se dopremaju do sistema pravila uz pomoć menadžera lokacija, procesora upita ili drugih spoljašnjih agenta. Ako se događaj prepozna, njegova akcija se izvrši. I događaj i akcija zauzimaju određeni broj parametara, kao što je prikazano u donjem delu rada, koji mogu biti preneti na druge događaje i akcije ili mogu biti iskorišćene za izvršenje kondicionalnih akcija.

3.1 Ugrađeni događaji

Mariposa poseduje sledeće ugrađene događaje:

Discover-class događaj se aktivira kada je potrebno da se negde u okviru sistema za procesuiranje upita pronađe informacija o nekoj klasi u bazi podataka.

Na primer: discover-class (EMP),

vraća metapodatke za klasu EMP, tako da procesor upita može da formuliše plan koji će zadovoljiti upit korisnika vezanog za EMP. Metapodaci uključuju šemu klase, listu fragmenta koji sačinjavaju klasu i pretpostavljenu lokaciju svakog fragmenta. Metapodaci koji budu vraćeni mogu da budu istekli. U tom slučaju, korišćenje tih podatak će rezultovati neuspelom akcijom i novi upit za otkrivanje trenutnih podataka će biti poslat.

10

discover-class(class)discover-fragment(fragment)export-fragment(fragment)import-fragment(fragment)receive-rule(event, parameters, action, site)receive-query(query, site)receive-fragment(fragment, site)receive-event(event, site, arguments)

Page 11: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Sledeća pravila služe za definisanje lokacije klase:

Ova pravila imaju sledeći efekat: Zahtev za metapodatke klase EMP uvek idu mašini koja je big-server, tj veliki server. Za sve ostale klase, pretražuju se lokalne klase da se vidi da li je klasa smeštena lokalno. Ako je to slučaj, metapodaci se nalaze na toj lokaciji, u suprotnom, zahtev se šalje dalje centralnom serveru imena.

Prvi set pravila implementuje centralizovani servis imena. Drugi koristi eksplicinte informacije o načinu distribucije baze podataka da bi upravljao EMP klasom. Druga pravila je moguće programirati radi implementacije drugih imenskih servisa.

on discover-class (*) doif (islocal($1)) then

return(local-lookup($1))else

return(deliver-event(discover-class, nameserver, $1))

on discover-class (EMP) doreturn(deliver-event(discover-class,

big-server, EMP))

11

Page 12: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Događaji

mogu da se koriste za implementaciju imenskog servisa radi kontrolisanja lokacije imenovanog fragmenta. Događaj discover-fragment funkcioniše isto kao i za klase, import-fragment i export-fragment događaji kontrolišu skladištenje 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:

Malo sofisticiranije pravilo:

discover-fragment(fragment)export-fragment(fragment)import-fragment(fragment)

on export-fragment(fragment) dosend-fragment($1, my-back-up)

on export-fragment(fragment) doif size($1) < 1000

send-fragment($1, my-small-back-up)else

send-fragment($1, my-large-back-up)

12

Page 13: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Događaj

se aktivira kada god se neka lokacija, nezavisno od toga da li je lokalna ili udaljena, želi da definiše pravilo na lokalnoj lokaciji. Ovaj događaj dozvoljava administratoru Maripose na lokalnoj lokaciji da kontroliše nivo lokalne autonomije. Prva tri parametra su korespodentna delovima pravila koja se žele primeniti, parametar lokacije je ime lokacije koja želi da definiše novo pravilo.

Događaj receive-query je automatski aktiviran kada neka druga lokacija želi da pošalje upit lokalnoj lokaciji. Akcioni deo događaja nebitno da li je upit procesuiran na licu mesta ili prosleđen dalje na drugu lokaciju.

receive-rule(event, parameters, action, site)

13

Page 14: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Na primeru, pravilo:

koje aranžira upite koji se izvršavaju na lokacijama koje sadrže podatke. ( U ovom primeru, funkcija lokacija podataka nekog fragmenta koji se referencija na upit.)

Sofisticiraniji način prihvatanja upita i pravila koja se koriste moraju biti definisana u vidu hendlovanja ograničenja procesa. To može da sadrži ograničenja (CPU load, dostupnost dovoljne memorije i bafer koji će pokrenuti upit) kao i ograničeno samoodržavanje podataka (nedostatak tipova kojima se pristupa).

3.2 Ugrađene akcije

U adiciji pri pisanju specijalnih rutina u Tel-u, korisnik može da izazove bilo koju od ovih ugrađenih akcija:

on receive-query (*, *) doif (data-is-local($1)) then

return(execute($1))else

return(send-query($1, data-site($1))

send-rule(event, parameters, action,site-list)

send-fragment(fragment, site-list)split-fragment(fragment, split-predicate)merge-fragment(fragment, fragment)send-query(query, site)get-fragment(fragment, site)deliver-event(event, site-list, arguments)

14

Page 15: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Send-rule akcija predstavlja mehanizam koji služi da se registruje novo pravilo u bazi pravila na svim lokacijama koje treba da znaju za njihovo postojanje. Događaj i parametri argumenata specificriaju događaj koji je detektovan. Akcioni argument se aktivira pri detektovanju pravila. Lokacije u listi lokacija mogu da odluče da li da prihvate ili odbiju pravilo, zavisno odakle potiče ili od kriterijuma. Ovo dozvoljava Mariposi da podrži lokalnu autonomiju na svakoj lokaciji u mreži.

15

Page 16: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

Send-fragment akcija pokušava da eksportuje fragment do svake lokacije u lokaciji lista. Pošto ni jedna lokacija nije u obavezi da prihvati fragment, neuspeh na jednoj lokaciji prouzrokuje pokušaj na drugu. Jednom kada se desi da je fragment prihvaćen od strane neke lokacije na listi, akcija se prekida. Ako ni jedna lokacija ne prihvati fragment, onda je ona neuspela; drugi koraci se moraju primeniti kako bi se izgubio fragment.

Send-query akcija dostavlja upit imenovanoj lokaciji gde se izvršava. Lokacija može ponovo da odbije akciju. Međutim, pre će da prosledi upit dalje ako ne želi da se izvrši.

Get-fragment akcija kontaktira imenovanu lokaciju i pitaju da predaju imenovani fragment. Ova lokacija može ali i ne mora da dostavi fragment.

Deliver-event akcija dostavlja imenovani događaj do svake lokacije u listi lokacija. Ovo je tehnika koja se koristi u Mariposi da bi se kooperativno distribuiralo računanje; jedna lokacija traži od druge da odradi neki posao u njeno ime. Ovaj mehanizam je sličan udaljenoj proceduri servisa poziva.

3.3 Rastegljivost

Set događaja su rastegljivi od strane korisnika koji bi dozvoljavali ekspermentisanje sa drugačijim polisama za procesuiranje upita i urpavljanje distribucijom podataka. Na primer, korisnik može da definiše mesto za stvaranje događaja koje će se aktivirati pri prepunjenju lokalne memorije. Deo akcije ovog pravila implementira neku polisu koji određuje koji će se

16

Page 17: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

fragment iskoristiti. Ovde je prikazano celo pravilo koje implementira LRU algoritam za zamenu lokacije sa backupom.

Novi makespace događaj će biti dodat, i fragmenti ,kojima se poslednje pristupilo će biti exportovani dok se lokalna lokacija ne prepuni.

3.4 Sistemsko pravilo za izvršenje

Mariposa je dizajnirana na takav načina na omogućava individualnim lokacijama u mreži da biraju nivo autonomije koju žele da dobiju. Lokacija može da izazove striktnu lokalnu autonomiju tako što će odbiti definisanje pravila od strane neke udaljene lokacije, već će to pravo zadržati samo za lokalne lokacije. Alternativno, lokacija može dopustiti udaljenim lokacijama da pune bazu pravila novim pravilima.

Moguće je da više pravila budu dodeljena iz baze pravila u bilo kom trenutku. Na primer, mogu biti dva različita pravila koja mogu biti akitivrana kada se fragment želi exportovati. Sledeće strategije su dostupne u takvim situacijama:

on makespace() doend-fragment(oldest-local-fragment(),

my-back-up-site)

17

Page 18: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

SISTEM PRAVILA MARIPOSE Novi oblik arhitekture za distribuciju podataka

pokretanje nasumično odabranih pravila dok jedno ne uspe pokretanje svih važećih polisa nasumično pokretanje pravila po prioritetu dok jedno ne uspe pokretanje svih pravila po prioritetu

U Mariposi, usluge koji pruža 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 omogućava fiksni broj prioritetnih nivoa. Samo jedno pravilo se može primeniti na dati objekat na svakom nivou prioriteta. Mariposa garantuje to odbijanjem da sačuva novo pravilo , ako drugo pravilo na istom nivou prioriteta već postoji što bi moglo da dovede do sukoba.

18

Page 19: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

4. FRAGMENTI

Kao što je ranije navedeno, svaka Mariposa klasa se sastoji od jednog ili više fragmenata od kojih svaki sadrži:

Metapodatke klase instance podataka za fragment sekundarne indeskne vrednosti za fragment

Fragment je potpuno samo-opisujući tako da se može pomerati od lokacije do lokacijebez zavisnosti. Dakle, svi indeski su evidentiarni i skladište se sa sve podacima fragmenta.

U ovo delu će se objasniti kako Mariposa sprovodi operacije na fragmente i kako ih implementira na način koji omogućava brzu i efikasnu migraciju. Međutim, pre nego što se to uradi, mora se razgovarati o nekim pitanjima koja su uključena u identifikovanje objekta podataka i njihov uticaj na efikasnost pristupa takvim objektima.

Svaki Mariposa fragment ima jedinstveni identifikacioni fragment (FID). Podela ili ujedinjenje fragmenata proizvodi nove FID-ove za nastale fragmente. Svaki fragment zapisuje, kao deo svgo metapodatka FID koji opisuje njegovo poreklo (što predstavlja istoriju podela). Operacija cepanja kombinuje informacije iz porekla fragmenata koji su bili spojeni.

Svaka instacna klase je identifikovana po svom rekordnom identifikatoru (RID) koji je jedinstven u okviru svakog fragmenta. Pored toga, svaka klasa ima identifikator klase (CID). Trojka (CID, FID, RID) je globalno jedinstvena i predstavlja Mariposin identifikator objekta (OID).

Sistemi baza podataka obično koriste više od jedne metode identifikacije objekta kao kompromis između efikasnosti i praktičnosti. Fizički ODI (npr. zapis adrese) omogućavaju brz pristup ,ali oni ne dozvoljavaju da se zapis preseli pošto bi to rezultovalo poništenju adrese. Logički OID (npr. surogati) imaju loše performanse, čak i ako se koristi haš tabela za mapiranje adresa. Oni omogućavaju da se podaci presele, ali oni obično zahtevaju pristup dva diska, iako u najboljem slučaju je moguće da se smanji na jedan pristup.

Logičan OID može biti preveden u fizički pokazivač, ili svizlovan (eng. swizzled), kako bi dobio na performansama u nekim slučajevima. Ova operacija se obično obavlja od strane OODMBS (tj. objektno orijentisanih menadžera distribuiranih baza podataka), kada se objekat kreće u memoriju sa diska. Nedostaci svizlovanja su smanjenje korisnosti. Svizling nije vredan ako na taj način prevazilazi vreme sačuvano korišćenjem brzih pokazivača. Čak i ako se podac koriste samo za čitanje, pokazivači moraju biti modifikovani kroz svizlovanje. Konačno, svizlovani pokazivači moraju biti obrnuto svizlovani prilikom pisanja objekta nazad na disk. Idealan način kretanja podtaka fragmenta bi stoga izbegavao (ili odložio ) svizlovanje.

4.1 Lokacija fragmenta

Mariposa locira fragment i metapodatke pomoću direkiva programiranih u jeziku pravila Maripose. Iako je moguće da se sprovede globalni server imena za celu mrežu, očekuje se da svaki sajt čuva neku količinu dodatnih metapodataka i onda se osloni na inteligentu pretragu da bi pronašli informaciju koja nedostaje.

19

Page 20: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

Kada sajt dobije fragment, on je odgovaran za skladištenje metapodataka u kolekciji lokalnih sistema kataloga koji se može efikasno pretraživati po sistemu lokalnih pravila. Ovi katalozi sadrže sledeće informacije:

opis fragmenta informacije indeska informacije zaštite ograničenja integriteta

Dok fragment ostaje na lokaciji, odgovornost lokacije je da obezbedi da je lokalna kopija metapodataka fragmenta tačna. Kada framgnet napusti lokaciju, on ima mogućnost odbacivanja svoje kopije metapodataka. Lokacija može da sadrži metapodatke za objekte koje više ne čuva, ali moraju da shvate da bi ta informacija postala zastarela.Dakle, deo pravila za registrovanje novo-primljeni fragmenta izgleda ovako:

Slično tome, lokacija može da obeleži metapodatke fragmenta koji ih izvozi kao potencijalno zastarele na sledeći način:

on import-fragment(fragment) doupdate-local-catalog($1)

on export-fragment(fragment) doset-forwarding-local-catalog($1)20

Page 21: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

4.2 Migracija fragmenta

Efikansna migracija fragmenta je centralni deo performansi celog sistema na isti način kao što je upravljanje baferom izuzetno važno za konvencionalni sistem baze podataka. Fragmenti se izvoze sa lokacije ako je skladište prepuno ili ako se administrator pozove na pravilo za izvoz (npr. pre isključenja noda). Fragmenti se uvoze ako optimizer upita koristi "prebaci podatke do upita" stragegiju. Obe akcije su programirane koristeći jezik pravila Maripose. Kao što je ranije napomenuto, fragmenti mogu migrirati u bilo koje vreme i bez dozvole se mogu dodeliti odluke za skladištenje.

Jednostavan način za migriranje fragmenata je da prvo isključite sve aktivnosti u njemu tako da ne postoje delovi fragmenta koji su zaključani ili zablokirani.Međutim, čeka dok se sve aktivnosti ne raspitaju za fragmenat pošto će ozbiljno ometati sposobnosti menadžear skladištenja da dinamički dodeljuje prostor. Stoga je razvijen algoritam koji omogućava kretanje fragmenata koji se ne raspitaju. Uklonjena su ograničenja što omgućava svim fragmentima da ostanu celi, tako da menadžer skladištenja može podeliti fragment u bilo koje vreme ako fragment postane preveliki. Dobijenim dvema ili više fragmenta može se nezavisno pristupiti i migrirati. Sve operacije na nivou skladištenja, kao što su podela, stapanje i migracija su transaprentne na nivou aplikacije.

21

Page 22: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

Postoje dva dodatna problema koja se moraju prevazići tokom migracije fragmenta: pretvaranje reprezentacije podataka fragmenta i migracija fragmenta tokom ažuriranja.

22

Page 23: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

4.2.1 Kanonsko predstavljanje podataka kod Maripose

Fragmenti se konvertuju u kanonsku reprezentaciju Maripose (MCR) tokom migracije između lokacija. MCR je zajedničko predstavljanje koje dozvoljava migracije između heterogenih lokacija. Svaka lokacija u Mariposi prepoznaje kolekciju registrovanih baznih tipova podataka kako bi lokacija mogla da konvertuje u i iz MCRa. Kada se definišu novi tipovi podataka, onaj ko definiše mora navesti funkciju za izvoz i uvoz kao deo procesa registracije za obavljanje konverzije. Migrator izvoza poziva podatke funkcije za izvoz koji služe za konverziju zapisa u MCR formatu dok migrator uvoza poziva funkcije za uvoz. Brojne optimizacije su moguće. Na primer, moguće je da se usvoji "prijemnik dobija pravo" stil konverzije da iskoristi konfiguraciju koja će verovatno postojati u homogenim sistemima.

Pretvaranje zapisa može da dovede do promene veličine stranice ako konvertovanje evidencije ne zauzmu sav unutrašnji slobodan prostor.Dakle, ako izvoz ne menja dužinu svih zapisa, onda se blokovi mogu pročitati i efikasno prebaciti na mrežu. Slično tome, ako uvoz ne promeni rekordne dužine onda stranice u MCR formatu mogu biti direktno sačuvane na uređaju primaoca.

Indeksi predstavljaju poseban problem, jer pokazivači u indesku su identifikatori fizičkog zapisa. Na ciljanom sistemu ovi pokazivači mogu biti nevažeći. Sledeći deo pokazuje kako Mariposa efikasno održava indekse u toku migracija.

23

Page 24: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

Slika 2. Table za prevod kod migracije lokacija

4.2.2 Konverzija indeksa

Svaki fragment u Mariposi je povezan sa tabelom za prevođenje koja služi za prevođenje logičkih pokazivača stranica na stvarne adrese. Kada se kreira fragment ili se migrira tablica za prevođenje je puna fizičkim adresama za svaku stranicu. Ova tabela se koristi za lociranje pojedinačne stranice tj da li su u memoriji, na disku ili čak još nisu primljene sa mreže. Ova

24

Page 25: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

tehnika se razlikuje od svizlovanja pokazivača gde su pokazivači modifikovani na mestu. Tabele za prevod su fleksibilnije nego svizlovanje pošto oni mogu biti popunjeni potražnjom i izbegava trošak ponovnog svizlovanja ako se fragment pomera, spoji ili razdvoji.

Koristi se strategija dva nivoa pokazivača stranica i pokazivača rezultata.RID se sastoji od stranice i broja rezultata koji se pojedinačno prevode pri migriranju fragmenta. Svi pokazivači stranica koriste lokalnu tabelu prevoda kako bi pronašli stranicu i zatim iskoristili informaciju skladištenu na toj stranici kako bi dobili ofset bajta rezultata.

Na slici 2 prikazani su sadržaji tabela za prevod koji omogućavaju konverziju između logičkih pokazivača stranica i stvarnog pokazivača stranica pri slanju i primanju hosta.

25

Page 26: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

Svi pokazivači stranica mogu ostati kao logički pokazivači kada migriraju, odnosno oni ostaju isti, bez obzira na njihovu trenutnu lokaciju za skladištenje i može koristiti tabelu da bude ispravno preveden na trenutnu fizičku vrednost. Alternativno, pokazivači mogu biti svizlovani na mestu i postavljen flag da ukaže da li je pokazivač logički ili fizički. Tabele za prevod imaju jasnu prednost u vidu promene vrednosti pokazivača na samo jednom mestu (čak i ako postoji vipe pokazivača) i izbegavanje ažuriranja na svim stranicama podataka, kako bi se upisaala vrednost svizlovanih pokazivača, ali takođe imaju i nedostatak od zahteva dodatnih nivoa indirektnosti. U daljem radu se dalje upoređuju performanse i složenost nivoa obe šeme.

4.3 Migracija kada je aktivno

Cilj Maripose je da omogući migraciju u svakom trenutku što znači da se fragment seli čak i dok se istovremeno ažurira drugačija transakcija. Ukoliko konzervativna politika zahteva totalno mirovanje pre migracije njega moć migracije će biti enormno smanjena.

Postoji veliki broj alternativa za sprovodjenje pokretnog fragmenta, svaka dozvoljava različite stepene konkurentnosti i slobode kretanja. Posmatramo tri alternative jednostavnog zaključavanja: zaključavanje presekom, sekciono zaključavanje i inkrementalna migracija.

Najjednostavniji mogući metod za kretanje fragmenta sastoji se od čekanja sve dok se sav pristup na fragment na završi i zatim izvođenje celog kretanja. Jedan jedva dobija ključ-pisanje za celi fragment, kopira na novoj skladištenoj lokaciji, a zatim briše kopiju na staroj lokaciji za skladištenje. Ovaj metod se veoma lako implementira ali ne dozvoljava konkurentnost, odnosno

26

Page 27: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

nema konkurentnost, odnosno nema pristup na fragment dok se pomera, a potez ne može početi dok se ne dobije pristup za ceo fragment.

Trivijalno se može poboljšati algoritam za zaključavanje po jednostavnom dobijanju otpisa brave na delovima fragmenta kada oni postanu dostupni. Pošto su odeljci zaključani, oni mogu da se kopiraju na udaljenoj lokaciji. Kada se ceo fragment kopira, stara kopija može biti izbrisana. Ova šema omogućava čitanje i pisanje fragmenta koji se javljaju istovremeno sa kretanjem fragmenta.

Treća alternativa koja dozvoljava još veću konkurentnost jeste inkrementalna migracija. Ova šema koristi istu ideju kao i algoritmi za rasčlanjenje dump fragmenta ili procesne šeme migracije: sistem na zaključava nikakve podatke. Inkrementalna šema može biti teže implementovana ali dozvoljava neograničeno čitanje i pisanje starim kopijama fragmenta dok se kreće.

4.4 Migracioni logovi

Dok se podaci mogu slobodno kretati, podrška aktivnih transakcija je problematičnije. Konvencionalne baze podataka koriste logove koji se upisuju unapred kako bi održali potrebne informacije za poništavanje ili redo update baze ako se desi neki kvar. Fragmenti može biti pomeran inkrementalno do novog noda i pošto je kod distribuirane sistema podataka svaki čvor individualno podešen tako se i kvare, dešava se period kada se ažuriranje dešavaju na dva čvora istovremeno. Više ažuriranja na isti logični fragment može dovesti do znatno komplikovanog

27

Page 28: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

oporavka. Smatra se da je jednostavnije koristiti bez logovani zapis kako bi se kvar lokalno kontrolisao.

Pošto se fragmenti migrirali odjednom u bloku, log mora biti na istoj granuralnosti tako da se log može pomerati u vezi sa blokovima podataka. Mariposa će ispitati algoritme za višestruke verzije koje pretvaraju zapis u umetke, tako da oporavak postane jednostavniji.

28

Page 29: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

4.5 Poreklo fragmenta

Fragmenti se mogu rekurzivno podeliti u manje fragmente, kao odgovor na promene konfugiracije sistema ili upita obrasca izvršenja. Kako bi izazvali podelu fragmenta, pravilo akcije se mora primeniti: split_fragment($1, split-predicate), gde split_fragment određuje na koliko se fragmenta deli. Na primer, fragment može biti podeljen u opsezima atributa na osnovu vrednosti atributa ili može biti podeljen u skladu sa nekim haš particionisanju šema. Fragmentacija prati Mariposu i omogućava da se sve odluke odviju lokalno.

Nakon deljenja fragmenta, važno je da se delovi fragmenta kasnije spoje u originalni fragment ako je to potrebno. Informacija porekla fragmenta čuva istoriju za svaku podelu fragmenta i naknadnog spajanja tako da se operacija može da obavlja na drugoj lokaciji u odnosu na onoj na kome se podelio fragment. Poreklo podele fragmenta je logički u obliku drveta ali može biti reprezentovano kao jednostavan log koji je povezan za svaki fragment pošto svaki fragment ima informacije samo o roditelju i neposrednom detetu fragmenta.

29

Page 30: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

PROCESOR UPITA MARIPOSE Novi oblik arhitekture za distribuciju podataka

5. PROCESOR UPITA MARIPOSE

Da bi zadovoljili zahteve za autonomiju lokacije i potpuno distribuiranog računanja, uzima se novi pristup za optimizaciju i obradu upita. Mi opisujemo, korak po korak, dok mehanizam Maripose obrađuje parsovane upite, optimizaciju upita i izvršavanje upita. Takođe obraća se pažnja na Mariposin run-time sistem sa promenama šeme.

5.1 Parsovanje upita

Posmatra se sledeći model za parosvanje upita i inicijalnog procesuiranje upita. Upit se dostavlja Mariposi od stran korisnika ili lokacije. Ta lokacija postaje home lokacija za upit, koja je odgovorna kako za parsovanje upita i vraćanju odgovora korisniku.

Kako bi parsovao upit, parser mora pronaći metapodatak za svaku C klasu koja je referencirana u upitu. Procesor upita na parsiranoj lokaciji iznuđuje događaj:

u skupu pravila za svaki C, i sistem pravila vraća ma kakve metapodatke koje može da dobije od C pomoću mehanizama opisanih u sekciji 4.2.

Generalno, informacija koja se dobija za sve fragmente svih klasa može biti nevažeća. To uključuje i trenutnu lokaciju fragmenta, šemu klasa i statistiku svih klasa, što vrši kritičan uticaj na optimizaciju upita.

5.2 Problemi kod optimizacije upita

Pored standardnih problema vezanih za optimizaciju upita, procesor upita Maripose mora da rešava i neke dodatne probleme i ograničenja izazvana distribucijom i mobilnpću fragmenta podataka. Neki od ovih problema su:

lokacija i procesuiranje podataka čija pozicija nije fiksirana odabri između pomeranje podataka i pomeranju upita replikacija učitavanje memorije heterogeno između računara tip/metoda heterogena (nekoegzistentnost ekstenzija biblioteka)

5.3 Strategija procesuiranja upita

Optimizer upita kod Maripose i sistemi za procesuiranje upita moraju da se izvršavaju u opisanim granicama. Konvencionalni pristup otimizaciji upita nema dovoljnu fleksibilnost koja je potrebna za izvršenje što dovodi do uvođenja nove arhitekture procesuiranja upita.

Tradicionalna optimizacija upita bazairana je na koštanju, što obuhvata skoro sve optimizere kod komercijalnih produkta, takođe je bazirana i na osnovu potrošenih resursa i algoritmima koji se dinamički i eksponencionalno izvršavaju. Prvo, eksponencionalna kompleksnost pretrage čini da su ovi optimizeri nepraktični u velikim distribuiranim bazama podataka. Drugo, planovi generisani ovakvih otpimizerima eksplicitno definišu poziciju svakog podataka na fragmentu kome može da se pristupi i domaćina na kome se izvršava svaka operacija nad upitom. Pošto se podaci mogu slobodno kretati u Mariposi, reoptimizacija bi bila veoma skupa.

30

discover-class(C)

Page 31: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

Kako bi se smanjila senzitivnost procesa optimizacije, Mariposa dozvoljava pristup konvencionalnim faktorima optimizacije (red ulaza) odvojeno od distribuiranih faktora (kao što su izgled podataka i lokacija izvršenja). Algoritam u Mariposi je multi procesni algortiam.

5.3.1 Optimizacija u tri faze

Bazični pristup je generisanje planova upita za vreme kompajliranja nezavisno od trenutne lokacije podataka, i napraviti odluku u zavisnosti od nivoa paralelnih izvršenja, kretanja podataka i izvršenja samih upita za vreme samog izvršenja. I ako inicijalno korišćenje "single-lokacije" optimizacija je većinom generisala neoptimalne planove, kao što je navedenu u (MACK86), veruje se da su druge strategije nepraktične u ovom okruženju. Druge strategije iziskuju arbitarno veću količinu informacija o trenutnoj poziciji podatak i konsituciji fragmenta na globalnom nivou.

Termin LOKACIJA je vezana za mahenizam za procesuiranje upita u Mariposi na jednom računaru. Termini kao što su PLAN UPITA i DRVO UPITA se koriste neizmenično. Kao kod mnogih sistema za procesuiranje upita , Maiposa implementira planove za izvršenje upita kao drveće ili čvorove korespodentno setu operacija (skeniranje, udruženje). Drveće može biti razdeljeno na poddrveće, od kojih svaki opisuje izvršenje porciju originalnog upita (podupita). Drveće se može enkapsulirati za transmisiju između hostova.

Mariposa optimizer upita sprovodi na hostu prvi optimizaciju koja kompajlira u plan upita. Pre nego što se izvrši, optimizer na hostu paralelizuje rezultat pri prvom prolazu. Za vreme izvršenja , Mariposa selektuje lokacije na kojima se izvršava svaki proces upita. Lokacije

31

Page 32: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

odlučuju da li žele da prihvate ili odbiju odgovornost za upravljanje porcijama upita sa izvršenjem receive-query pravilo u setu pravila.

Malo detaljnije objašnjen algoritam se sastoji od:

1) Kompilacije: Ova faza uzima drvo upita kao svoj ulaz i proizvodi binarni plan upitnog drvetaHost lokacija konstruiše lokalno optimalni plan tako što pokreće lokalni optimizer upita, i kalkuliše koštanje uzimajući u obzir da su svi podaci lokalno skladišteni 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 različite Mariposa lokacija i izvršava ti.

5.3.2 Spajanje dve klase

Bazična operacija spajanja je jednostavno dvo-klasno spajanje. Mariposa implementira obe ugnježdene loopove i hašovane metode za spajanje. U oba slučaja, prva faza optimizacije stvara standardni plan spajanja.

Druga faza replicira plan upita koja reflektuje broj fragmenta u svaku klasu u kojoj je podeljena, i stvara multi way tree. To drvo izgleda drugačije za dve spojene metode kao što je opisano.1) Spajanje ugnježdenog loopa

32

Page 33: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

FRAGMENTI Novi oblik arhitekture za distribuciju podataka

2) Haš spajanje

33

Page 34: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

VIŠESTRUKE KOPIJE Novi oblik arhitekture za distribuciju podataka

6. VIŠESTRUKE KOPIJE

Mariposa podržava 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 moguće pisati. Umesto toga, glavna memorija kopije se može čitati i pisati. Ako glavna memorija postane prljava u vreme kada je odbačen keš onda sistem datoteka zamenjuje odgovarajući blok diska, inače odbacuje kopiju glavne memorije. Na ovaj način, privremeno kopije blok je konstruisan a zatim odbačen kada ne bude bio potreban.

Kada fragment preselimo iz jednog do drugog, prijemni sajt može proglasite potez da bude jedan od tri vrste:

1) Pomeranje poteza podataka2) Normalna kopija3) Obnuta kopija

34

Page 35: Mariposa Novi Oblik Arhitekture Za Distribuciju Podataka

ZAKLJUČAK Novi oblik arhitekture za distribuciju podataka

7. ZAKLJUČAK

U ovom radu prezentovana je arhitektura Maripose, prototip menadžmenta podataka koji objedinjuje najboljle osobine distribuiranih sistema i distribuiranih medažera pretraga. U odnosu na prethodne distribuirane sisteme, Mariposa upravlja skladištenjem objekta u okruženju koje obezbeđuje veliku mobilnost podataka i visoko heterogenim mogućnostima u sistemu koji obezbeđuje visoke performanse. U adiciji, Mariposin sistem skladištenja je baziran na pravilima i omogućava lokalnu autonomiju lokacija i dodeljuje administratoru lokacija fleksibilnost u odabiru polica skladištenja.

Mariposa će služiti kao "radno sto" za analizu algoritama za baze podataka i fajl sistema. Distribuirana optimizacija upita je prinikla kao područje koje će dobiti najveću podršku i takođe je pitanje kako napraviti sistem koji u svom jezgru ima ugrađen sistem pravila.

Dalji rad je zamišljen u područjima sistemske izdržljivosti, distribuiranom povratku od nepogode i proceni performansi.

35