Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 6. rész: Szinkronizáció

Hasonló dokumentumok
Elnevezési rendszerek. Szinkronizálás

Szinkronizálás. 9. előadás

Elosztott rendszerek

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

The Flooding Time Synchronization Protocol

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 7. rész: Konzisztencia & replikáció

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 2. rész: Architektúrák

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Fine-Grained Network Time Synchronization using Reference Broadcast

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Kommunikáció. 3. előadás

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 1. rész: Bevezetés

UNIX: folyamatok kommunikációja

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 1. rész: Bevezetés

Számítógépes Hálózatok. 5. gyakorlat

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 8. rész: Hibatűrés

2. fejezet Hálózati szoftver

2. fejezet Hálózati szoftver

Konzisztencia és többszörözés. 10. kurzus

Az Internet felépítése

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 3. rész: Folyamatok

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Enhanced Observed Time Difference (E- OTD)

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Erőforrás gazdálkodás a bevetésirányításban

S04-2 Elosztott alkalmazások készítése

API tervezése mobil környezetbe. gyakorlat

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Hegyi Ádám István ELTE, április 25.

Számítógépes Hálózatok. 5. gyakorlat

A Google űrlap (form) használata

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 4. rész: Kommunikáció

InFo-Tech emelt díjas SMS szolgáltatás. kommunikációs protokollja. Ver.: 2.1

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

Optimista konkurenciavezérlés

Számítógépes Hálózatok 2010

Számítógépes Hálózatok. 4. gyakorlat

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

A maximum likelihood becslésről

Elosztott rendszer architektúrák

Hálózati operációs rendszerek II. Novell Netware 5.1 Hálózati nyomtatás

Adatkapcsolati réteg 1

ISIS-COM Szolgáltató Kereskedelmi Kft.

Számítógépes Hálózatok. 5. gyakorlat

Kvantumkriptográfia II.

11. Elosztott állománykezelés. Operációs rendszerek. Elosztott állománykezelés. Teljesítmény növelése. Az állományokra hivatkozás. Az állományok nevei

GOOSE üzenetküldés korszerű alállomásokban. Előadás: Rózsa Gábor

Idő szinkron problémák Windows 2k rendszereknél

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Adatmodellezés. 1. Fogalmi modell

Diszkrét matematika 2.C szakirány

Operációs rendszerek. Az X Window rendszer

Programozási módszertan. Mohó algoritmusok

Megkülönböztetett kiszolgáló routerek az

Időrendszerek áttekintése

GoWebeye Monitor Release Üzenetküldés

Megoldás: Mindkét állítás hamis! Indoklás: a) Azonos alapú hatványokat úgy szorzunk, hogy a kitevőket összeadjuk. Tehát: a 3 * a 4 = a 3+4 = a 7

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Kelenföldi Szilárd

Online adatszolgáltatás beállítása a Számlázás - vevő-szállító nyilvántartás programban (UJVSZ)

A számítógép hálózatok kialakulásának okai:

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Hálózati architektúrák laborgyakorlat

Mohó algoritmusok. Példa:

Vezetői információs rendszerek

Helymeghatározás Nokia N76-1

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Elosztott rendszerek alapszolgáltatásai

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms. 5. rész: Elnevezési rendszerek

Alapszintű formalizmusok

Regionális forduló november 18.

III. előadás. Kovács Róbert

Adatbiztonság PPZH május 20.

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

Hely- és kontextusfüggő alkalmazások fejlesztését támogató keretrendszer mobil környezetben

Áttekintés a GPG/PGP-ről Mohácsi János NIIF Intézet

8. Laboratóriumi gyakorlat INKREMENTÁLIS ADÓ

Online adatszolgáltatás beállítása a kettős, egyszeres könyvelés programban és a számlázóprogramban (UJEGYKE, UJEGYSZ, UJVSZ)

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Programozás II. előadás

Pozícióinformáció. Sikeres helyfüggő szolgáltatások mobilra

