Osztott adatbázisok. Education, Inc. Addison-Wesley Higher Education, 2004. M. T. Özsu, P. Valduriez: Principles of Distributed Database Systems,



Hasonló dokumentumok
P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

Adatbázisok és adattárházak az információs rendszerek adatkezelői

A hierarchikus adatbázis struktúra jellemzői

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

FELHASZNÁLÓI ÚTMUTATÓ

Aronic Főkönyv kettős könyvviteli programrendszer

Hálózatkezelés: Távoli elérés szolgáltatások - PPP kapcsolatok

A beszerzési logisztikai folyamat tervezésének és működtetésének stratégiái II.

Haladó DBMS Radványi, Tibor

3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén

Az adatmodelleket többféleképpen is csoportosíthatjuk. Egyik csoportosítás:

1 Rendszer alapok. 1.1 Alapfogalmak

Operációs rendszerek. 3. előadás Ütemezés

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

Rendelkezésre állás Magas szintű rendelkezésre állás bemutatása

FESD Feuerschutz für System- und Datenschränke GmbH OFS. Az innovatív Objektumoltó berendezés a rendszerszekrények tűzvédelmére

Lineáris. Soros. Okozati FIFO. Belépő

DB2 Connect Personal Edition telepítése és beállítása

Az Oracle rendszer komponensei

Béta Software számlázó programok adóhatósági ellenőrzési adatszolgáltatása (AEA)

Az informatika tárgy oktatásának folyamata. Dr. Nyéki Lajos 2015

10193/12 KH/md DG E2

AZ EU KÖZÖS ÁRUSZÁLLÍTÁSI LOGISZTIKAI POLITIKÁJA

Adatbázisok biztonsága

Workflow és Petri hálók. Workflow fogalma

Informatikai biztonság, IT infrastruktúra

Minőségbiztosítási Kézikönyv

Rendszerfelügyelet Logikai partíciók

4. LECKE: DÖNTÉSI FÁK - OSZTÁLYOZÁS II. -- Előadás Döntési fák [Concepts Chapter 11]

Az ellenőrzés módszertana

ERserver. iseries. Szolgáltatási minőség

ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK az IZINTA Kft. vásárlói részére

Kézikönyv a belső egységeken átnyúló folyamatok szabályozására

12. tétel. Lemezkezelés

Hungária Informatikai Kft.

II. év. Adatbázisok és számítógépek programozása

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Gazdasági informatika vizsga kérdések

Találatgaranciás Lottóvariációk gy jteménye

Önálló laboratórium beszámoló

A SZOFTVER TELEPÍTÉSE ELŐTT TELEPÍTÉS WINDOWS KÖRNYEZETBEN TELEPÍTÉS MACINTOSH KÖRNYEZETBEN HIBAKERESÉS

4. A GYÁRTÁS ÉS GYÁRTÓRENDSZER TERVEZÉSÉNEK ÁLTALÁNOS MODELLJE (Dudás Illés)

DUNAÚJVÁROSI FŐISKOLA

Bánsághi Anna Bánsághi Anna 1 of 54

ÚTMUTATÓ. a tömegtermelés vásárlói igényekhez való igazításához. Legjobb Gyakorlatok. Union Regionale delle Camere di Commercio del Veneto

KOCKÁZATKEZELÉSI SZABÁLYZATÁRÓL

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

Lemezkezelés, állományrendszerek

Fiskális transzparencia jelzőszámok nélkül?

Nem kötelező érvényű útmutató a magasban végzett munkáról szóló 2001/45/EK (irányelv végrehajtásának helyes gyakorlatáról)

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Közigazgatási szerződés

Hegesztésre és forgácsolásra vonatkozó munkabiztonsági program irányelvei

Integrált ügyviteli rendszer: Kettős könyvelés modul

FELCSÚTI KÖZÖS ÖNKORMÁNYZATI HIVATAL

A rendszer általános áttekintése

Általános Szerződési és Regisztrációs Feltételek

Hálózati protokoll tervezése

Szolgáltatásleírás Proaktív karbantartási szolgáltatás

MATEMATIKA évfolyam

Történeti áttekintés

Tájékoztató tanévnyitó kiadvány a 2008/2009 tanévhez 1

A Ket. végrehajtási rendeletei

A MEDIAREY HUNGARY SERVICES KFT. ELŐFIZETÉSI ÁLTALÁNOS SZERZŐDÉSI FELTÉTELEK 1. SZÁMÚ MELLÉKLETE

Projekt: ÁROP-1.A Gyöngyös Város Önkormányzatának szervezetfejlesztése

Javaslat AZ EURÓPAI PARLAMENT ÉS A TANÁCS RENDELETE

Hatályos Jogszabályok Gyűjteménye

Értékesítési logisztika az IT-alkalmazások markában

SAP vállalatirányítási rendszer alapjai

Vállalkozási Formák. Vállalkozási Formák. Dr. Gyenge Balázs

VIBROCONTROL A megbízható rezgésvédelem

A Nyíregyházi Fıiskola Informatikai Szolgáltató Központ Ügyrendje

Novell Nterprise Branch Office: a távoli iroda felügyeletének leegyszerűsítése

2015/11/08 17:47 1/15 Fogyasztóvédelem

A tételekhez segédeszköz nem használható.

Tárgy: Kiskunmajsa Város Önkormányzatának évi költségvetési koncepciója.

AZ EURÓPAI KÖZÖSSÉGEK BIZOTTSÁGA. Javaslat: AZ EURÓPAI PARLAMENT ÉS A TANÁCS IRÁNYELVE

Hallgatók a Tudomány Szolgálatában

MAGYAR KÖZTÁRSASÁG KORMÁNYA

Alapfokú nevelés-oktatás szakasza, alsó tagozat, 1 4. évfolyam

AZ EURÓPAI KÖZÖSSÉGEK BIZOTTSÁGA A BIZOTTSÁG KÖZLEMÉNYE A TANÁCSNAK. Jelentés a 139/2004/EK rendelet működéséről {SEC(2009)808}

Budapest Főváros Települési Esélyegyenlőségi Programja ( ) Munkaanyag Munkaanyag zárása első társadalmi egyeztetés előtt:

A CONCORDE ALAPKEZELŐ ZRT. VÉGREHAJTÁSI POLITIKÁJA

Éghajlatvédelmi kerettörvény. tervezet évi törvény. az éghajlat védelmérıl. Preambulum

ALAPISMERETEK...6 A MICROSOFT ACCESS INDÍTÁSA...14 AZ ABLAK...14 MEGNYITÁS...16 TÁBLÁK...17 LEKÉRDEZÉSEK...18

INTEGRÁLT HELYI JÓLÉTI RENDSZER (Jóléti kistérség stratégia)

TÁMOP VIR alprojekt VIR felhasználói kézikönyv

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

ELŐTERJESZTÉS a KÉPVISELŐTESTÜLET május 17-i ülésére

Kétszemélyes négyes sor játék

NÜFLE 2 Esszék. 1. Logisztika fogalma, logisztikai szemléletmód, költség koncepció lényege. 2. Ellátási lánc, ostorcsapás hatás

Matematikai és matematikai statisztikai alapismeretek

Kísérletek Készítette: Kiss Anett

Számlakészítés a SPRINT programmal

Felhasználóbarát kliensszoftver

A BIZOTTSÁG JELENTÉSE. Tizenharmadik jelentés az euróövezet jövőbeli bővítésének gyakorlati előkészületeiről. {SWD(2013) 491 final}

A SZAKMAI-MÓDSZERTANI ELLEN RZÉS BEMUTATÁSA, VALAMINT A PROBLÉMÁK EXPONÁLÁSA

INTERCISA LAKÁSSZÖVETKEZET ALAPSZABÁLYA

Irányelvek. az E.ON Hungária Társaságcsoport lakossági kintlévőség kezelésére

1996. évi XXXI. törvény. a tűz elleni védekezésről, a műszaki mentésről és a tűzoltóságról

Átírás:

Osztott adatbázisok M. T. Özsu, P. Valduriez: Principles of Distributed Database Systems, Prentice-Hall, 1999. C. J. Date: An Introduction to Database Systems, 8 th Edition, Pearson Education, Inc. Addison-Wesley Higher Education, 2004. 1

