Adatbzisrendszerek elmleti alapjai 6 elads Osztott adatbzisok Osztott
Adatbázisrendszerek elméleti alapjai 6. előadás Osztott adatbázisok
Osztott adatbázisok Bevezetés Architektúrák Darabolás (fragmentálás) Sokszorosítás (replikálás) 2 PC (Kétfázisú commit protokoll) Globális és lokális zárkezelés 6. előadás 2
Bevezetés Elosztott számítás ◦ Autonóm számítási egységek összessége, melyek egy hálózatba vannak kötve, és egy közös feladat ellátásában működnek együtt. 6. előadás 3
Miért? Rendelkezésre állás több helyen ◦ Cég több telephellyel Megbízhatóság Válaszidő csökkentése Skálázhatóság 6. előadás 4
Mit osszunk el? Számítás logikája Ellátott funkciók Adat Vezérlés 6. előadás 5
Elosztott adatbázis Több, logikailag kölcsönösen összefüggő adatbázis gyűjteménye Számítógépes hálózat köti össze 6. előadás 6
Elosztott adatbázisrendszer Distributed DBMS Szoftverrendszer Elosztott adatbázist kezel Elosztottságot elrejti a felhasználó elől 6. előadás 7
Adatok kézbesítése Kézbesítés módja ◦ Pull-only, push-only, hibrid Gyakoriság ◦ Periodikus, feltételes, szabálytalan (ad-hoc) Módszer ◦ Unicast, one-to-many 6. előadás 8
Előnyök Elosztott adatok átlátszó kezelése Elosztott tranzakciók Nagyobb teljesítmény Könnyű bővíthetőség (skálázhatóság) 6. előadás 9
Átlátszóság fajtái Adatfüggetlenség ◦ Logikai ◦ Fizikai Hálózati átlátszóság ◦ Elhelyezkedési átlátszóság ◦ Elnevezési átlátszóság Sokszorosítás átlátszósága Fragmentáció átlátszósága 6. előadás 10
Átlátszóság helye DDBMS-ben Hozzáférési rétegen Operációs rendszerben 6. előadás 11
Tervezési problémák Elosztás ◦ Partícionálás ◦ Replikáció Teljesen vagy parciálisan replikált Könyvtárak kezelése Lekérdezések elosztása Konkurrenciavezérlés Holtpontok Megbízhatóság 6. előadás 12
Tervezési problémák 6. előadás 13
Architektúrák Rendszerkezetét jelenti Komponensek és funkcióik Komponensek közötti relációk Átfolyó adatok milyensége és a folyás vezérlése 6. előadás 14
Architektúra megadása Szabványosítás Referencia modellel adjuk meg 6. előadás 15
Referencia modell megadása Komponens alapú Funkcionális Adat központú 6. előadás 16
Példa: ANSI/SPARC 6. előadás 17
DDBMS megadása 6. előadás 18
Architektúra adatközpontú leírása 6. előadás 19
Multi. Database rendszerek (MDBS) Teljesen autonóm ◦ Nem tudják, hogy működjenek együtt ◦ Akár egymás létezéséről sem tudnak ◦ Akár nem is tudják, hogyan kommunikáljanak 6. előadás 20
Multi. Database rendszerek (MDBS) 6. előadás 21
Multi. Database rendszerek (MDBS) 6. előadás 22
Kliens-szerver architektúra 6. előadás 23
Kliens-szerver architektúra típusai Több kliens, egyetlen szerver Több kliens, több szerver ◦ Kliens oda kapcsolódik, ahol az adat (funkció, stb. ) van ◦ Kliens csak egy szerverrel kommunikál 6. előadás 24
Fragmentálás Lépések ◦ Fragmentáció ◦ Allokáció Irány ◦ Vízszintes – táblák sorainak szétosztása ◦ Függőleges – oszlopok szétosztása 6. előadás 25
Elosztás dimenziói 6. előadás 26
Elosztás dimenziói Megosztás szintje ◦ Nem osztunk meg semmit ◦ Csak adatokat ◦ Programokat is Hozzáférési minták viselkedése ◦ Statikus ◦ Dinamikus Tudás szintje 6. előadás 27
Elosztást befolyásolják Adatbázis ◦ Darabolás helyes megválasztása, darabok mérete Alkalmazások ◦ Hozzáférések fajtái, számosságuk és helyei (adat lokalizáció) Kommunikációs hálózat ◦ Sávszélesség, késleltetés, kommunikációs overhead Számítógépes rendszerrel kapcsolatos ◦ Tárolás költsége egy adott gépen ◦ Számítás költsége egy adott gépen 6. előadás 28
Miért fragmentáljunk? Teljes másolatok költségesek Általában nem szükséges a teljes adattábla minden alkalmazásnak Lekérdezésen belüli párhuzamosítás 6. előadás 29
Fragmentálás helyessége Teljesség ◦ felbontás esetén minden adatelem, ami R-ben megtalálható, szerepelnie kell egy van több Ri-ben Rekonstruálhatóság ◦ A fenti jelöléssel létezik egy operátor, melyre ◦ Diszjunktság ◦ 6. előadás 30
Allokálás Replikáció nélkül Replikációval ◦ Teljes replikációval ◦ Részleges replikációval 6. előadás 31
Replikáció Adatok redundáns tárolása az elosztott rendszer különböző helyein Növekedett rendelkezésre állás Csökkent válaszidő Jó skálázhatóság Szinkronizációs költségek 6. előadás 32
Replikáció típusai Teljes replikáció Részleges replikáció ◦ Lokális tranzakciók – nem replikált adatok 6. előadás 33
Konzisztencia Kölcsönösen konzisztens állapot ◦ Egy adat minden másolata megegyezik Erős ◦ Minden másolatnak meg kell egyeznie Gyenge ◦ Előbb-utóbb meg kell egyeznie (eventually consistent) 6. előadás 34
Globálisan nem sorosítható ütemezés (1) Kiinduló állapot konzisztens A tárolja x-et B tárolja x, y-t C tárolja x, y, z-t 6. előadás 35
Globálisan nem sorosítható ütemezés (2) 6. előadás 36
Globálisan nem sorosítható ütemezés (3) T 1 -nek le kell futnia A, B, C-n T 2 -nek csak B-n és C-n T 3 -nak csak C-n Egy lehetséges ütemezés: 6. előadás 37
Globálisan nem sorosítható ütemezés (4) Tranzakciók sorrendje ekkor: ◦ Hb esetén T 1, T 2 ◦ Hc esetén T 2, T 3, T 1 Globálisan nem sorosítható, de az adatbázis kölcsönösen konzisztens marad 6. előadás 38
1 SR – One-copy serializability Tranzakciók hatása a replikált adatokon olyan legyen, mintha egymagában futtattuk volna egy adaton Az ütemezés ekvivalens egy soros ütemezésével a nem-replikált adatoknak 6. előadás 39
Frissítések végrehajtása Központosított ◦ Master copy Single master Primary copy Elosztott ◦ Bármelyik másolat módosítható 6. előadás 40
Másolatok frissítése Mohó ◦ Szinkron frissítés, a tranzakcióknak meg kell várni, mire minden másolat frissül Lusta ◦ Aszinkron frissítés ◦ Inkonzisztencia veszélye 6. előadás 41
Replikáció átlátszósága Átlátszatlan ◦ Az alkalmazásnak tudnia kell, melyik adat melyik szerveren van Átlátszó ◦ A szerverek elfedik a replikációt 6. előadás 42
Mohó, centralizált, primary copy, korlátozott átlátszóság 6. előadás 43
Mohó, centralizált, primary copy, teljes átlátszóság 6. előadás 44
Mohó, elosztott 6. előadás 45
Lusta, centralizált 6. előadás 46
Kétfázisú commit (2 PC) A tranzakció commit fázisa két lépésből áll ◦ Minden résztvevő először rábólint, hogy mehet a tranzakció ◦ Csak ezután kerül véglegesítésre vagy abortálásra Pl. valahol deadlock-ot okozna a tranzakció ◦ Ekkor mindenhol Abort 6. előadás 47
Hogyan működik? Minden állomás naplózza saját eseményeit Van egy koordinátor állomás, ő hozza a végleges döntést ◦ Ha volt olyan állomás ami ABORT-t szeretne, akkor a végleges döntés ABORT legyen ◦ Ha minden állomás COMMIT-t szeretne, akkor a végleges döntés COMMIT legyen Az állomások üzeneteket küldenek egymásnak, ezt is naplózzák A végleges döntés után van hatása a műveleteknek 6. előadás 48
2 PC protokoll (1) A koordinátor saját naplójába (T, Felkészül) ◦ Ezt mindenhova elküldi (még magának is) Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála COMMIT vagy ABORT lesz majd ◦ Ha COMMIT várható (már csak ez lenne hátra) (T, Készenáll) a saját naplóba koordinátornak elküldeni (T, Készenáll) –t ◦ Ha ABORT várható (T, ABORT-Legyen) a saját naplóba koordinátornak elküldeni (T, ABORT-Legyen)-t 6. előadás 49
2 PC protokoll (2) A koordinátor megkapja az üzeneteket ◦ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitől (T, COMMIT) a saját naplójába mindenhova elküldi a (T, COMMIT-Lesz)-t ◦ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól (T, ABORT) a saját naplójába mindenhova elküldi a (T, ABORT-Lesz)-t 6. előadás 50
2 PC protokoll (3) A résztvevő megkapja a végleges döntést ◦ Ha egy állomás a (T, COMMIT-Lesz)-t kapja (T, COMMIT) ◦ Ha egy állomás a (T, ABORT-Lesz)-t kapja (T, ABORT) 6. előadás 51
Globális és lokális zárkezelés – zárak típusai Minden LOCK globális. ◦ Egyszerű modell, egy zárállomás tartja nyilván ezeket ◦ Egy LOCK 3 üzenet (igénylés, engedélyezés, feloldás) ◦ A zárállomás nagyon terhelt lehet Elsődleges példány ◦ Mindenből van egy elsődleges példány, zároláskor ehhez fordulunk ◦ Egy LOCK 3 üzenet (igénylés, engedélyezés, feloldás) ◦ Nem koncentrált a forgalom Osztott zárolások 6. előadás 52
Osztott zárak Nem lehet semelyik két tranzakciónak ugyanazon objektumon globális WLOCK-ja Ha egy tranzakciónak van globális WLOCK-ja az objektumon, egy másiknak sem lehet globális RLOCK Több tranzakciónak is lehet globáios RLOCKja egy objektumra Minden állomás az érvényes globális LOCK-ok figyelembevételével működik 6. előadás 53
RLOCK megszerzése Globális RLOCK A megszerzéséhez elég egy lokális RLOCK A ◦ Ha az i. állomás akar egy RLOCK Ai-t, nem kell üzenni Ha WLOCK Ai van, akkor elutasítjuk Ha semmi vagy RLOCK Ai, akkor engedélyezzük ◦ Engedélyezéskor felteszi az RLOCK Ai-t (globális RLOCK A is) 6. előadás 54
WLOCK megszerzése Globális WLOCK A megszerzéséhez kell minden WLOCK Ai ◦ Ha az i. állomás akar egy WLOCK Ai-t, akkor üzen minden másik állomásnak, ahol az Aj megtalálható Ha ezen állomáson RLOCK Aj vagy WLOCK Aj, elutasítja a kérést Különben engedélyezi ◦ Ha megjöttek a válaszok Ha mindenhonnan engedélyezés jött i. állomás felteszi a WLOCK Ai-t Mindenhova üzen, hogy WLOCK Aj (globális WLOCK A) 6. előadás 55
Többségi zárolás Globális RLOCK A megszerzéséhez kell, hogy legyen RLOCK Ai az Ai-k többségén Globális WLOCK A megszerzéséhez kell, hogy legyen WLOCK Ai az Ai-k többségén Nem tehetünk fel WLOCK Ai-t és RLOCK Ai-t és nem lehet két WLOCK Ai egyszerre 6. előadás 56
Többségi zárolás Legyen n, hogy hány példány van A-ból, illetve legyen Globális RLOCK A megszerzéséhez kell, hogy RLOCK Ai legyen legalább l db Ai-n Globális WLOCK A megszerzéséhez kell, hogy WLOCK Ai legyen legalább k db Ai-n 6. előadás 57
- Slides: 57