Adatbázis rendszerek I

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

KUTATÁSI JELENTÉS. Multilaterációs radarrendszer kutatása. Szüllő Ádám

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Elosztott rendszerek

Adatbáziskezelés. Indexek, normalizálás NZS 1

A félév során előkerülő témakörök

Számítógépes döntéstámogatás. Genetikus algoritmusok

Átírás:

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms Maarten van Steen 1 Kitlei Róbert 2 1 VU Amsterdam, Dept. Computer Science 2 ELTE Informatikai Kar 6. rész: Szinkronizáció 215. május 24.

Tartalomjegyzék Fejezet 1: Bevezetés 2: Architektúrák 3: Folyamatok 4: Kommunikáció 5: Elnevezési rendszerek 6: Szinkronizáció 7: Konzisztencia & replikáció 8: Hibatűrés 1: Objektumalapú elosztott rendszerek 11: Elosztott fájlrendszerek 12: Elosztott webalapú rendszerek Maarten van Steen, Kitlei Róbert Elosztott rendszerek 2 / 28

Fizikai órák Milyen módon van szükségünk az időre? Néha a pontos időt szeretnénk tudni, néha elég, ha megállapítható két időpont közül, melyik volt korábban. Foglalkozzunk először az első kérdéssel. Egyezményes koordinált világidő Az időegységeket (pl. másodperc) az atomidőből (TAI) származtatjuk. Az atomidő definíciója a gerjesztett céziumatom által kibocsátott sugárzás frekvenciáján alapul. A Föld forgásának sebessége kissé változékony, ezért a világidő (UTC) néhány (szökő)másodperccel eltér az atomidőtől. Az atomidő kb. 42 atomóra átlagából adódik. Az atomórák pontosságának nagyságrendje kb. 1ns/nap. Az atomidőt műholdak sugározzák, a vétel pontossága.5 ms nagyságrendű, pl. az időjárás befolyásolhatja. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 3 / 28

Fizikai órák Fizikai idő elterjesztése Ha a rendszerünkben van UTC-vevő, az megkapja a pontos időt. Ezt a következők figyelembe vételével terjeszthetjük el a rendszeren belül. A p gép saját órája szerint az idő t UTC-időpillanatban C p (t). Ideális esetben mindig pontos az idő: C p (t) = t, másképpen dc/dt = 1. Időszinkronizáció üteme A valóságban p vagy túl gyors, vagy túl lassú, de viszonylag pontos: 1 ρ dc dt 1 + ρ Clock time, C Fast clock dc > 1 dt Perfect clock Slow clock dc = 1 dt dc < 1 dt Ha csak megadott δ eltérést akarunk megengedni, δ/(2ρ) másodpercenként szinkronizálnunk kell az időt. UTC, t Maarten van Steen, Kitlei Róbert Elosztott rendszerek 4 / 28

Óraszinkronizálás Cristian-algoritmus Mindegyik gép egy központi időszervertől kéri le a pontos időt legfeljebb δ/(2ρ) másodpercenként (Network Time Protocol). Nem a megkapott időre kell állítani az órát: bele kell számítani, hogy a szerver kezelte a kérést és a válasznak vissza kellett érkeznie a hálózaton keresztül. Berkeley-algoritmus Itt nem feltétlenül a pontos idő beállítása a cél, csak az, hogy minden gép ideje azonos legyen. Az időszerver néha bekéri mindegyik gép idejét, ebből átlagot von, majd mindenkit értesít, hogy a saját óráját mennyivel kell átállítania. Az idő egyik gépnél sem folyhat visszafelé: ha vissza kellene állítani valamelyik órát, akkor ehelyett a számontartott idő mérését lelassítja a gép mindaddig, amíg a kívánt idő be nem áll. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 5 / 28