Az osztott adatbázisok technológiája az adatfeldolgozás két különbözı megközelítésének az egyesítése. hálózatok, technológiája szétosztja a munkát a csomópontok között. adatbázis technológia, a külön-külön alkalmazások adatait központosítsa és központilag kezelje, létezzen logikai és fizikai adatfüggetlenség Hogyan lehet ezt a két ellentétes nézıpontot összeilleszteni? a két technológia integrálása, úgy, hogy egy új technológiát kapjunk, mely erıteljesebb mindkettınél 2

egy cégnek vagy szervezetnek több helyen is lehet kirendeltsége minden kirendeltségben találhatók számítógépek lokális hálózatba kötve, több kliens is ugyanahhoz az adatbázis szerverhez fér hozzá. minden kirendeltségnek meg van a maga feladata, adatai, és adatbázis szervere. a kirendeltségek kommunikációs hálózattal össze vannak kapcsolva, együtt egy rendszert alkotnak. egy kirendeltség a rendszer egy csomópontja. egy felhasználó, a saját csomópontjában vagy akármelyik más csomópontban levı adatbázist fel kívánja dolgozni. 3

Egy X kliens az A csomópontból a saját csomópontjában található adatbázishoz a jogainak megfelelıen a lokális hálózaton (LAN) keresztül hozzáférhet. Ha X felhasználónak szüksége van a B csomópont adatbázisában található adatokra és van joga rá, akkor a WAN hálózaton keresztül kell azt megtegye. Kétféleképpen teheti: a) Megadja a hálózaton a B csomópontban található adatbázis címét, nevét, majd a tábla nevét. Ebben az esetben azt mondjuk, hogy a heggesztés látszik. b) Használja a globális tábla nevet, melynek egy része az A, más része a B csomóban található, és az osztott adatbázis-kezelı rendszer keresi meg az adatokat az A és B csomóban. Azt mondjuk, a heggesztés nem látszik. A b) megoldás az osztott adatbázis, az a) nem. 4

Az osztott adatbázis csomópontok összessége: kommunikációs hálózattal össze vannak kapcsolva, minden csomópont egy valódi adatbázis-kezelı rendszerrel és adatbázissal rendelkezik. a csomópontok hajlandók kell legyenek együtt dolgozni, hogy a felhasználó bármely csomópont adataihoz úgy férhessen hozzá, mintha azok a saját csomópontján levı adatok lennének. Az osztott adatbázis egy virtuális objektum, melynek komponensei fizikailag különbözı csomópontokban vannak tárolva. Az osztott adatbázis ezeknek a logikai egyesítése. 5

Az osztott adatbázis fizikailag szétosztott, földrajzilag egymástól távol található több olyan adatbázis összessége, amelyekben különbözı helyi ABKR-ek mőködhetnek, különbözı operációs rendszereken. Az osztott adatbázis-kezelı rendszer (OABKR) feladata, hogy biztosítsa a csomópontok együttmőködését. Angol könyvészet: egy csomópont az osztott adatbázisrendszerben, site : egy hálózati node + ABKR Magyar terminológiában a site -nak a munkaállomás felel meg. 6

Különbség: azon rendszerek között, melyek megengedik a távoli adathozzáférést (mint a kliens-szerver rendszerek). A felhasználó dolgozhat olyan adatokkal, melyek egy távoli csomópontban vannak, vagy szimultán több csomópontban, de a heggesztés látszik, a felhasználó kell ezt kezelje. egy valódi osztott adatbázis-kezelı rendszerben a heggesztések rejtettek. Általában a csomópontok szét vannak osztva fizikailag, de ezt csak logikailag kell figyelemben venni, azonban két csomópont létezhet ugyanazon a fizikai gépen is, vagy ugyanabban az épületben lévı lokális hálózati rendszerben. Az adatbázis szempontjából nem lényeges, hogy ugyanabban az épületben található-e vagy szét van osztva földrajzilag nagy területre, a távolági kapcsolat megoldása technikai probléma. 7

........ Kommunikációs hálózat 8........

Az osztott adatbázisok elınyei Lokális autonómia: a helyi adatokat lokálisan tárolják, ott ahol ezeknek logikailag van a helyük, és az esetek nagy részében abban a csomópontban használják, amelyben találhatók. Hatékonyság növelése: az adatok visszakeresése tranzakciók segítségével lebontható több csomópontra, tehát a tranzakciókat végre lehet hajtani párhuzamosan. A párhuzamosság elınyös osztott rendszerek esetén, javítja az adatokhoz való hozzáférést. 9

Biztonság/elérhetıség növelése: o Az adatoknak több csomópontban is létezhetnek másolatai. Ha egyik másolat meghibásodik, az adatok továbbra is elérhetıek lesznek egy másolatból. o rendszerhiba vagy kapcsolat megszakadás esetén nem válik az egész rendszer mőködésképtelenné. Annak ellenére, hogy esetleg egyes adatok nem elérhetık, az osztott adatbázis továbbra is nyújt bizonyos, korlátozott, szolgáltatásokat. Gazdaságosság: ha az adatok földrajzilag szét vannak osztva és ott tároljuk az adatokat, ahol a legtöbbet használják megtakaríthatók a kommunikációs költségek. (központosított ABKR-ekkel ellentétben) Terjeszthetıség: osztott rendszerekben könnyebb az adatbázisok méreteit növelni. 10

Az osztott adatbázisok hátrányai Tapasztalat hiány: az osztott adatbázisok még nincsenek elterjedve. Bonyolultság: az OABKR-eken belül felmerülı problémák sokkal összetettebbek Költségek: az osztott rendszerek újabb, kiegészítı hardvert (kommunikációs mechanizmusok, stb.) igényelnek, ez viszont növeli a költséget. 11

Vezérlés szétosztása: ez a tulajdonság úgy szerepelt, mint elıny. A szétosztással felmerül a szinkronizálás és a koordinálás problémája. Így a szétosztás könnyen terhet jelenthet, ha nincs kidolgozva egy megfelelı politika, mely ezeket a problémákat megoldaná. Védelem: egy központosított adatbázis esetén, betartva a szabályokat a védelem könnyen megoldható az ABKR segítségével. Viszont egy OABKR-ben, ahol a helyzetet elbonyolítja a kommunikációs hálózat jelenléte, melynek meg vannak a saját védelmi követelményei 12

Az osztott adatbázisok célkitőzései Az osztott adatbázis alapvetı elve: a felhasználó számára az osztott rendszernek olyannak kell látszania, mintha a rendszer nem lenne osztott. Chris Date tizenkét célkitőzést fogalmazott meg, amit egy osztott adatbázis kezelı rendszernek be kellene tartania: ezek a célkitőzések nem függetlenek egymástól; nem egyformán fontosak; az összes probléma ami az osztott rendszerhez kapcsolódik, belsı vagy implementációs-szintő (vagy legalább is azok kell legyenek) és nem külsı vagy felhasználó-szintő. 13

1. Helyi autonómia egy csomópontbeli mővelet az illetı csomópont által van vezérelve: egy X csomópont nem függhet egy Y csomóponttól saját mőveletei végrehajtásában, különben az történne, hogy, ha az Y csomópont meghibásodik az X csomó sem tud mőködni, még akkor sem, ha az X- el semmi gond sincs. a helyi adatok lokálisan vannak tárolva és kezelve. Minden adat csak egy adatbázishoz tartozik, függetlenül attól, hogy más, távoli csomópontból elérhetı vagy sem. Olyan kérdések, mint biztonság, integritás és az adatok tárolása a lokális csomópont vezérlése alatt vannak. A helyi autonómiát nehéz teljes egészében megvalósítani, a cél, hogy az autonómia a lehetı legnagyobb legyen. 14

2. Semmi bizalom egy központi csomópontban A helyi autonómia maga után vonja, hogy minden csomópont egyenrangú, tehát nincs egy központi csomópont. Egy központi csomópont létezése nem kívánatos: a központi csomópont nagyon le lenne terhelve, a rendszer sebezhetı lenne, vagyis, ha a központi csomópont meghibásodna, az egész rendszer mőködésképtelenné válna. 15

3. Folytonos mőveletek A rendszer állandóan mőködıképes kell legyen. Az osztott rendszerek egyik elınye, hogy nagyobb megbízhatóságot és hozzáférhetıséget nyújthatnak. A rendszert úgy kell megtervezni, hogy legyenek az adatokról másolatok. Ez növeli a biztonságot, mert ha egy csomópont éppen nem mőködıképes, akkor az adatok még máshol is tárolva vannak. 16

