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) 2PC (Kétfázisú commit protokoll) Globális és lokális zárkezelés 6. előadás
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
Miért? Rendelkezésre állás több helyen Megbízhatóság Cég több telephellyel Megbízhatóság Válaszidő csökkentése Skálázhatóság 6. előadás
Mit osszunk el? Számítás logikája Ellátott funkciók Adat Vezérlés 6. előadás
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
Elosztott adatbázisrendszer Distributed DBMS Szoftverrendszer Elosztott adatbázist kezel Elosztottságot elrejti a felhasználó elől 6. előadás
Adatok kézbesítése Kézbesítés módja Gyakoriság Módszer Pull-only, push-only, hibrid Gyakoriság Periodikus, feltételes, szabálytalan (ad-hoc) Módszer Unicast, one-to-many 6. előadás
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
Átlátszóság fajtái Adatfüggetlenség Hálózati átlátszósá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
Átlátszóság helye DDBMS-ben Hozzáférési rétegen Operációs rendszerben 6. előadás
Tervezési problémák Elosztás Könyvtárak kezelése 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
Tervezési problémák 6. előadás
Architektúrák Rendszer szerkezeté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
Architektúra megadása Szabványosítás Referencia modellel adjuk meg 6. előadás
Referencia modell megadása Komponens alapú Funkcionális Adat központú 6. előadás
Példa: ANSI/SPARC 6. előadás
DDBMS megadása 6. előadás
Architektúra adatközpontú leírása 6. előadás
MultiDatabase 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
MultiDatabase rendszerek (MDBS) 6. előadás
MultiDatabase rendszerek (MDBS) 6. előadás
Kliens-szerver architektúra 6. előadás
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
Fragmentálás Lépések Irány Fragmentáció Allokáció Vízszintes – táblák sorainak szétosztása Függőleges – oszlopok szétosztása 6. előadás
Elosztás dimenziói 6. előadás
Elosztás dimenziói Megosztás szintje Hozzáférési minták viselkedése 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
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
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
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
Allokálás Replikáció nélkül Replikációval Teljes replikációval Részleges replikációval 6. előadás
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
Replikáció típusai Teljes replikáció Részleges replikáció Lokális tranzakciók – nem replikált adatok 6. előadás
Konzisztencia Kölcsönösen konzisztens állapot Erős Gyenge 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
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
Globálisan nem sorosítható ütemezés (2) 6. előadás
Globálisan nem sorosítható ütemezés (3) T1-nek le kell futnia A,B,C-n T2-nek csak B-n és C-n T3-nak csak C-n Egy lehetséges ütemezés: 6. előadás
Globálisan nem sorosítható ütemezés (4) Tranzakciók sorrendje ekkor: Hb esetén T1, T2 Hc esetén T2, T3, T1 Globálisan nem sorosítható, de az adatbázis kölcsönösen konzisztens marad 6. előadás
1SR – 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
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
Másolatok frissítése Mohó Lusta 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
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
Mohó, centralizált, primary copy, korlátozott átlátszóság 6. előadás
Mohó, centralizált, primary copy, teljes átlátszóság 6. előadás
Mohó, elosztott 6. előadás
Lusta, centralizált 6. előadás
Kétfázisú commit (2PC) 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
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
2PC 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
2PC 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
2PC 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
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 Nem koncentrált a forgalom Osztott zárolások 6. előadás
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 RLOCK- ja egy objektumra Minden állomás az érvényes globális LOCK-ok figyelembevételével működik 6. előadás
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
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
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
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