Az előbb-történt reláció Az előbb-történt (happened-before) reláció Az előbb-történt reláció az alábbi tulajdonságokkal rendelkező reláció. Annak a jelölése, hogy az a esemény előbb-történt-mint b-t: a b. Ha ugyanabban a folyamatban az a esemény korábban következett be b eseménynél, akkor a b. Ha a esemény egy üzenet küldése, és b esemény annak fogadása, akkor a b. A reláció tranzitív: ha a b és b c, akkor a c Parcialitás A fenti reláció parciális rendezés: előfordulhat, hogy két esemény közül egyik sem előzi meg a másikat. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 6 / 28

Logikai órák Az idő és az előbb-történt reláció Minden e eseményhez időbélyeget rendelünk, ami egy egész szám (jelölése: C(e)), és megköveteljük az alábbi tulajdonságokat. Ha a b egy folyamat két eseményére, akkor C(a) < C(b). Ha a esemény egy üzenet küldése és b esemény annak fogadása, akkor C(a) < C(b). Globális óra nélkül? Ha a rendszerben van globális óra, azzal a fenti időbélyegek elkészíthetők. A továbbiakban azt vizsgáljuk, hogyan lehet az időbélyegeket globális óra nélkül elkészíteni. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 7 / 28

Logikai órák: Lamport-féle időbélyegek Minden P i folyamat saját C i számlálót tart nyilván az alábbiak szerint: P i minden eseménye eggyel növeli a számlálót. Az elküldött m üzenetre ráírjuk az időbélyeget: ts(m) = C i. Ha az m üzenet beérkezik P j folyamathoz, ott a számláló új értéke C j = max{c j,ts(m)} + 1 lesz; így az idő nem folyik visszafelé. P i és P j egybeeső időbélyegei közül tekintsük a P i -belit elsőnek, ha i < j. P 1 P 2 P 3 P 1 P 2 P 3 6 12 m 1 8 16 1 2 6 12 m 1 8 16 1 2 18 24 24 32 m 2 3 4 18 24 24 32 m 2 3 4 3 4 5 3 P 2 adjusts 4 5 36 48 6 36 its clock 48 6 42 48 56 64 m 3 7 8 42 48 61 69 m 3 7 8 54 m 4 72 9 7 m 4 77 9 6 8 1 76 P adjusts 85 1 1 its clock Maarten van Steen, Kitlei Róbert (a) Elosztott rendszerek (b) 8 / 28

Logikai órák Beállítás: köztesréteg Az órák állítását és az üzenetek időbélyegeit a köztesréteg kezeli. Application layer Application sends message Message is delivered to application Adjust local clock and timestamp message Adjust local clock Middleware layer Middleware sends message Message is received Network layer Maarten van Steen, Kitlei Róbert Elosztott rendszerek 9 / 28

Logikai órák: példa Pontosan sorbarendezett csoportcímzés Ha replikált adatbázison konkurens műveleteket kell végezni, sokszor követelmény, hogy mindegyik másolaton ugyanolyan sorrendben hajtódjanak végre a műveletek. Az alábbi példában két másolatunk van, a számlán kezdetben $1 van. P 1 befizet $1-t, P 2 1% kamatot helyez el. Update 1 Update 2 Update 1 is performed before update 2 Replicated database Update 2 is performed before update 1 Probléma Ha a műveletek szinkronizációja nem megfelelő, érvénytelen eredményt kapunk: másolat 1 $1111, de másolat 2 $111. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 1 / 28

Példa: Pontosan sorbarendezett csoportcímzés Pontosan sorbarendezett csoportcímzés A P i folyamat minden műveletet időbélyeggel ellátott üzenetben küld el. P i egyúttal beteszi a küldött üzenetet a saját queue i prioritásos sorába. A P j folyamat a beérkező üzeneteket az ő queue j sorába teszi be az időbélyegnek megfelelő prioritással. Az üzenet érkezéséről mindegyik folyamatot értesíti. P j akkor adja át a msg i üzenetet feldolgozásra, ha: (1) msg i a queue j elején található (azaz az ő időbélyege a legkisebb) (2) a queue j sorban minden P k (k i) folyamatnak megtalálható legalább egy üzenete, amelynek msg i -nél későbbi az időbélyege Feltételek Feltételezzük, hogy a kommunikáció a folyamatok között megbízható és FIFO sorrendű. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 11 / 28

