Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Adatbázisrendszerek elméleti alapjai 6. előadás
Osztott adatbázisok
2
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
3
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
4
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
5
Mit osszunk el? Számítás logikája Ellátott funkciók Adat Vezérlés
6. előadás
6
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
7
Elosztott adatbázisrendszer
Distributed DBMS Szoftverrendszer Elosztott adatbázist kezel Elosztottságot elrejti a felhasználó elől 6. előadás
8
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
9
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
10
Á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
11
Átlátszóság helye DDBMS-ben Hozzáférési rétegen Operációs rendszerben
6. előadás
12
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
13
Tervezési problémák 6. előadás
14
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
15
Architektúra megadása
Szabványosítás Referencia modellel adjuk meg 6. előadás
16
Referencia modell megadása
Komponens alapú Funkcionális Adat központú 6. előadás
17
Példa: ANSI/SPARC 6. előadás
18
DDBMS megadása 6. előadás
19
Architektúra adatközpontú leírása
6. előadás
20
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
21
MultiDatabase rendszerek (MDBS)
6. előadás
22
MultiDatabase rendszerek (MDBS)
6. előadás
23
Kliens-szerver architektúra
6. előadás
24
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
25
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
26
Elosztás dimenziói 6. előadás
27
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
28
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
29
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
30
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
31
Allokálás Replikáció nélkül Replikációval Teljes replikációval
Részleges replikációval 6. előadás
32
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
33
Replikáció típusai Teljes replikáció Részleges replikáció
Lokális tranzakciók – nem replikált adatok 6. előadás
34
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
35
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
36
Globálisan nem sorosítható ütemezés (2)
6. előadás
37
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
38
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
39
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
40
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
41
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
42
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
43
Mohó, centralizált, primary copy, korlátozott átlátszóság
6. előadás
44
Mohó, centralizált, primary copy, teljes átlátszóság
6. előadás
45
Mohó, elosztott 6. előadás
46
Lusta, centralizált 6. előadás
47
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
48
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
49
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
50
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
51
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
52
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
53
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
54
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
55
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
56
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
57
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.