4. Helytıl való függetlenség A felhasználó nem kell tudja, hogy fizikailag melyik csomóponton vannak az adatok tárolva, viszont úgy kell tudja ıket kezelni (legalábbis logikai szempontból), mintha azok az ı saját helyi csomópontjában lennének. a felhasználói programok egyszerőek lesznek, az adat vándorolhat egyik csomópontból a másikba anélkül, hogy a felhasználói programokat változtatnánk. Lokációtól való függetlenségnek is nevezik vagy átlátszóságnak a lokációval szemben. 17

5. Tördeléstıl (fragmentálástól) való függetlenség Egy logikai reláció fizikai részekre bontását tördelésnek (fragmentálásnak) nevezzük. A tördelés hasznos, mivel a rendszer gyorsabb lesz. A felosztott adat ott tárolható, ahol a legtöbbet használjuk, így a legtöbb mővelet lokális és a hálózati forgalom a lehetı legkisebb. Többféle tördelést ismerünk: vízszintes, függıleges és levezetett. 18

Vízszintes tördelés: Legyen R egy reláció, n fragmensek száma és Fj (j = 1,..., n) konjunktív normál formában levı predikátum formulák. Vízszintes fragmenseket a vízszintes kiválasztás mővelet segítségével a következıképpen kapunk: R = σ ( R ); j = 1, K, n j F j Ri Rj =, ha i j; R n = U R j j =1. Tehát, a töredékek diszjunktak és egyesítésükbıl visszakapjuk a globális R relációt. 19

példa: Legyen az Alkalmazottak tábla a NagyKer adatbázisból: Alkalmazottak (SzemSzám, Név, Fizetés, Cím, RészlegID); Egy lehetséges parancs a tördelés leírására, mely az osztott adatbázis-kezelı rendszer katalógusában kerül tárolásra, a következı: FRAGMENT Alkalmazottak INTO KolAlk AT SITE Kolozsvar WHERE RészlegID = 1 OR RészlegID = 2 NavAlk AT SITE Nagyvarad WHERE RészlegID = 9; Alkalmazottak = KolAlk U NavAlk 20

A felhasználó oldaláról Alkalmazottak SzemSzám Név RészlegID Fizetés (euró) 222222 Kiss Csaba 9 400 456777 Szabó János 9 900 234555 Szilágyi Pál 2 700 333333 Kovács István 2 500 111111 Nagy Éva 2 300 123444 Vincze Ildikó 1 800 Kolozsvár Nagyvárad KolAlk NavAlk Szem Szám Név Rész legid Fizetés (euró) Szem Szám Név Rész legid Fizetés (euro) 234555 Szilágyi Pál 2 700 456777 Szabó János 9 900 333333 Kovács István 2 500 222222 Kiss Csaba 9 400 111111 Nagy Éva 2 300 123444 Vincze Ildikó 1 800 21

Függıleges tördelés: R egy reláció, mely attribútumainak halmaza A = {A1, A2,..., An}. C az R elsıdleges kulcsa, Ak C = Ø; k = 1,..., m; Ak Al = Ø; ha k l. egy függıleges töredéket a következıképpen kapunk: R =, ( R ) ; k = 1,..., m; k π C A k A globális R relációt a természetes összekapcsolás mőveletével kapjuk vissza: R = R1 R2... Rm; 22

példa: Alkalmazottak (SzemSzám, Név, Fizetés, RészlegID); Egy függıleges tördelését kapjuk az Alkalmazottak táblának: AlkAltalános (SzemSzám, Név, RészlegID); AlkFizetés (SzemSzám, Fizetés). A globális Alkalmazottak relációt megkapjuk, ha a két töredéket összekapcsoljuk: Alkalmazottak = AlkAltalános AlkFizetés 23

A felhasználó Alkalmazottak SzemSzám Név RészlegID Fizetés (euró) 222222 Kiss Csaba 9 400 456777 Szabó János 9 900 234555 Szilágyi Pál 2 700 333333 Kovács István 2 500 111111 Nagy Éva 2 300 123444 Vincze Ildikó 1 800 Csomó1 Csomó2 AlkAltalános AlkFizetés Szem Szám Név RészlegID SzemSzám Fizetés (euró) 222222 Kiss Csaba 9 222222 400 456777 Szabó János 9 456777 900 234555 Szilágyi Pál 2 234555 700 333333 Kovács István 2 333333 500 111111 Nagy Éva 2 111111 300 123444 Vincze Ildikó 1 123444 800 24

Egy rendszer, mely megengedi a tördelést, biztosítania kell a tördeléstıl való függetlenséget (nevezik még átlátszóságnak a tördeléssel szemben), azaz a felhasználók úgy kell lássák az adatokat (legalább is logikai szempontból), mintha azok egyáltalán nem lennének feldarabolva. A tördeléstıl való függetlenség (hasonlóan a lokációtól való függetlenséghez) szükséges, mert így leegyszerősödnek a felhasználói programok. Sajátos esetben megengedi, hogy a táblákat bármikor újra lehessen tördelni anélkül, hogy a felhasználói programokat módosítani kellene. 25

6. Másolatoktól való függetlenség Ha az adatbázis bizonyos részét több csomópontból is folyamatosan használják, akkor a kommunikációs költségek nagyok. Minden gép könnyen abba a helyzetbe kerülhet, hogy a különbözı helyeken tárolt adatok folyamatos összerakásával foglalkozik. A teljesítmény elkerülhetetlenül romlik, ha az egyes gépeknek állandóan a tılük távol tárolt adatokhoz kell hozzáférniük. Az osztott adatbázisrendszerek célkitőzései között szerepel a kommunikációs költségek csökkentése. Másolatok készítésével jelentısen csökkenthetjük a lekérdezések feldolgozása során felmerülı kommunikációs költségeket. 26

A gyakorlatban a legtöbb osztott adatbázisrendszer bizonyos mértékig támogatja az adatreplikációt. Egy tárolt relációnak, vagy töredéknék több másolata lehet, melyek különbözı csomópontokban vannak tárolva. példa: Készítsünk másolatot a kolozsvári csomópontban a nagyváradi fragmensrıl és fordítva. Egy lehetséges leírása a másolatok készítésének: REPLICATE KolAlk NKolAlk AT SITE Nagyvarad ; REPLICATE NavAlk KNavAlk AT SITE Kolozsvar ; 27

A másolat készítés két okból fontos: jobb teljesítményt jelent: az OABKR a helyi adatokon dolgozik, ahelyett, hogy távoli csomópontokkal kellene kommunikáljon; jobb hozzáférhetıséget biztosít: egy adott, másolattal rendelkezı, objektum mindaddig elérhetı lesz, amíg legalább egy másolata elérhetı. Másolat készítés hátránya: adatkezelési mőveleteket az összes másolaton el kell végezzük az A másolat készítés ideális esetben a felhasználó számára átlátszó kell legyen, a felhasználó úgy kell lássa az adatokat, legalább is logikai szempontból, mintha egyáltalán nem léteznének másolatok. 28

7. Lekérdezés osztott feldolgozása ha egy lekérdezés több csomópontban tárolt relációra vagy töredékre vonatkozik, több lehetıség is van szállítani a relációkat a csomópontok között. a központosított rendszerek lekérdezés optimalizálásához ez plusz feladatként jelenik meg. a relációs adatbázisok megfelelıbbek az osztott adatbázisrendszerben, mint azok, melyek nem relációs adatmodellre épülnek. A relációs modell esetén egy lekérdezés részeredményei is relációk, a hálózaton eredményhalmazokat lehet küldeni, nem kell egyenként küldeni sorokat, mint például a hálós adatmodell esetén. 29

8. Tranzakciók osztott vezérlése Egy osztott adatbázisrendszerben egy tranzakció módosításai több csomópontra is kiterjednek. mindegyik tranzakció több ügynökbıl (ágens) épül fel. egy ügynök az a folyamat, amit a tranzakció egy adott csomópontban végez el. a rendszernek biztosítania kell, hogy egy adott tranzakció összes ügynöke sikerrel fejezıdjön be. ha egy tranzakció egy ügynökének nem sikerült a munkáját befejezni, a tranzakciót visszagörgeti, ami azt jelenti, hogy az adott tranzakció többi ügynöke semmissé kell tegye amit a tranzakció végrehajtása érdekében dolgozott. 30

9. Hardwertıl való függetlenség A osztott rendszerben több különbözı típusú gép is lehet, például IBM, Macintosh, HP, stb. Ezek a számítógépek egyenrangú partnerek kell legyenek az osztott rendszerben. Mőködhet rajtuk ugyanaz a típusú adatbázis-kezelı rendszer vagy különbözıek, lásd a 12-es célkitőzést. 31

