Elosztott rendszerek NGM_IN005_1 Szinkronizáció Magas szint! szinkronizáció Órák szinkronizálása (állapot szinkronizáció) Koordinátor választás Elosztott tranzakció kezelés 2
Óraszinkronizálás Time stampekre épül" rendszerek tranzakciós rendszerek (helyfoglalás, bank, t"zsde) make adat tükröz" megoldások offline komponensek ind"nkénti szinkronizálása Óra szolgáltatások 3 Make példa 4
Fizikai órák Id"zít" áramkörök (timer) számláló (counter) tároló (hold register) clock tick (megszakítás) CMOS órák Órák jellemz"i offset drift (skew) 5 Események rendezettsége Processzen belüli események szekvenciálisak A kommunikáció részleges rendezést ad A helyi id"k nem biztosítják a teljes globális rendezést Logikai órák Node R Proc X Node S Proc Y Node T Proc Z X1 Proc X Proc Y X2 Y1 Y2 send(m,t x ) receive(m,t x ) at t Y t x < t Y t x! t Y Z1 Z2 6
UTC Universial Coordinated Time Bureau International de l Heure TAI (cézium-133) szök" másodperc rádió adók, GPS 7 Óraszinkronizáló algoritmusok Id"zít" áramkörök pontossága (relatív hiba) kb. ±10-5 max. drift rate! 1" # $ dc dt $1+ # Max. megengedett eltérés " Újraszinkronizálás id"szerverekkel "/2! id"közönként! 8
Cristian algoritmusa Pontos id"t tartalmazó üzenet Óra beállítás fokozatosan (rendezés megtartása) hálózati késleltetés üzenet váltás idejének mérése helyi órával szerver válasz-generálási idejének ismerete több mérés 9 Berkeley algoritmus Id"démon (koordinátor) aktív lekérdezés átlagid" meghatározása óra állítási utasítás 10
NTP protokoll Network Time Protocol (1985) Óraszinkronizálás csomagkapcsolt, változó késleltetés! hálózati környezetben (Internet) Marzullo algoritmus Több szerver-réteg 64 bites time stampek 11 Marzullo algoritmus Optimális érték el"állítása konfidencia intervallummal adott becslésekb"l a legrövidebb, legtöbb forrással konzisztens intervallum 12
Lamport id"bélyegek Logikai órák szinkronizálása a#b (a happens before b) egy folyamaton belüli a,b a,b azonos üzenet küldése és fogadása különböz" folyamatokban C(a)<C(b) különböz" a,b eseményre C(a)#C(b) 13 Alkalmazás példa Replikált adatbázison végzett m!veletek m!veletek azonos sorrendben totally ordered multicast 14
Id"bélyeg vektor Oksági viszonyok (kauzalitás) meg"rzése Vi[j]=k Pi folyamat számára ismert, hogy Pj-ben k esemény történt vt saját vektor csatolása az üzenetekhez Pj fogadó Vj[l]-t max{vj[l],vt[l]}-ra állítja 15 Alkalmazás példa message thread elosztott üzen" rendszerben Pi a üzenetet küld: vt(a) Vi Pj válasza r : vt(r) Vj (vt(r)[j]>vt(a)[j]) Pk-hoz teszt. sorrendben megérkezek r megjelenítése vt(r)[j]=vk[j]+1 és vt(r)[i]$vk[i] i#j 16
Elosztott r. globális állapota helyi állapotok + útonlév" üzenetek konzisztens állapot distributed snapshot 17 Snapshot készítése 18
Szavazó algoritmusok Kitüntetett, koordinátor folyamat választása legnagyobb, legkisebb azonosítójú folyamat megtalálása egyetértés biztosítása 19 Zsarnok algoritmus 20
Gy!r! algoritmus 21 Kölcsönös kizárás biztosítása Valamilyen er"forrás megszerzése kizárólagos használatra Megoldások centralizált koordinátor (master-slave) elosztott versenyhelyzet feloldás token továbbításos 22
Elosztott tranzakciók Védelem konkurrens hozzáférés esetén izoláció, szerializálás M!veletek oszthatatlan egységként konzisztencia biztosítása commit/rollback 23 Tranzakciók implementálása Saját munkaterület adatok másolata (shadow) copy on write Writeahead log naplózás régi és új értékekkel rollback 24
Konkurencia kezelés Rétegszerkezet használata ütemez" szerializálás olvasási és írási m!veletek conflicting operation pesszimista és optimista megközelítés 25 Kétfázisú lockolás Zárolások a növekedési fázisban ütközés esetén m!velet késleltetése, tranzakció felfüggesztése Feloldás a zsugorodási fázisban m!velet elvégzése után zárolás feloldás után a tranzakció nem zárolhat Két fázisú zárolással az ütemtervek szerializálhatók Holtpont kialakulhat azonos sorrendben lockolás 26
Kétfázisú lockolás (folyt.) Szigorú kétfázisú lockolás 27 Pesszimista id"bélyeg rendezés Írás Olvasás 28