Időbélyeg-vektor Okság Arra is szükségünk lehet, hogy megállapíthassuk két eseményről, hogy az egyik okoz(hat)ta-e a másikat illetve fordítva, függetlenek-e egymástól. Az eddigi megközelítésünk erre nem alkalmas: abból, hogy C(a) < C(b), nem vonható le az a következtetés, hogy az a esemény okságilag megelőzi a b eseményt. P 1 P 2 P 3 A példában szereplő adatok 6 12 18 24 3 36 42 48 7 76 m 1 m 5 8 16 24 32 4 48 61 69 77 85 m 2 m 3 m 4 1 2 3 4 5 6 7 8 9 1 a esemény: m 1 beérkezett T = 16 időbélyeggel; b esemény: m 2 elindult T = 2 időbélyeggel. Bár 16 < 2, a és b nem függenek össze okságilag. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 12 / 28

Időbélyeg-vektor Időbélyeg-vektor A P i most már az összes másik folyamat idejét is számon tartja egy VC i [1..n] tömbben, ahol VC i [j] azoknak a P j folyamatban bekövetkezett eseményeknek a száma, amelyekről P i tud. Az m üzenet elküldése során P i megnöveli eggyel VC i [i] értékét (vagyis az üzenetküldés egy eseménynek számít), és a teljes V i időbélyeg-vektort ráírja az üzenetre. Amikor az m üzenet megérkezik a P j folyamathoz, amelyre a ts(m) időbélyeg van írva, két dolog történik: (1) VC j [k] := max{vc j [k],ts(m)[k]} (2) VC j [j] megnő eggyel, vagyis az üzenet fogadása is egy eseménynek számít Maarten van Steen, Kitlei Róbert Elosztott rendszerek 13 / 28

Pontosan sorbarendezett csoportcímzés Időbélyeg-vektor alkalmazása Az időbélyeg-vektorokkal megvalósítható a pontosan sorbarendezett csoportcímzés: csak akkor kézbesítjük az üzeneteket, ha már mindegyik előzményüket kézbesítettük. Ehhez annyit változtatunk az előbb leírt időbélyeg-vektorok működésén, hogy amikor P j fogad egy üzenetet, akkor nem növeljük meg VC j [j] értékét. P j csak akkor kézbesíti az m üzenetet, amikor: ts(m)[i] = VC j [i] + 1, azaz a P j folyamatban P i minden korábbi üzenetét kézbesítettük ts(m)[k] VC j [k] for k i, azaz az üzenet nem a jövőből jött Maarten van Steen, Kitlei Róbert Elosztott rendszerek 14 / 28

Pontosan sorbarendezett csoportcímzés Példa P VC = (1,,) VC = (1,1,) m P 1 VC = (1,1,) 1 P 2 VC 2 = (,,) VC 2 = (1,,) m* VC = (1,1,) 2 Maarten van Steen, Kitlei Róbert Elosztott rendszerek 15 / 28

Kölcsönös kizárás Kölcsönös kizárás: a feladat Több folyamat egyszerre szeretne hozzáférni egy adott erőforráshoz. Ezt egyszerre csak egynek engedhetjük meg közülük, különben az erőforrás helytelen állapotba kerülhet. Megoldásfajták Központi szerver használata. Peer-to-peer rendszeren alapuló teljesen elosztott megoldás. Teljesen elosztott megoldás általános gráfszerkezetre. Teljesen elosztott megoldás (logikai) gyűrűben. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 16 / 28

Kölcsönös kizárás: központosított 1 2 1 2 1 Request OK Request Release No reply 3 Queue is 3 2 3 Coordinator empty OK 2 (a) (b) (c) Maarten van Steen, Kitlei Róbert Elosztott rendszerek 17 / 28