10. Operációs rendszertıl való függetlenség A különbözı típusú gépen, mely az osztott rendszerben együttmőködik különbözı operációs rendszer futhat. Ugyanazt az ABKR-t különbözı operációs rendszeren is lehessen futtatni és ugyanabban az osztott rendszerben tudjanak együttmőködni. Például az Oracle-nek a Windows operációs rendszer alatt futó változata és UNIX alatti változata tudjon az osztott rendszerben együttmıködni. 32

11. Hálózattól való függetlenség Ha egy osztott rendszerben megengedettek a különbözı csomópontokban a különbözı típusú gépek különbözı operációs rendszerrel megengedett kell legyen a különbözı kommunikációs hálózat is. 12. Adatbázis-kezelı rendszertıl való függetlenség Egy osztott rendszer homogén, ha minden csomópontjában ugyanaz az ABKR fut. 33

csak az lesz szükséges, hogy a különbözı csomópontokban található ABKR-ek ugyanazt az interfészt támogassák, és nem kell ugyanazon ABKR másolatai legyenek. Például, ha az MS SQL Server és az ORACLE képes egymással kommunikálni egy osztott rendszer keretén belül. Vagyis lehetséges, hogy egy osztott rendszer heterogén legyen, legalább is bizonyos mértékig. A heterogenitás támogatása kétségtelenül fontos. A valós rendszerekben nemcsak különbözı gépek mőködnek, különbözı operációs rendszerekkel, hanem a leggyakrabban különbözı ABKReket mőködtetnek és az lenne jó, ha ezek a különbözı ABKR-ek együtt tudnának mőködni egy osztott rendszerben. az ideális osztott rendszer kell biztosítsa az ABKR-tıl való függetlenséget. 34

Osztott adatbázis architektúrák Az ANSI-SPARC arhitektúrát kibıvítették osztott adatbázisokra. A központosított arhitektúra fogalmi szintjének a globális fogalmi séma felel meg, mely az osztott rendszer összes adatának általános szerkezetét írja le. A felhasználói alkalmazások és a felhasználó hozzáférését az adatbázishoz a külsı sémák (KS) támogatják. A felhasználó a globális fogalmi szinten keresztül fér hozzá az adatokhoz, tehát nem látja, hogy az adat szét van darabolva, a globális relációt használhatja a lekérdezések, illetve adatkezelési mőveletei esetén. 35

Egy osztott adatbázisban az adatok lehetnek tördelve, illetve a táblákról, töredékekrıl létezhetnek másolatok. Minden csomópontnak ismernie kell az adatok logikai szervezését, ezért létezik egy harmadik réteg az arhitektúrában, éspedig a lokális fogalmi séma. A globális fogalmi séma ezeknek a lokális fogalmi sémáknak az egyesítésébıl jön létre. Fizikailag az adatok több csomópontban vannak tárolva, minden csomópontnak ismerie kell a saját adatainak a fizikai tárolási részleteit. Ez azt jelenti, hogy kell legyen egy egyedi fizikai (belsı) séma definíció minden csomópontban, melyet lokális fizikai (belsı sémának) nevezhetünk. Az itt bemutatott arhitektúra biztosítja a korábbiakban leírt átlátszóságokat. 36

A logikai és fizikai adatfüggetlenséget biztosítja mivel az ANSI/SPARC arhitektúra kiterjesztése. A másolatoktól és a helytıl való függetlenséget a lokális és globális fogalmi sémák biztosítják a köztük levı kapcsolatokon keresztül. A felhasználó lekérdezései nem veszik figyelembe az adatok helyét, illetve azokat a komponenseket, amelyek részt vesznek a lekérdezés végrehajtásában. A globális lekérdezéseket az osztott adatbázis-kezelı rendszer lebontja lokális lekérdezésekre, melyek más-más csomópontban hajtódnak végre. 37

Külsı séma 1 Lokális fogalmi séma 1 Lokális fizikai séma 1 Külsı séma 2 Globális fogalmi séma Lokális fogalmi séma 2 Lokális fizikai séma 2 38......... Külsı séma m Lokális fogalmi séma n Lokális fizikai séma n

Cég adminisztrátor Globális adatbázis adminisztrátor Globális fogalmi a.b. séma processzor Applikáció, rendszer adminisztrátor GD/D Külsı adatbázis séma processzor Lokális adat Lokális adatbázis adminisztrátor Fogalmi adatbázis séma processzor - 1 Fogalmi adatbázis séma processzor - n Lokális adat Lokális adatbázis adminisztrátor Fizikai adatbázis séma processzor LD/D LD/D Fizikai adatbázis séma processzor Belsı tárolás/ belsı adatbázis átalakítás Fizikai adatbázis/ fogalmi átalakítás Fizikai adatbázis/ fogalmi átalakítás Belsı tárolás/ belsı adatbázis átalakítás 39

Osztott ANSI-SPARC modell funkcionalitást figyelembe véve Kibıvítették a globális katalógus/szótárral (global directory/ dictionary GD/D), amely megengedi a szükséges globális leképezéseket. A lokális leképezéseket pedig a lokális katalógus/szótár (local directory/dictionary LD/D) kezeli. lokális adatbázis-kezelı komponensek be vannak építve a globális ABKR funkcióiba. Az adatbázisok tipikusan fentrıl lefele stílusban vannak tervezve, és ezért az összes külsı nézet globálisan van definiálva. 40

FELHASZNÁLÓ FELHASZNÁLÓ PROCESSZOR Felhasználói interfész kezelı Szemantikus adat ellenır Globális lekérdezés Osztott végrehajtási monitor Külsı séma Globális fogalmi séma GD/D ADAT PROCESSZOR Lokális lekérdezés Lokális fogalmi séma Lokális visszaállítás Napló állomány Helyi végrehajtás processzor Lokális fizikai séma 41

42

OABKR komponensei A. felhasználói processzor kezeli az interakciót a felhasználóval, B. adat processzor a tárolással foglalkozik. A felhasználói processzor négy elembıl áll: A felhasználói interfészkezelı felelıs azért, hogy értelmezze a felhasználótól érkezı parancsokat, továbbküldje végrehajtásra, majd az eredmény adatokat a felhasználónak minél érthetıbb formában szolgáltassa. A szemantikus adat ellenır használja a globális fogalmi séma részeként definiált helyességi megszorításokat és hozzáférési jogokat, hogy ellenırizze, hogy a felhasználói lekérdezés végrehajtható-e. 43

A globális lekérdezés optimalizáló meghatároz egy végrehajtási stratégiát, mely minimalizálja a költség függvényt. A globális lekérdezéseket lefordítja lokális lekérdezésekre, felhasználva a globális és lokális fogalmi sémákat, illetve a globális könyvtárat/szótárat. A globális lekérdezés optimalizáló felelıs, többek között, azért, hogy meghatározza a legjobb sorrendjét a join mőveletek végrehajtásának. Az osztott végrehajtási monitor koordinálja a felhasználó kérésének osztott végrehajtását. Ezt nevezik osztott tranzakció kezelınek is. A lekérdezések osztott módon történı végrehajtása során, a különbözı csomópontokban található végrehajtási monitorok egymással tudnak kommunikálni. 44

Adat processzor három elembıl áll: A lokális lekérdezés optimalizáló, mely úgy mőködik, mint egy hozzáférési út szelektor, felelıs bármelyik adat eléréséhez vezetı legjobb hozzáférési út kidolgozásáért. A lokális visszaállítás-kezelı felelıs azért, hogy a lokális adatbázis konzisztens maradjon, még akkor is, ha hiba lép fel. A helyi végrehajtás processzor fizikailag hozzáfér az adatbázishoz, a lekérdezés optimalizáló által generált végrehajtási tervben található fizikai parancsok szerint. Ez a processzor az interfész az operációs rendszer felé, és tartalmazza az adatbázis pufferkezelıt, mely a fı memória pufferek fenntartásáért felelıs, és kezeli az adathozzáférést. 45

Osztott adatbázisok tervezése Az osztott adatbázisok relációs adatmodellre alapulnak, mivel a lekérdezések eredménye szintén reláció, tehát a szállítandó részeredmények adathalmazok. A mai kereskedelmi rendszerek zöme a relációs adatmodellt használja. A tervezésnél használhatjuk a normalizálást vagy egyed-kapcsolat diagram átírását relációs adatmodellé. Az így kapott adatbázis séma a globális séma. Osztott adatbázisok tervezése szempontjából: top-down megközelítés, bottom-up megközelítés 46

