Volba v udce, Leader Election PA 150 Principy operacnch syst em u Jan Staudek http://www..muni.cz/usr/staudek/vyuka/ Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Verze : podzim 2018
Volebn probl em { Kdy a proc se vol vedouc uzel? Existuje potreba spustit nov y centr aln proces napr. koordin atora vz ajemn eho vyloucen ci transakc, resp. nov y centr aln casov y server, resp. ztratil se token a jedin y uzel mus vygenerovat nov y token, resp. hled a se kostra grafu, ve kter e m a b yt v udce koren (stromu) Programov an distribuovan ych aplikac je typicky jednoduss v prostred typu master/slave, (tj. 1/n proces u), napr. { rozesl an zpr av ke vsem uzl um po kostre grafu organizovan e z korene { koordinace distribuovan ych transakc Roli vedoucho objektu vyzaduje rada spr av v yjimek, napr. { odstran en uv aznut, generov an tokenu (peska) Dynamick e urcov an vedoucho uzlu m a radu prednost, napr. { nevad v ypadek centr alnho uzlu { koordin atora { mnozina cinn ych proces u, ze kter ych se vol, nemus b yt statick a Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 1
Volebn probl em Denice probl emu kazd y v ypocet podle volebnho algoritmu ve skupine proces u v DS mus v konecn em case koncit kongurac, ve kter e je jeden jedin y uzel v roli v udce (leader, master,... ) Kazd y proces ve skupine proces u se dobe sv e existence nach az v jednom ze tr stav u: nerozhodnut y, ve skupine proces u bez volba v udce, volba ve skupine proces u skoncila nen v udce, volba ve skupine proces u skoncila Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 2
Volebn probl em Skupina proces u v DS je skupinou anonymnch proces u pokud procesy ve skupin e nemaj jedinecn e id Skupina proces u v DS je skupinou neanonymnch proces u pokud procesy ve skupine maj jedinecn e id Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 3
Volebn probl em Algoritmus volby je { uniformn pokud procesy neznaj pocet proces u ve skupine proces u { neuniformn pokud procesy znaj pocet proces u ve skupine proces u Uniformn algoritmus stejn y algoritmus pro jak ykoliv rozm er skupiny kazd y proces v kazd em rozmeru skupiny je modelovan y stejn ym stavov ym strojem Neuniformn algoritmus algoritmy pro r uzn e rozmery skupiny se lis pro kazd e n kazd y proces ve skupine rozmeru n je modelovan y stejn ym stavov ym strojem A n Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 4
Volebn probl em Resen volby v udce ve skupine anonymnch proces u neexistuje nelze splnit podmnku bezpecnosti v kazd em kroku volby vsichni dost avaj shodn e zpr avy, kazd y se m uze prohl asit za v udce Specikace algoritmu pro skupinu neanonymnch proces u procesy maj jedinecn y id z tot alne uspor adan e mnoziny vsechny uzly res stejn y lok aln algoritmus algoritmus volby v udce je decentralizovan y algoritmus, inici atorem m uze b yt kter ykoliv proces DS, algoritmus m uze iniciovat vce inici ator u soub ezn e algoritmus v kazd em proveden dos ahne termin aln konguraci, ve kter e je ve skupine proces u DS jedin y proces (uzel, komponenta) ve stavu v udce Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 5
Volba, volebn b eh, ucastnk volby M ejme skupinu neanonymnch proces u, ve kter e je jeden proces v udce, ostatn procesy nejsou v udci Roli v udce prebral proces, kter y byl vt ez proveden volby Proces, kter y spoust jeden konkr etn b eh volebnho algoritmu, vyvol av a volebn b eh, je iniciátorem Kazd y proces m uze najednou vyvolat pouze jeden volebn b eh v prostred N proces u se m uze soucasne odehr avat v r amci jedn e volby az N volebnch beh u Kazd y proces m a pr avo i povinnost volit Volba konc ukoncenm vsech volebnch b eh u aktivovan ych v aktivovan e volb e Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 6
Volba, volebn b eh, ucastnk volby Kazd y proces m uze b yt v dobe resen algoritmu ucastnk volby (participant), pak participuje alespo n v jednom volebnm b ehu, do ukoncen volby je ve stavu nerozhodnut y,,ne ucastnk" volby (non-participant), pak neparticipuje v z adn em volebnm behu jeho stav nen denovan y Po ukoncen volby se kazd y uzel nach az v jednom ze 2 stav u v udce, vedouc uzel, vt ez volby (master, elected, winner) nebo nen v udce, je podrzen y uzel (not-elected, slave, loser) roli v udce (master) zsk a po ukoncen volebnho behu jedin y uzel Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 7
Volebn algoritmus, vlastnosti v yb er zvolen eho procesu (master) mus b yt jednoznacn y, i kdyz se realizuje vce volebnch beh u soubezne Bez omezen obecnosti lze zav est podmnku vt ezn e volby { vol se proces s nejvyss prioritou, s nejvetsm id,... priorita m uze b yt i strukturovan a { napr. chceme-li zvolit pro roli master proces b ezc na procesoru s nejmens pr um ernou v ypocetn z at ez, jako id procesoru zavedeme hodnotu {1/load, i}, kde load>0 je % doby procesoru venovan e aplikacnm proces um a i je jedinecn y index procesoru pro odlisen procesor u se stejnou z atez Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 8
Volebn algoritmus, vlastnosti Kazd y proces P i si udrzuje promennou elected i inici aln e obsahuje pr azdnou hodnotu ( ) po ukoncen volebnho algoritmu obsahuje id zvolen eho procesu Vsechny procesy maj denovanou prioritu procesy znaj sk alu hodnot priorit kazd y proces zn a svoji prioritu Ilustrace akcent u spust en volebnho b ehu proces P i posle koordin atorovi zpr avu a nedostane do doby T odpoved' (napr. nedostane casov e raztko od casov eho serveru) proces P i nedostane do doby T token,... Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 9
Volebn algoritmus, podmnky resen bezpecnostn podmnka resen volebnho algoritmu rozhodnut uzlu b yt vedoucm (zvolen ym) procesem je zvolen ym procesem nezm eniteln e vedoucm procesem je nejv yse jeden proces, je jm bezc proces s nejvyss prioritou, P max (s nejvetsm id,... ) kazd y ucastnk volby m a elected i = nebo elected i = id s P max podmnka zivosti resen volebnho algoritmu na volb e participuj vsechny uzly a nakonec vsechny uzly nastav elected i jeden z uzl u se nakonec stane vedouc uzel dokud se proces nestane ucastnkem volby, m uze mt elected i nastaveno na id procesu zvolen eho v predesl e volbe Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 10
Studovan e volebn algoritmy Ring algorithm { volba sm erovan a po komunikacnm kruhu (LeLann, 1977) Ring algorithm { volba sm erovan a po komunikacnm kruhu (Chang, Roberts, 1979) Ring algorithm { volba sm erovan a po komunikacnm kruhu (Hirschberg-Sinclair, 1980) Bully algorithm { volba v obecn e topologii (Garcia-Molina, 1982) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 11
Volebn algoritmus, Ring algorithm { LeLann, 1977 Inici ator posl a sv uj ID po kruhu, spoust volebn beh Kruh je jednosmern y, kazd y proces m a jednoho souseda, komunikace je ve FIFO rezimu Pokud volebn b eh dos ahne uzel dosud neparticipujc na volbe, spoust volebn beh tohoto uzlu Z prich azejcch zpr av si kazd y uzel postupne zapamatov av a ID ostatnch proces u a tyto zpr avy preposl a d al po kruhu. Jakmile zsk a zpr avu se sv ym ID, zn a ID vsech proces u na kruhu a ze seznamu ID zjist'uje kdo bude v udce (nejmens/nejvets ID,... ) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 12
Volebn algoritmus, Ring algorithm { LeLann, 1977 Kazd y proces si v pr ubehu algoritmu volby vypracov av a seznam aktivnch proces u s jejich prioritami Po ukoncen volby kazd y proces v seznamu rozpozn a s efa Necht' proces P i detekuje v ypadek s efa, pak jeho dals kroky inicializuj volebn b eh: P i si vytvor nov y, poc atecne pr azdn y, seznam aktivnch proces u, P i posl a sv emu (prav emu) sousedovi volc zpr avu elect(i) a do sv eho seznamu aktivnch proces u zapisuje i... Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 13
Volebn algoritmus, Ring algorithm { LeLann, 1977 Necht' proces P i dostane zpr avu elect(j) od lev eho souseda P j, pak reaguje jednm z n asledujc postup u: Zpr ava elect(j) je prvn ze zpr av elect, kter e P i dostal: Proces P i se st av a ucastnkem volby a i) vytvor si nov y seznamu aktivnch proces u, poc atecne pr azdn y, a zapse do nej i a j ii) a posle zpr avy elect(j) a elect(i) sv emu prav emu sousedovi Zpr ava elect(j) nen prvn ze zpr av elect, a pritom plat i j: Proces P i je jiz ucastnkem volby a i) do sv eho seznamu aktivnch proces u prid a j a ii) preposle elect(j) sv emu prav emu sousedovi Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 14
Volebn algoritmus, Ring algorithm { LeLann, 1977 Zpr ava elect(j) nen prvn ze zpr av elect, a pritom plat i = j: proces P i drz seznam aktivnch proces u, kter y obsahuje priority vsech proces u v syst emu a P i si m uze zjistit kdo bude v dalsm obdob koordin ator a z adnou zpr avu d al neposl a Nastav si svoji promennou elected i = id na P max Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 15
Volebn algoritmus, Ring algorithm { LeLann, 1977 Algoritmus m a kvadratickou komunikacn slozitost, kazd y proces z N proces u zp usob generov an N zpr av Algoritmus je uniformn,decentralizovan y, asynchronn Obnoven y proces po v ypadku nemus spoust et volebn b eh, m uze id koordin atora zjistit napr. dotazem poslan ym po kruhu N asledujc algoritmus, Chang, Roberts, vylepsuje LeLan uv algoritmus tm, ze odstra nuje z kruhu volebn b ehy proces u o kter ych je jasn e, ze nebudou zvoleni Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 16
Volebn algoritmus, Ring algorithm { volba po kruhu Chang, Roberts, 1979 N proces u, kazd y proces P i m a denovan y komunikacn kan al ke sv emu n aslednkovi P (i+1)mod N kazd y proces si uchov av a id master v elected i elected i obsahuje id procesu s maxim aln prioritou nebo kazd y proces je ve stavu participant ( ucastnk) nebo non-participant volby inici aln e nen z adn y proces ucastnkem volby proces P i zahajujc sv uj volebn beh se oznac za ucastnka volby a posle volc zpr avu election(p i ) sv emu (lev emu) sousedovi Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 17
Volebn algoritmus, Ring algorithm { Chang, Roberts Uzel P j po zsk an zpr avy election(p i ) od sv eho prav eho souseda reaguje n asledovn e P i > P j : P i P i P j preposle election(p i ) sv emu lev emu sousedovi, bez volebn beh P i < P j a P j dosud nen ucastnk volby: P j posle election(p j ) sv emu lev emu sousedovi, startuje sv uj volebn b eh, oznac se za ucastnka volby < P j a P j je ucastnk volby: P j prijatou zpr avu nepreposl a, jeho volebn beh jiz bez volebn beh P i rus P i = P j : P j zskal volc zpr avu, kterou on vyslal, prepne se do stavu vedouc uzel a oznac se za ne ucastnka volby a posle po kruhu ukoncovac zpr avu elected(p i ) oznamujc identitu vedoucho uzlu Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 18
Volebn algoritmus, Ring algorithm { Chang, Roberts Uzel P i po zsk an zpr avy elected(p j ) od sv eho prav eho souseda reaguje n asledovn e oznac se za ne- ucastnka volby poznac si identikaci nov eho vedoucho uzlu a pokud nen nov ym koordin atorem, zpr avu elected(p j ) preposle sv emu lev emu sousedovi sledov an stav u ucastnk / ne- ucastnk co nejdrve likviduje zbytecn e n asobn e volc behy, vzdy drve nez se ozn am v ysledek vtezn e volby v ypadek uzlu znamen a v ypadek cel e ulohy, v praxi by se musela vyvol avat rekonstrukce kruhu Komunikacn kan aly mus dodrzovat FIFO porad prenosu zpr av Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 19
Volebn algoritmus, Ring algorithm { Chang, Roberts Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 20
Volebn algoritmus, Ring algorithm { Chang, Roberts spr avnost algoritmu, spln en podmnky bezpecnosti pouze uzel P j s maxim aln hodnotou P j zsk a od sv eho prav eho souseda ukoncovac zpr avu a vstoup do stavu vedouc uzel uzly P i P j, kde P j je maxim aln hodnota identikace, nikdy nevstoup do stavu vedouc uzel Jestlize volbu spust jedin y proces, pak v nejhorsm prpad e (proces s nejvyss id je jeho prav y soused), algoritmus generuje 3N 1 zpr av b eh volebnho algoritmu se spoust dvakr at, druh y se ukonc volbou druh y beh se spoust po pred an prvnch N 1 zpr av election druh y beh zp usob pred an dalsch N zpr av election zvolen y uzel zp usob vysl an N zpr av elected Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 21
Volebn algoritmus, Ring algorithm { Chang, Roberts Komunikacn slozitost algoritmu spust en eho soub ezn e vsemi potenci alnmi inici atory je O(N 2 ), casov a slozitost je O(N) Algoritmus je asynchronn a uniformn a decentralizovan y Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 22
Volebn algoritmus, Ring algorithm { Chang, Roberts Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 23
Volebn algoritmus, Ring algorithm { Chang, Roberts Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 24
Volebn algoritmus, Ring algorithm { Chang, Roberts Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 25
Volebn algoritmus, Ring algorithm { Chang, Roberts Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 26
Volebn algoritmus, Ring algorithm { Chang, Roberts plus 5 zpr av oznamujcch cslo zvolen eho uzlu, 5, takze 20 zpr av (n + (n 1) +... + 1) + n = n(n + 1)/2 + n, slozitost O(n 2 ) 5(5 + 1)/2 + 5 = 30/2 + 5 = 20 Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 27
Volba v udce, Ring algorithm, snzen komunikacn slozitosti Lze snzit komunikacn slozitost pod O(n 2 )? Zkusme srit zpr avy s mensm ID na mens vzd alenost po kruhu Uk azeme, ze lze dos ahnout komunikacn slozitost O(n. log n) v nejhorsm prpade uspor ad an uzl u na kruhu Za cenu pouzit komplikovan ejsho algoritmu Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 28
Volba v udce, Ring algorithm, snzen komunikacn slozitosti Kazd y proces bude postupne zkoumat vzd alenejs a vzd alenejs sousedy v obou smerech na kruhu V kazd e f azi zkoum an zdvojn asob vzd alenost zkoum an Jestlize jeho sonda dos ahne proces s v etsm ID, zkoum an se zastav Jakmile sonda dos ahne clen eho souseda, vrac se odpov ed' inici atorovi Jestlize inici ator dostane odpoved' z obou smer u, prejde do dals f aze Jakmile proces zsk a sondu se sv ym ID, vol se za v udce Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 29
Volba v udce, Ring algorithm, snzen komunikacn slozitosti kazd a zpr ava n alez konkr etn f azi a m a sv eho inici atora D elka pr uzkumu ve f azi k je 2 k v kazd e f azi se prenese az 4 2 k zpr av Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 30
Volba v udce, Ring algorithm, snzen komunikacn slozitosti Ve f azi k = 0 m uze zah ajit zkoum an kazd y proces Ve f azi k > 0 m uze zah ajit zkoum an kazd y vtez f aze f aze k 1 vtez m a nejvets ID pri zkoum an do vzd alenosti 2 k 1 Maxim aln pocet vtez u f aze k 1 nastane pokud jsou naskl adan tak huste, jak je to mozn e ve f azi k 1 bude nejv yse n/(2 k 1 + 1) vtez u v kazd e f azi se mozn y pocet vtez u snizuje cca na polovinu od n/(2 k 1 + 1) do n/(2 k + 1) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 31
Volba v udce, Ring algorithm, snzen komunikacn slozitosti Celkov y pocet zpr av je sumou pres vsechny f aze poct u vtez u v techto f azch kr at pocty zpr av zahajovan ych temito vtezi Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 32
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair r. 1980, topologie { obousm ern y (neorientovan y) kruh Inici ator v jednotliv ych f azch r = 0, 1, 2,... posl a svoji identitu obema smery do vzd alenosti 2 r vlnou nesouc pr uzkumnou zpr avu (jsem p i, m am nejvyss prioritu?) ocek av a jej pozitivn potvrzen po odrazu v poslednm z vlnou osloven ych uzl u Identity cestujc po kruhu jsou likvidovan e stejn e jako v algoritmu Chang-Roberts Proces p i je vtez ve f azi r = 0, 1,... pokud m a nejvyss id ze vsech proces u, kter e jsou od neho vzd alen e az 2 r skok u Do f aze r + 1 vstupuj pouze vtezov e f aze r Ostatn procesy pouze pren asej zpr avy mezi sousedy Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 33
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 34
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 35
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 36
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 37
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 38
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 39
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 40
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 41
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 42
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 43
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 44
Volebn algoritmus, Ring algorithm { Hirschberg-Sinclair n uzl u, O(log n) f az D elka zkoum an ve f azi k je 2 k Pocet zpr av souvisejcch s jednm docasn e vedoucm procesem ve f azi k je nejv yse 4 2 k ve f azch 0, 1,..., i,..., log n to jsou pocty zpr av 4, 8,..., 2 i+1,... 2 log n+1 a pocty docasn ych vtez u n, n/2,..., n/2 i log n 1,..., n/2 zatmco ve f azi 0 kazd y z n inici ator u generuje vysl an 4 zpr av ve f azi 1 kazd y z n/2 inici ator u generuje po 8 zpr av ach atd Slozitost z hlediska poctu zpr av je tudz O(n.log n) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 45
Volebn algoritmus, Bully algorithm Bully { tyran, osoba, kter a obvykle otravuje a zastrasuje mens nebo slabs lidi { proces s nejvyss prioritou vynucujc si v udcovskou roli Pouziteln y v prpadech, ve kter ych { proces m uze poslat zpr avu kazd emu z ostatnch proces u v denovan e mnozine proces u { se mohou vyskytovat v ypadky uzl u (proces u) { komunikacn syst em je spolehliv y, zpr avy se neztr ac V ypadek uzlu se pozn a uplynutm casov eho intervalu (timeout) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 46
Volebn algoritmus, Bully algorithm Kdyz se proces rozhodne volit, zvol sebe a zasle o tom zpr avu vsem proces um s vyss prioritou, spoust sv uj volebn b eh Kdyz proces prijme zpr avu o volebnm b ehu jin eho procesu, m a urcit e vyss prioritu,vr at mu zp et zamtavou odpov ed' a s am spoust sv uj volebn beh { vysle z adosti vsem prioritn ejsm proces um Kdyz procesu dostane zamtavou odpov ed', existuje proces s vyss prioritou a proces se sv uj volebn beh konc Kdyz proces nedostane zamtavou odpov ed', volbu vyhr al, je nov ym master procesem a posle o tom zpr avu vsem ostatnm proces um Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 47
Volebn algoritmus, Bully algorithm Proces P i, kter y rozpozn a v ypadek s efa { tyrana, se pokous prohl asit za nov eho s efa sebe spust enm volebnho b ehu zjist'uje, zda on m a ze vsech pr ave cinn ych proces u nejvyss prioritu, (mus tudz vsechny kooperujc procesy zn at) nem a-li nejvyss prioritu, d a spust enm volebnho b ehu podn et k volebn aktivite pr ave cinn ym proces um s vyss prioritou Pokud obnov sv uj beh vypadl y proces, spoust okamzit e sv uj volebn b eh Pokud nen aktivn z adn y proces s vyss prioritou nez je jeho priorita, prebere tak roli s efa a vsichni se o tom dozv nebo se dozv, kdo je s efem Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 48
Volebn algoritmus, Bully algorithm Algoritmus P i zjistil necinnost dosavadnho s efa P i posle volc zpr avu { election(p i ) vsem proces um s vyssm prioritnm cslem nez m a on, kterou spoust nov y volebn b eh P i se pokous prohl asit sebe za s efa P i cek a dobu T na obdrzen odpoved s odmtnutm t eto volby od proces u s vyss prioritou, reject Pokud inici ator volby P i nedostane do doby T z adn e odmtnut volby { nen aktivn z adn y proces s vyss prioritou nez je priorita P i a { P i se zpr avou coordinator(p i ), zaslanou vsem proces um, prohlasuje za s efa... Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 49
Volebn algoritmus, Bully algorithm Pokud inici ator volby P i dostane do doby T odmtnut volby, reject { je aktivn proces s vyss prioritou nez i, napr. j a { P i cek a dobu T 1 na obdrzen zpr avy od P j, ze pro dals obdob bude roli s efa vykon avat P j, coordinator(p j ) Pokud inici ator P i nedostane do doby T 1 zpr avu od P j, ze P j prebr a roli s efa, { P i startuje sv uj volebn beh znovu (P j mezitm vypadl) Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 50
Volebn algoritmus, Bully algorithm Pokud P i nen s ef, m uze kdykoliv dostat od jin eho procesu P j jednu ze dvou zpr av coordinator(p j ) nebo election(p j ) coordinator(p j ) a j > i, pak plat, ze { P j je nov y koordin ator, P i si to zapamatuje v promenn e elected coordinator(p j ) a j < i, pak plat, ze { P i byl v dobe volby vypadl y a uz obnovil svoji cinnost, ale jeste nespustil volebn beh a proto spoust volebn beh election(p j ) a j < i, pak P j startoval volebn beh nepr avem, P i posle P j odpoved' reject a zahajuje algoritmus sv e vlastn volby, pokud tak dosud neucinil election(p j ) a j > i, pak cek a na zpr avu coordinator(p j ) a pokud ji do timeoutu nezsk a, spoust volebn beh Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 51
Volebn algoritmus, Bully algorithm Slozitost Bully algoritmu O(N 2 ) zpr av v nejhorsm prpade tj. kdyz volbu zah aj proces s nejnizs identikac, pak postupn e zahajuje volbu N 1 proces u rozesl anm az N 1 zpr av Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 52
Volebn algoritmus, Bully algorithm Slozitost Bully algoritmu O(N 2 ) zpr av v nejhorsm prpade tj. kdyz volbu zah aj proces s nejnizs identikac, pak postupn e zahajuje volbu N 1 proces u rozesl anm az N 1 zpr av Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 53
Volebn algoritmus, Bully algorithm 1. 4 aktivn procesy, P 1,...,4, P 4 je koordin ator 2. P 1 a P 4 vypadnou. P 2 nedostane do doby T odpoved' od P 4 a posle proto P 3 svou volc zpr avu 3. P 3 odpov P 2 odmtnutm a zasle svou volc zpr avu P 4 4. P 2 dostane odmtnut sv e volby od P 3 a po dobu T 1 cek a na potvrzen, ze P 3 je koordin ator 5. P 4 mlc, je st ale vypadl y, do doby T neodmtne P 3 a P 3 se prohl as za koordin atora a vsem to sdel 6. Pozdeji, kdyz se P 1 obnov, zasle svou volc zpr avu P 2, P 3 a P 4 7. P 2 a P 3 odpov odmtnutm P 1 a spust svoje volby a P 3 se opet stejn ym postupem zvol za koordin atora 8. Az se obnov P 4 sdel to P 1, P 2 a P 3, volbu nezahajuje, nezn a proces vyss prority Jan Staudek, FI MU Brno PA150 { Koordinace a dosazen shody v distribuovan em prostred 54