Kölcsönös kizárás: decentralizált Kölcsönös kizárás: decentralizált Tegyük fel, hogy az erőforrás n-szeresen többszörözött, és minden replikátumhoz tartozik egy azt kezelő koordinátor. Az erőforráshoz való hozzáférésről többségi szavazás dönt: legalább m koordinátor engedélye szükséges, ahol m > n/2. Feltesszük, hogy egy esetleges összeomlás után a koordinátor hamar felépül azonban a kiadott engedélyeket elfelejti. Példa: hatékonyság Tegyük fel, hogy a koordinátorok rendelkezésre állásának valószínűsége 99.9% ( három kilences ), 32-szeresen replikált az erőforrásunk, és a koordinátorok háromnegyedének engedélyére van szükségünk (m =.75n). Ekkor annak a valószínűsége, hogy túl sok koordinátor omlik össze, igen alacsony: kevesebb mint 1 4. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 18 / 28

Kölcsönös kizárás: elosztott Működési elv Ismét többszörözött az erőforrás, amikor a kliens hozzá szeretne férni, kérést küld mindegyik koordinátornak (időbélyeggel). Választ (hozzáférési engedélyt) akkor kap, ha a koordinátor nem igényli az erőforást, vagy a koordinátor is igényli az erőforrást, de kisebb az időbélyege. Különben a koordinátor (átmenetileg) nem válaszol. 8 Accesses resource 8 12 8 OK 1 2 1 2 1 2 12 OK 12 (a) (b) (c) OK OK Accesses resource Maarten van Steen, Kitlei Róbert Elosztott rendszerek 19 / 28

Kölcsönös kizárás: zsetongyűrű Essence A folyamatokat logikai gyűrűbe szervezzük (fizikailag lehetnek pl. egy lokális hálózaton). A gyűrűben egy zsetont küldünk körbe, amelyik folyamat birtokolja, az férhet hozzá az erőforráshoz. 1 2 3 2 4 3 7 1 6 5 4 7 6 5 (a) (b) Maarten van Steen, Kitlei Róbert Elosztott rendszerek 2 / 28

Kölcsönös kizárás: összehasonlítás Belépés előtti Algoritmus Be+kilépési késleltetés Problémák üzenetszám (üzenetidőben) Központosított 3 2 Ha összeomlik a koordinátor Decentralizált 2mk + m 2mk Kiéheztetés, rossz hatékonyság Elosztott 2 (n 1) 2 (n 1) Bármely folyamat összeomlása Zsetongyűrű 1.... n 1 A zseton elvész, a birtokló folyamat összeomlik Maarten van Steen, Kitlei Róbert Elosztott rendszerek 21 / 28

Csúcsok globális pozícionálása Feladat Meg szeretnénk becsülni a csúcsok közötti kommunikációs költségeket. Erre többek között azért van szükség, hogy hatékonyan tudjuk megválasztani, melyik gépekre helyezzünk replikátumokat az adatainkból. Ábrázolás A csúcsokat egy többdimenziós geometriai térben ábrázoljuk, ahol a P és Q csúcsok közötti kommunikációs költséget a csúcsok távolsága jelöli. Így a feladatot visszavezettük távolságok becslésére. A tér dimenziószáma minél nagyobb, annál pontosabb lesz a becslésünk, de annál költségesebb is. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 22 / 28

A pozíció kiszámítása A becsléshez szükséges csúcsok száma Egy pont pozíciója meghatározható a tér dimenziószámánál eggyel nagyobb számú másik pontból a tőlük vett távolságok alapján. (x,y ) 2 2 d 2 d 3 P d 1 (x,y ) 1 1 (x,y ) 3 3 Maarten van Steen, Kitlei Róbert Elosztott rendszerek 23 / 28