A top-down tervezési folyamat kérések elemzése, rendszer követelmények. a fogalmi tervezés eredménye a globális fogalmi séma lesz, mely az osztott rendszer minden egyedét és azok közötti kapcsolatokat tartalmazza. a kéréseket a nézetek tervezésésénél is figyelembe kell vegyük. A nézetek tervezésének eredményeképp a felhasználói interfészeket kapjuk. A felhasználói nézetek a globális sémát, nem pedig lokális sémákat használnak. 47

Osztott rendszerek esetén a lokális sémát is meg kell határoznunk, ami a relációk tördelését illeti. melyik relációt tördeljük és milyen feltétel alapján? melyik töredéket, melyik csomópontban tároljuk? Kutatások ezen a területen matematikai programozást alkalmaznak, lásd [ÖzVa91]. Az utolsó lépés a tervezési folyamatban a fizikai tervezés folyamata, mely figyelembe kell vegye a lokális fogalmi sémát. A tervezés általános problémája NP-teljes. Az ajánlott megoldások heurisztikusak. o Ezek közül egy: tároljunk minden adatot ott, ahol a legtöbbet használják. 48

A bottom-up tervezési folyamat A top-down tervezési módszer alkalmazható, ha az osztott adatbázisból még semmi nem létezik. A gyakorlatban viszont gyakran az osztott adatbázis részei már léteznek, és a tervezési tevékenység ezek beillesztését is meg kell valósítsa. A bottom-up megközelítés alkalmasabb ilyen típusú környezetben. Az indulási pont a bottom-up tervezés esetében a lokális fogalmi sémák. A folyamat abban áll, hogy a lokális sémákat beilleszti a globális fogalmi sémába.

Adatok másolásával felmerülı problémák Ha egy rendszer megengedi a táblák, fragmensek másolatának létezését, gondoskodnia kell az adatkezelési mőveletek továbbításáról az összes létezı másolat felé. Az adatkezelési mőveletek továbbításával az összes létezı másolat felé az a gond, hogyha egyik csomópont azok közül, mely tárolja a sok közül az egyik másolatot nem elérhetı, az adatkezelési mővelet nem végezhetı el (elsı célkitőzés: egy X csomópont a saját adatán nem végezhet adatkezelési mőveletet, ha létezik arról egy másolat egy olyan csomópontban, mely nem elérhetı) 50

Egy megoldás az elsıdleges másolat séma (primary copy scheme): o egy x logikai adatbázis objektumnak (tábla vagy fragmens), melynek vannak másolatai, az egyik másolatát kinevezi elsıdleges másolatnak (primary copy), a többi másolat másodlagos (secondary) lesz. különbözı objektumok elsıdleges másolatai különbözı csomópontokban vannak, nincs egy központi, ahol tárolva van az összes elsıdleges másolat, ne legyen egy csomópont leterhelve. Tehát ez egy osztott séma. az elsıdleges másolat séma esetén egy adatkezelési mővelet logikailag teljes a rendszer szempontjából, ha az elsıdleges másolaton végre lett hajtva. A csomópont, mely tárolja az elsıdleges másolatot felelıs azért, hogy továbbítsa az adatkezelési mőveletet egy adott idın belül az összes létezı másolat felé. 51

Ahhoz, hogy a tranzakciók ACID tulajdonságai be legyenek tartva az adatkezelési mővelet továbbítása az összes másolat felé a COMMIT elıtt meg kell történjen. Ezzel a megoldással is vannak problémák: ha egy X csomópont A fragmensének van több másolata és az elsıdleges másolat nem az X csomópontban van, hanem egy távoliban, mely épp nem elérhetı, az X nem tud dolgozni az A fragmenssel, mely a saját adata. A kereskedelmi rendszerek elfogadják az adatkezelési mőveletek késleltetett továbbítását (delayed update propagation). Ezzel a megoldással az a gond, hogy nem lehet tudni az adatbázis mikor konzisztens és mikor nem az. Egyes rendszerek a SNAPSHOT fogalmát használják a másolat megvalósítására. Különbözı rendszerek, különbözıképpen valósítják meg a másolatokat, illetve a tördelést. 52

Tranzakciókezelés osztott adatbázisok esetén A tranzakció a helyesség, a konkurencia és a helyreállítás egysége. ACID tulajdonságok Egy tranzakció megırzi az adatbázis helyességét. Egymás után, tehát soros ütemezéssel végrehajtott tranzakciók is megırzik az adatbázis helyességét. a sorbarendezhetı ütemezés (ugyanolyan hatással van az adatbázis állapotára, mint valamelyik soros ütemezés) biztosítja még az adatbázis konzisztenciájának a megmaradását. 53

Köpontosított adatbázis esetén a konkurencia problémákat általában zárolással oldják meg. Más: idıbélyegzın alapuló ütemezés Kétfázisú lezárás tétel: Ha minden tranzakció betartja a kétfázisú lezárási protokollt (2PL), az összes lehetséges ütemezés sorbarendezhetı. egy másolatokat engedélyezı osztott környezetben hálózatszintő lezárásokat kell alkalmazni. a másolatokat ellenırzı protokollok biztosítják: Legyen egy x adat, illetve x1, x2,, xn ennek a másolatai. Az x adatra, mint logikai adatra hivatkozunk, a másolatokra pedig mint fizikaira. 54

A felhasználók a hozzáférési mőveleteket (írás vagy olvasás) (másolatokkal szembeni függetlenség elvének értelmében) az x-re, mint logikai adatra való hivatkozással végzik el. A másolatokat ellenırzı protokollok feladata logikai adatokon végzett mőveletek átalakítása az ezeknek megfelelı fizikai adatokon végzett mőveletekké. A legegyszerőbb ilyen jellegő protokollnak a neve ROWA (readonce/write-all) és a következı szabályokkal írható le: az x adat egy logikai olvasása átalakul egyetlen fizikai olvasási mőveletté (általában abból a másolatból, amelybıl a leggyorsabban hozzáférhetı a kérést elindító csomópont) az x adat egy logikai írási mővelete átalakul n darab, a fizikai adatokat író mőveletté: x1, x2,, xn 55

Feltételezve, hogy minden csomópont felelıs a saját objektumai lezárásáért, egy távoli csomópontban levı adatbáziselem módosítása a következı üzeneteket igényli: a zárolást kérni kell a távoli csomóponttól; a távoli csomópont küldi az engedélyt, ha a zárolás lehetséges; adatkezelési mőveletet kell kérni a a távoli csomóponttól; a távoli csomópont küldi a mővelet elvégzésének elismervényét (acknowledgment) zárolás feloldását kéri a távoli csomóponttól. 56

Legyen T egy tranzakció, mely egy x adatbáziselemet akar módosítani, melynek n darab másolata van egy-egy távoli csomópontban. Egy lehetséges megvalósítása a k darab másolat módosításának 5n üzenetet von maga után: n számú zárolási kérés; n számú zárolási engedély; n számú módosítási mővelet; n számú elismervény; n számú zárfeloldási kérés. Egy megoldás lenne, összekapcsolni a zárolási kérést a módosítási mővelettel, de így is sokkal több, mint a központosított rendszerben. 57

Architektúrai részletek Osztott végrehajtási monitornak két modulja: a tranzakciókezelı (transaction manager: TM), mely felelıs az adatbázis operációk végrehajtásának koordinálásáért. a ütemezı (scheduler: SC), mely az adatbázishoz való hozzáférést szinkronizáló, konkurenciakezelı algoritmus kidolgozásáért felelıs. A tranzakciókezelı kommunikál, az ugyanabban vagy különbözı csomóban található ütemezıkkel és adat processzorokkal. 58

Más TM-kel Begin_transaction, Read, Write, Commit, Abort Eredmények Tranzakciókezelı Ütemezési kérések Ütemezı Adat processzorok felé Az osztott végrehajtási monitor részletes modellje 59 Más ütemezıkkel Más adat processzorokkal

