Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás.

Hasonló előadás


Az előadások a következő témára: "Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás."— Előadás másolata:

1 Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás

2 B+ fa Minden csúcsra: – Maximum n gyerek – Minimum [(n + 1) / 2] gyerek – k gyerekre: k - 1 kulcs Belső csúcsok (nem levél): kulcsok a kereséshez Levél csúcsok: (kulcs – érték) párok, mutató a következő levél csúcsra => intervallumon is gyorsan lehet keresni

3 Probléma ismertetése Adatkezelő rendszerek két fő feladata: Tranzakciók gyors futtatása - néhány elem olvasása/írása Hosszan futó adatelemzések – kimutatások Jelenlegi rendszerek: Egy időben csak egyiket tudják Mindkettőt egy időben nem tudják hatékonyan Adatbázist futtatnak Elemzés: egész adatbázist lementik, ezen futtatják => Nehézkes működés

4 Minuet rendszer felépítése Kliensek: proxikkal kommunikálnak Proxi: Kliens nevében tranzakció Memnode-okkal kommunikál Memnode: Adatok elosztottan Adatok hozzáférése: Sinfonia-n keresztül

5 Sinfonia keretrendszer Memnode-ok adataihoz hozzáférést biztosít Adatok látszólag fix memóriacímeken Minitranzakció Csúcs(ok) olvasása/írása (akár feltételekhez kötve) Hibakezelést végez => tekinthetjük az adatokat helyesnek Két fázisú: – Első fázis: feltételek ellenőrzése, érintett terület zárolása – Feltételek nem teljesülnek: output: melyek nem – Memóriacím zárolva van: újra próba automatikusan – Második fázis: írás/olvasás

6 Dinamikus tranzakció Minitranzakciók: Adatok elérése a levélben nehézkes Bejárt út minden csúcsára zárolás, lekérés => Dinamikus tranzakciókba foglalás Dinamikus tranzakció - két halmaz: olvasási, írási Műveletek: írás, olvasás Olvasás akármelyik halmazból Írás az írási halmazban Adatot nem talál a halmazokban => minitranzakció Tranzakció végén: – Olvasási halmaz elemeit ellenőrzi, nem változtak-e => szekvencia számok a csúcsokra – Írási halmaz összes elemét kiírja Olvasás akármelyik halmazból

7 További javítások Proxik: belső csúcsok cache-elése => elég egyben ellenőrizni (konzisztenciának annyi) Minden memnode-nál: összes belső csúcs szekvencia száma =>helyben lehet ellenőrizni az elérési utat => egy lekérés az egész

8 Dirty read Probléma: (*)-ot olvassuk Közben új értéket beszúrunk (*) nem volt módosítva, de megváltozott a szülője Olvasás sikertelen - pedig helyes lenne Dinamikus tranzakció műveleteihez:Dirty read Csúcs olvasása olvasási halmazba rakás nélkül (így nem kell ellenőrizni, változott-e) Fa bejárása levelek fölötti szintig Dirty read-del Levél olvasása szokásos módon

9 Fence key Probléma 11-es értékre keresünk A-ban keresnénk Azóta B-be került Tranzakció nem fogja megtalálni Megoldás: fence key-k Csúcsokhoz: leszármazott kulcsok alsó és felső határa Csúcs módosul -> fence key-k is Keresett kulcs nincs a csúcs határai között -> sikertelen próba

10 Snapshot Konzisztens pillanatkép a fáról Csúcs legújabb verziója – tip snapshot – módosítható (többi nem) Mindegyik csúcshoz snapshot id (szig. monoton növekvő) Létrehozás: lemásoljuk a gyökeret Csúcs írása: – Csúcs.snapshot_id = tip_snapshot_id => felülírás – Csúcs.snapshot_id  tip_snapshot_id => Másolat Szülő mutatóját módosítani kell => másolás felterjesztése első friss csúcsig Max: előre megadott n db snapshot, ez előttieket töröljük

11 Snapshot borrowing Probléma: snapshot létrehozás Minden memnode-nál frissítjük: – Tip snapshot id-t – Tip snapshot gyökér címét Költséges Javítás: snapshot borrowing Több tranzakció akar egyszerre létrehozni új snapshotot Helyette közösen hoznak létre 1 új snapshotot Megvalósítás: központi szerveren

12 Szerteágazó verziók Minden verzióhoz fővonal: legelső elágazásokat követve az ág vége Alapértelmezésben a fővonal adja meg az olvasási/írási halmaz célját Saját követendő ágat is meg lehet adni külön Snapshot katalógus: minden verzióhoz: – Gyökér címe – Legelső elágazás (ha nincs, akkor NULL) Katalógus levelei: – Összes memnode-nál másolatok – Cache-elés proxiknál

13 Kérdések?

14 Köszönöm a figyelmet!


Letölteni ppt "Minuet: A Scalable Distributed Multiversion B-Tree Írta: Benjamin Sowell, Wojciech Golab, Mehul A. Shah Feldolgozta: Fokin Miklós, Hodosy Gábor, Tóth Tamás."

Hasonló előadás


Google Hirdetések