A pozíció kiszámítása Nehézségek a késleltetések mért értékei ingadoznak nem egyszerűen összeadódnak a távolságok 3.2 1. 2. 1 2 3 4 P Q R Megoldás Válasszunk L darab csúcsot, amelyek pozícióját tegyük fel, hogy nagyon pontosan meghatároztuk. Egy P csúcsot ezekhez viszonyítva helyezünk el: megmérjük az összestől mért késleltetését, majd úgy választjuk meg P pozícióját, hogy az össz-hiba (a mért késleltetések és a megválasztott pozícióból geometriailag adódó késleltetés eltérése) a legkisebb legyen. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 24 / 28

Vezetőválasztás: zsarnok-algoritmus Vezetőválasztás: feladat Sok algoritmusnak szüksége van arra, hogy kijelöljön egy folyamatot, amely aztán a további lépéseket koordinálja. Ezt a folyamatot dinamikusan szeretnénk kiválasztani. Zsarnok-algoritmus A folyamatoknak sorszámot adunk. A legnagyobb sorszámú folyamatot szeretnénk vezetőnek választani. Bármelyik folyamat kezdeményezhet vezetőválasztást. Mindegyik folyamatnak (amelyről nem ismert, hogy kisebb lenne a küldőnél a sorszáma) elküld egy választási üzenetet. Ha P nagyobb üzenetet kap P kisebb -től, visszaküld neki egy olyan üzenetet, amellyel kiveszi P kisebb -et a választásból. Ha P megadott időn belül nem kap letiltó üzenetet, ő lesz a vezető. Erről mindegyik másik folyamatot értesíti egy üzenettel. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 25 / 28

Zsarnok-algoritmus 4 1 2 5 2 Election 6 4 3 Election Election 1 1 OK 5 2 6 4 3 7 7 7 Previous coordinator has crashed (a) (b) (c) OK Election 5 Election Election 3 6 2 1 5 2 1 5 4 OK 6 4 Coordinator 6 7 3 7 3 (d) (e) Maarten van Steen, Kitlei Róbert Elosztott rendszerek 26 / 28

Vezetőválasztás gyűrűben Vezetőválasztás gyűrűben Ismét logikai gyűrűnk van, és a folyamatoknak vannak sorszámai. A legnagyobb sorszámú folyamatot szeretnénk vezetőnek választani. Bármelyik folyamat kezdeményezhet vezetőválasztást: elindít egy üzenetet a gyűrűn körbe, amelyre mindenki ráírja a sorszámát. Ha egy folyamat összeomlott, az kimarad az üzenetküldés menetéből. Amikor az üzenet visszajut a kezdeményezőhöz, minden aktív folyamat sorszáma szerepel rajta. Ezek közül a legnagyobb lesz a vezető; ezt egy másik üzenet körbeküldése tudatja mindenkivel. Nem okozhat problémát, ha több folyamat is egyszerre kezdeményez választást, mert ugyanaz az eredmény adódik. Ha pedig az üzenetek valahol elvesznének (összeomlik az éppen őket tároló folyamat), akkor újrakezdhető a választás. Maarten van Steen, Kitlei Róbert Elosztott rendszerek 27 / 28

Superpeer-választás Szempontok A superpeer-eket úgy szeretnénk megválasztani, hogy teljesüljön rájuk: A többi csúcs alacsony késleltetéssel éri el őket Egyenletesen vannak elosztva a hálózaton A csúcsok megadott hányadát választjuk superpeer-nek Egy superpeer korlátozott számú peer-t szolgál ki Megvalósítás DHT használata esetén Az azonosítók terének egy részét fenntartjuk a superpeer-ek számára. Példa: ha m-bites azonosítókat használunk, és S superpeer-re van szükségünk, a k = log 2 S felső bitet foglaljuk le a superpeer-ek számára. Így N csúcs esetén kb. 2 k m N darab superpeer lesz. A p kulcshoz tartozó superpeer: a p AND 11 11 }{{} }{{} kulcs felelőse az. k m k Maarten van Steen, Kitlei Róbert Elosztott rendszerek 28 / 28