A tranzakciókezelı egy interfészt implementál, mely öt parancsból áll: 1. Begin_transaction. Ez egy mutató a TM-nek, hogy egy új tranzakció kezdıdik. A TM elkönyveli, így például megırzi a tranzakció nevét, a kezdeményezı applikációt, és így tovább. 2. Read. Ha egy x adat lokálisan van tárolva, olvassa az értékét és visszaküldi a tranzakciónak. Különben, a TM kiválasztja az x egy másolatát és kéri, hogy a másolat legyen visszaküldve. 3. Write. A TM koordinálja az x értékének a módosítását, minden olyan csomópontban, ahol az megtalálható. 4. Commit. A TM koordinálja az adatok fizikai módosítását az összes olyan csomópontban, melyek részt vettek a tranzakcióban 5. Abort. A TM biztosítja, hogy a tranzakciónak semmilyen hatása nem látszik az adatbázisban. 60

A központosított adatbázisokban a konzisztencia ellenırzésére használt elvek és algoritmusok használhatók az osztott adatbázisok esetén is. a sorbarendezhetıség elmélete használható az olyan osztott adatbázisok esetén, amelyekben nincsenek másolatok. A tranzakciók végrehajtásának sorrendje mindegyik csomópontban egy helyi tervvel van képviselve. Ha az összes csomópont helyi terve sorbarendezhetı, akkor a terv általánosítható, mint a helyi tervek egyesítése (globális terv), szintén sorbarendezhetı egy olyan adatbázisban, amelyben léteznek másolatok elképzelhetı egy olyan eset is, amikor a helyi tervek sorbarendezhetık, viszont a globális terv nem sorbarendezhetı. A globális terv is sorbarendezhetı kell legyen. 61

Központosított 2PL A 2PL algoritmus könnyen kiterjeszthetı OABKR. Egy megoldás: (C2PL) a csomópontok közül csak az egyiknek van zároláskezelıje, (központi csomópont a neve) a zárolásokat csak ez vezérli, a többi csomópontban levı tranzakciókezelık ezzel kommunikálnak a tranzakciókezelı abban a csomópontban található, amely a tranzakciót kezdeményezi (ezt koordináló TM-nek nevezzük). az adat processzorok a résztvevı csomópontokban találhatók. A résztvevı csomópontok azok, melyekben a mőveleteket végre kell hajtani. 62

fı problémája a C2PL algoritmusnak az, hogy a központi csomópont gyorsan túlterhelıdhet a központi csomópont meghibásodása vagy el nem érhetısége az egész rendszer mőködıképtelenségéhez vezet. kutatások bebizonyították, hogy a túlterhelés valóban megjelenik, ahogy a tranzakciók száma növekszik, viszont elhanyagolható kevés tranzakció esetén 63

Adatprocesszor a közremőködı csomópontokon Koordináló TM Központi csomó LM Lezárás kérés 1 Mővelet Lezárás beszerezve 3 2 Mővelet vége Lezárás felszabadítása 4 5 64

Az elsıdleges másolatos 2PL angolul: primary copy 2PL (PC2PL) a C2PL kiterjesztése, mely próbálja a problémákat kiküszöbölni; több csomópontban is lesz LM és mindegyik bizonyos lezárandó egységekért felelıs; a TM-k elküldik a lezárási és felszabadítási kérésüket annak a LM-nek, amely az adott lezárandó egységért felelıs; az algoritmus minden adatnak egyik másolatát úgy tekinti, mint annak elsıdleges másolatát; a PC2PL-t ajánlották az INGRES osztott prototípus változatához 65

Osztott 2PL (distributed 2PL (D2PL) az összes csomópontban szükséges LM. ha az adatbázisban nincsenek másolatok, a D2PL PC2PL-á alakul. ha léteznek másolatok, a tranzakció a ROWA másolatkezelı protokollt implementálja. A D2PL tranzakciókezelı algoritmus hasonló a C2PL TM-hez, viszont két jelentıs változtatás van. 1. Az üzenetek, melyek a C2PL TM esetén, a központi csomó felé vannak küldve, D2PL TM-nél az összes résztvevı csomópontban található LM-nek el lesz küldve. 2. A mőveleteket nem a koordináló TM adja át az adat processzoroknak, hanem a résztvevı LM-ek. 66

Koordináló TM Résztvevı LM-ek Résztvevı DP-k Lezárási kérés Mővelet 1 2 Mővelet vége 3 Lezárás felszabadítása 4 67

a koordináló TM nem vár a lezárás kérés beszerezve üzenetre. a résztvevı adatprocesszorok (DP) a mővelet vége üzenetet a koordinátor TM-nek küldik. vagy mindegyik DP a saját LM-ének küldi az üzenetet, mely felszabadítja a zárást és értesíti a koordinátor TM-t. Az algoritmus hasonló a szigorú 2PL algoritmushoz. A D2PL algoritmust használja a System R * és a NonStop SQL. 68

Holtpont kezelés Lezáráson alapuló konkurenciakezelı algoritmus holtpontot idézhet elı; egyes idıbélyeget használó algoritmusok is, melyek szükségessé teszik a tranzakciók várakozását, az OABKR-eknek szükségük van speciális eljárásokra, melyekkel tudják a holtpontot kezelni. Egy hasznos eszköz a holtpontok elemzésénél a várakozási gráf (angolul: wait-for graph WFG). o Holtpont akkor jelentkezik, ha a gráf tartalmaz kört. o A WFG meghatározása sokkal komplikáltabb osztott rendszerekben, mivel két tranzakció, mely holtpontot idézhet elı lehet, hogy különbözı csomópontokban fut. 69

o Ezt az esetet globális holtpontnak nevezzük. o Osztott rendszerekben nem elég, egy-egy lokális várakozási gráf minden egyes csomópontban, szükséges, egy globális várakozási gráf is létre legyen hozva, mely a az összes LWFG egyesítése. példa: legyen négy tranzakció: T1, T2, T3 és T4 a következı várakozási relációval köztük: T1 T2 T3 T4 T1. o T1 és T2 az 1-es csomóponton futnak 70

o T3 és T4 a 2-esen 1 Csomó 2 Csomó 1 Csomó 2 Csomó T1 T4 T1 T4 T2 T3 (a) (b) T2 T3 71

Három típusú algoritmus létezik a holtpontok kezelésére: megelızés elkerülés felismerés és megoldás Holtpont megelızés a holtpont megelızı algoritmusok garantálják, hogy holtpont nem léphet fel a TM egy tranzakciót indulásakor ellenırzi és nem engedi, hogy az végrehajtódjon, ha holtpontot idézhet elı. 72

ahhoz, hogy ezt az ellenırzést elvégezhesse, szükséges, hogy az összes adat, melyhez a tranzakció hozzá fog férni, elıre legyen deklarálva. a TM lefoglalja az összes, a tranzakció által elıre deklarált, adatot. a TM akkor engedi, hogy egy tranzakció végrehajtódjon, ha az összes adat, melyhez hozzá fog férni, rendelkezésre áll. Különben a tranzakciónak nem engedélyezett a futása. sajnos ilyen rendszerek nem igazán felelnek meg adatbázis környezetben. általában nehéz pontosan tudni, hogy egy tranzakció milyen adatokhoz fog hozzáférni. 73

Holtpont elkerülés az ütemezık elıre felfedezik a lehetséges holtpont helyzeteket és biztosítják, hogy nem fognak bekövetkezni. egyik lehetıség a holtpont elkerülése érdekében, az erıforrások rendezése. o minden folyamat az erıforrásokhoz csak a megadott sorrendben férhet hozzá. (operációs rendszerek). Egy átdolgozott változatot indítványoztak az ABKR-ek számára o az OABKR-ken belüli lezárási egységek rendezve vannak és a tranzakciók mindig ilyen sorrendben kérik a lezárásokat. o a lezárási egységek rendezését lehet globálisan vagy mindegyik csomóban lokálisan végezni. 74

o Ha lokálisan rendezzük, akkor a csomópontokat is és a tranzakciókat is rendeznünk kell egy másik alternatíva a tranzakciók idıpecsétjeinek felhasználása, mellyel a tranzakcióknak prioritást lehet adni és a holtpontot meg lehet oldani a magasabb (vagy alacsonyabb) prioritású tranzakciók megszakításával. o a LM a következıképpen módosul: ha egy Ti tranzakció lezárási kérése nem teljesíthetı, a LM nem kényszeríti automatikusan a Ti-t, hogy várjon. egy megelızési tesztet alkalmaz a kérdéses tranzakcióra és a zárat tartó tranzakcióra (például Tj). ha a teszt sikeres, a Ti-nek meg van engedve, hogy várjon a Tjre, különben valamelyik tranzakció meg van szakítva. 75

Algoritmusok, melyek ezt a megközelítést használják: WAIT-DIE szabály: Ha a Ti tranzakció kéri egy olyan adat lezárását, amely már le van zárva a Tj tranzakció által, a Ti akkor és csakis akkor kerül várakozási állapotba, ha az idıpecsétje megelızi a Tj tranzakcióhoz rendelt idıpecsétet (a Ti régebbi, mint a Tj). Ha a Ti tranzakció korábbi, mint Tj akkor a Ti érvénytelenítve lesz, illetve késıbb újra lesz indítva ugyanazzal az idıpecséttel. WOUND-WAIT szabály: Ha a Ti tranzakció kéri a Tj által lezárt adathoz való hozzáférést, a Ti akkor és csakis akkor kerül várakozási állapotba, ha az idıpecsétje újabb, mint a Tj-hez rendelt idıpecsét (a Ti korábbi mint a Tj). Ha a Ti régebbi, mint Tj, akkor a Tj érvénytelenítve lesz, az erıforrást meg a Ti tranzakció kapja meg 76

a szabályok a Ti szemszögébıl vannak leírva: Ti várakozik, Ti szakad meg és Ti szakítja meg a Tj-t. a két algoritmus eredménye ugyanaz: az érintett tranzakció meg van szakítva és újra van indítva. A két szabályt a következıképpen írhatnánk le: ha ts(ti) < ts(tj) akkor Ti vár különben megszakítva (WAIT-DIE) ha ts(ti) < ts(tj) akkor Tj meg van szakítva különben Ti vár (WOUND-WAIT) mindkét algoritmus esetén a fiatalabb tranzakció van érvénytelenítve. 77

a WAIT-DIE algoritmus a fiatalabb tranzakciókat részesíti elınyben, míg a régebbi tranzakciók várakoznak a kért erıforrás után, ez a tranzakciók elöregedésének jelenségét segíti elı. a WOUND-WAIT algoritmus elınyben részesíti a régebbi tranzakciókat, amelyek soha nem várnak fiatalabb tranzakciókra holtpont elkerülésének érdekében fel lehet használni mind a két algoritmust vagy akár a kombinációjukat. Az elkerülési módszerek hátránya az, hogy a lehetséges holtpontok kezelésének mőveletei sok idıt felvesznek. Ez az idı hozzájárul a tranzakciók végrehajtásának átlag idejének növeléséhez. 78

Holtpont felismerés és megoldás a legnépszerőbb és legtöbbet tanulmányozott holtpont kezelési metódus. GWFG-ban a körök létrejöttének tanulmányozásával történik. egy vagy több áldozat tranzakciót kiválasztanak, melyek meg lesznek szakítva a GWFG-beli körök megszüntetése érdekében. bonyolult feladat (NP-teljes), azokat az áldozat tranzakciókat kiválasztani, melyeknek érvénytelenítése minimalizálja a holtpontból való kilépés mőveletének költségét osztott holtpont felismerésére három alapvetı módszer létezik: központosított, osztott hierarchikus. 79

Központosított holtpont felismerés az osztott ab. csomópontjai közül egyik ki van nevezve holtpont felismerınek az egész rendszerre nézve. a csomópontok mindegyike periódusonként a saját LWFG-ját elküldi a holtpont felismerı csomópontnak. ez felépíti a GWFG-ot és meghatározza benne a létezı köröket. a rendszer terheltségének csökkentésére a csomópontok periódusonként, csak a LWFG-on történt módosításokat küldik el (hozzáadott vagy törölt éleket). 80

az információk elküldése közötti idı megválasztásának két ellentmondó befolyásoló tényezıje van: o a hosszú periódusok késést okozhatnak, a nem idıben felismert holtpontnak köszönhetıen, o a túl gyakori üzenetek elküldése szintén negatívan befolyásolhatja a rendszer hatékonyságát, a valószínőleg felesleges, nagy számú üzenetek elküldése terheli a rendszert. a holtpontok központosított felismerése nagyon egyszerő és egy természetes megoldást jelentenek olyan rendszerek esetén, amelyek a központosított 2PL módszert alkalmazzák konkurencia kezelı algoritmusként. a legnagyobb hátrányát ennek a módszernek a holtpontot felismerı csomópont sebezhetısége jelenti. ezt módszert használták az osztott INGRES-nél. 81

Hierarchikus holtpont felismerés holtpont felismerık hierarhiáját építik fel a helyi holtpontok már a csomók szintjén felismerhetık a LWFGnak köszönhetıen. mindegyik csomópont elküldi a LWFG-ját a hierarchiában felette álló holtpontot felismerı csomópontnak. ennek megfelelıen az osztott (globális) holtpont, mely kettı vagy több csomópontot érint, annak a gyökér csomó szintjén lesz felismerve, amely tartalmazza ezeket a csomópontokat. Jelölés: DD deadlock detector DD21-2 a 2-s szintér, 1 az 1-s csomóponté 82

DD0x DD11 DD14 1 Csomó 2 Csomó 3 Csomó 4 Csomó DD21 DD22 DD23 DD24 Például az 1-s csomóbeli holtpont fel lesz ismerve az 1-s csomóban található lokális holtpont felismerı által 83

Ha a holtpont túllépi az 1-es és 2-es csomópontot, akkor a DD11 fogja felismerni. Végül, ha a holtpont túlhaladja az 1-s és 4-s csomópontot akkor a DD0x fogja felismerni, ahol az x lehet 1, 2, 3 vagy 4. A hierarchikus felismerés módszere csökkenti a központosított csomótól és a hálózati kommunikációtól való függıséget. Hátrány: o a bonyolult implementálás o módosításokat kell végezni a konkurencia ellenırzı algoritmuson is, meg a másolatokat ellenırzı protokollok szintjén is. 84

Osztott holtpont felismerés mindegyik csomóban kell létezzen egy holtpont felismerı. a csomók átadják egymásnak a saját LWFG-jukból a lehetséges holtpont köröket hasonló algoritmust használ a System R * A LWFG-ok a következıképpen vannak kiegészítve és módosítva: mindegyik csomópontban a többi csomóponttól kapott lehetséges holtponti körök élei hozzá vannak csatolva a csomó LWFG-hoz a LWFG azon élei, melyek azt mutatják, hogy a lokális tranzakciók várnak más csomópontbeli tranzakciókra, össze vannak kötve a LWFG-ok azon éleivel, melyek azt mutatják, hogy távol tranzakciók várnak lokális tranzakciókra 85

1 Csomó 2 Csomó T1 T4 T2 T3 A lokális holtpontkezelık két dolgot vizsgálnak: Ha a LWFG-ban létezik kör, amely nem tartalmaz külsı éleket akkor egy helyi holtpontot ismer fel és ezt helyben meg is oldja. Ha a LWFG-ban létezik egy olyan kör, amely tartalmaz külsı éleket akkor egy globális holtpontot ismer fel és ennek megoldása feltételezi a kör elküldését a többi holtpont felismerı csomóponthoz. 86

Több megoldás is létezik arra vonatkozólag, hogy mely csomópontoknak kell elküldeni a kört: a lehetséges kör összes csomópontba való elküldése. Ez azonban nagy számú üzenet elküldését feltételezi, amely valószínőleg nem is szükséges. egy hatékonyabb megoldást jelent a holtponti körnek azokba a csomópontokba való elküldése, melyek a láncot alkotják. Az üzenetet vevı csomópontok a fent leírt szabályoknak megfelelıen kiegészítik a saját LWFG-t és megvizsgálják ebbe egy lehetséges kör jelenlétét. o problémát jelent, hogy egyetlen holtpontot több csomópont is felfedezhet, mint lehetséges kört a saját LWFG-ban. o a különbözı csomópontokbeli holtpont felismerık különbözı áldozat tranzakciókat választhatnak ki. 87

A probléma a tranzakciókhoz rendelt idıpecsétek felhasználásával oldható meg: legyen Ti Tj a LWFG azon lánca, amely a lehetséges holtponti körhöz van rendelve. a helyi csomó akkor küldi tovább ezt a kört, ha a ts (Ti) < ts (Tj). o az elküldött üzenetek számát a felére lehet csökkenteni o csökken annak az esélye, hogy ugyanazt a holtpontot egyszerre többen is észleljék. A példa esetén: 1-es csomópont lánca: T1 T2 T3 2-es csomópont lánca: T3 T4 T1 Feltételezve, hogy az idıbélyegek a tranzakciók számával egyezik, csak az 1-es csomópont küldi tovább a holtponthoz tartozó éleket. 88

Helyreállítás osztott környezetben az osztott helyreállítási protokolloknak (mint ahogy a lokálisnak is), céljuk, hogy az osztott tranzakciók atomiságát és tartósságát biztosítsák begin_transaction teljesen hasonlóan hajtódik végre, mint központosított esetben, a TM által, abban a csomópontban, melybıl a tranzakció származik. a read és write parancsok a ROWA szabályoknak megfelelıen hajtódnak végre. 89

A protokoll egyszerőbb leírása miatt feltételezzük, hogy abban a csomópontban, melybıl a tranzakció származik, létezik olyan folyamat, mely a mőveleteit végrehajtja. Ezt a folyamatot nevezzük koordinátornak. A koordinátor kommunikál a többi csomópontban levı résztvevı folyamattal, melyek a tranzakció mőveleteinek végrehajtásában segítenek. A commit, abort, recover osztott rendszerben változik 90

Háttértároló Stabil napló Stabil adatbázis Olvasás Írás Lokális helyreállításkezelı Lehozás Írás Olvasás Olvasás Írás Pufferkezelı Írás Olvasás Írás Írás Archívum adatbázis Archívum napló 4.2. ábra. LRM és BM által vezérelt teljes memória hierarchia 91 Napló puffer Adatbázis puffer (Felejtı adatbázis)

A kétfázisú véglegesítés (angolul: two-phase commit 2PC) egy elegáns protokoll, mely biztosítja az osztott tranzakció atomi véglegesítését. Kiterjeszti a lokális atomi véglegesítési mőveletet osztott tranzakciókra, ragaszkodva ahhoz, hogy az osztott tranzakciókban résztvevı összes csomópont egyezzen bele a tranzakció véglegesítésébe, mielıtt annak hatásai maradandókká válnának. 92

Több ok van arra vonatkozóan, hogy miért szükséges a csomópontok közötti szinkronizálás. egyes ütemezık lehet, hogy nincsenek készen a tranzakció befejezésére. Pl, ha egy tranzakció egy olyan adatnak az értékét olvassa, melyet egy másik, még nem véglegesített tranzakció módosított, az ütemezı lehet, hogy még nem akarja az elızıt véglegesíteni. Holtpont jelenhet meg, mely megköveteli a résztvevıtıl, hogy a tranzakciót megszakítsa. A résztvevınek meg lehet engedve, hogy megszakítsa a tranzakciót. Ez a képesség meglehetısen fontos és egyoldalú megszakításnak nevezzük. 93

94

Koordinátor KEZDİ ELİKÉSZÍT Résztvevı KEZDİ begin_transaction beírása a naplóba MEGSZAKITÁS SZAVAZAT megszakítás beírása a naplóba Nem Kész az véglegesítésre? Igen VÁRAKOZÁS VÉGLEGESÍTÉS készenlét beírása a naplóba Valamelyik nem? Igen megszakítás beírása a naplóba GLOBÁLIS- MEGSZAKITÁS KÉSZENLÉT Nem véglegesítés beírása a naplóba GLOBÁLIS-V ÉGLEGESITÉS (Egyoldalú megszakítás) Megszakítás Üzenet típusa? VÉGLEGESÍTÉS MEGSZAKÍTÁS ACK megszakítás beírása a naplóba Véglegesítés ACK véglegesítés beírása a naplóba end_transaction beírása a naplóba MEGSZAKÍTÁS VÉGLEGESÍTÉS 96

ellipszisek - állapotok, szaggatott vonalak a koordinátor és a résztvevık közötti üzeneteket a szaggatott vonalakon levı címkék határozzák meg az üzenet természetét. a koordinátor beír egy begin_transaction bejegyzést a naplóba, elküldi az ELİKÉSZÍT üzenetet mindegyik résztvevı csomópontnak és VÁRAKOZÁS állapotba kerül. amikor egy résztvevı megkapja az ELİKÉSZÍT üzenetet, megvizsgálja, hogy, tudja-e véglegesíteni a tranzakciót. o ha igen, beír egy készenlét bejegyzést a naplóba, elküldi a VÉGLEGESÍTÉS-SZAVAZAT üzenetet a koordinátornak, majd KÉSZENLÉT állapotba kerül; o különben, egy megszakítás bejegyzést ír a naplóba és a MEGSZAKITÁS-SZAVAZAT üzenetet küldi el a 98

koordinátornak. Ha a csomópont megszakítás döntést hozott, abba is hagyhatja a tranzakciót, mert egy megszakítás határozatnak döntı szerepe van (egyoldalú megszakítás). Miután a koordinátor minden résztvevıtıl kapott választ, eldönti, hogy véglegesítse vagy megszakítsa a tranzakciót. o ha legalább egy résztvevıtıl negatív szavazatot kapott, a koordinátor meg kell szakítsa a tranzakciót globálisan. Így beír egy megszakítás bejegyzést a naplóba, elküldi a GLOBÁLIS- MEGSZAKÍTÁS üzenetet az összes résztvevınek és MEGSZAKÍTÁS állapotba kerül; o különben egy véglegesítés bejegyzést ír a naplóba, GLOBÁLIS- VÉGLEGESÍTÉS üzenetet küld az összes résztvevınek és VÉGLEGESÍTÉS állapotba kerül. 99

A résztvevık a koordinátor utasításainak megfelelıen vagy véglegesítik vagy megszakítják a tranzakciót és visszaküldenek egy visszaigazolást, melyre a koordinátor befejezi a tranzakciót beírva egy end_transaction bejegyzést a naplóba. A koordinátor döntését egy tranzakcióra vonatkozó globális befejezését illetıen két szabály irányítja, melyeket együttesen globális véglegesítési szabálynak nevezünk: 1. Ha legalább egy résztvevı a tranzakció megszakítására szavaz, a koordinátor egy globális megszakítás döntést kell hozzon. 2. Ha az összes résztvevı a tranzakció véglegesítésére szavaz, a koordinátor globális véglegesítési döntést kell hozzon. A 2PC megengedi, hogy egy résztvevı egyoldalúan megszakítson egy tranzakciót. 100

Ha egy résztvevı azt szavazta, hogy véglegesíti a tranzakciót, utólag a szavazatát nem változtathatja meg. Amikor egy résztvevı a KÉSZENLÉT állapotban van, a tranzakciót vagy megszakíthatja vagy véglegesítheti a koordinátortól kapott üzenet természetének függvényében. A globális befejezési döntés a koordinátortól származik, a globális véglegesítési szabálynak megfelelıen. A koordinátor és a résztvevı folyamatok biztos állapotokba kerülnek, melyben várakozniuk kell egymás válaszaira. Amikor a frissítés véglegessé válik a frissítést végzı gépen, akkor azt hálózatszintő véglegesítésnek kell követnie, amelynek során az összes gép megkísérli véglegesíteni a változtatást. o Az adatnak mindaddig lezárva kell maradnia, amíg minden véglegesítés sikeres lesz. 101

o Ha valamelyik gépen a frissítés nem sikerül, akkor egy hálózatszintő visszagörgetést kell kibocsátani, hogy visszaállítsuk a változtatásokat ott, ahol az már véglegessé vált. A fenti a központosított 2PC-t, mivel a kommunikáció csak a koordinátor és a résztvevık között folyik; a résztvevık egymás között nem kommunikálnak. A kommunikációs struktúra a következı: 102

Koordinátor Résztvevık Koordinátor Résztvevık Koordinátor elıkészít megszakítás/végle gesítés-szavazás globálismegszakítás/végle gesítés szavazás véglegesített / megszakított 1 Fázis 2 Fázis ábra. Központosított 2PC kommunikációs struktúra 103

Egy másik alternatíva a lineáris 2PC, ahol a résztvevık egymással kommunikálhatnak. A rendszerben kommunikációs célból a csomópontoknak létezik egy sorrendje. Legyen egy tranzakció végrehajtásában résztvevı csomópontok közötti sorrend 1,, N, ahol a koordinátor az elsı a sorban. A 2PC protokoll egy elıre, illetve egy visszafele irányuló kommunikációval van implementálva. o Az elıre irányuló kommunikáció a koordinátortól (az 1-es) az N-ig tart és ez jelenti az elsı fázist. o A visszafele irányuló kommunikáció az N-tıl a koordinátorig tart és ez a második fázis. 104