Distribuované systémy cvičení 3 Sequencer, sekvenční doručování, příčinné (kauzální) doručování Cvičení č.3 Ing. Jiří Ledvina, CSc. Klepněte a vložte poznámky.
Fixní sequencer Unicast-broadcast Poslání zprávy sequenceru Broadcast zprávy od sequenceru ke členům Přínos prezentace pro posluchače: Dospělí posluchači se o předmět zajímají více, pokud jsou seznámeni s jeho důležitostí. Úroveň znalostí přednášejícího v daném předmětu: Stručně doložte své znalosti v této oblasti nebo zdůvodněte, proč vám mají účastníci věnovat pozornost. 6.10.2008 Sequencery
Fixní sequencer Broadcast-broadcast Broadcast zprávy jednotlivým členům i sequenceru Broadcast sekvenčního čísla všem členům Popisy lekcí by měly být stručné. 6.10.2008 Sequencery
Fixní sequencer Unicast-unicast-broadcast Vyžádání si sekvenčního čísla od sequenceru Poslání sekvenčního čísla sequencerem do uzlu Broadcast zprávy od uzlu všem členům (podle pořadí) Příklady cílů Po ukončení této lekce budete schopni: ukládat soubory na týmový webový server, přesouvat soubory do jiných umístění na týmovém webovém serveru, sdílet soubory na týmovém webovém serveru. 6.10.2008 Sequencery
Přesunující se sequencer (rotující sequencer) Založen na stejném principu jako fixní sequencer Role sequenceru je přenášena mezi několika procesy Motivací je rozdělení zátěže Vysílač posílá požadavek všem sequencerům Sequencery si posílají pověření, obsahující pořasové číslo a všechny zprávy, které jsou zařazeny podle sekvenčních čísel Po přijetí tokenu sequencer přiřadí sekvenční číslo všem přijatým, ale nezařazeným zprávám Odešle všechny nově zařazené zprávy Opraví pověření a pošle ho dalšímu sequenceru. Obdoba varianty broadcast-broadcast 6.10.2008 Sequencery
Přesunující se sequencer (rotující sequencer) 6.10.2008 Sequencery
Sekvenční doručování Algoritmy s předáváním oprávnění - broadcast Vysílače mohou vysílat jen tehdy, pokud k tomu mají pověření Často založeny na logickém kruhu 6.10.2008 Sequencery
Sekvenční doručování Dohoda na straně příjemců Vysílač vyšle broadcast zprávu všem příjemcům Každý příjemce přiřadí zprávě lokálně časovou značku Pošle časovou značku všem příjemcům Příjemce po přijetí časové značky ode všech sousedů vypočte maximum a přiřadí je zprávě Zprávy jsou zpracovány podle časových značek vzestupně 6.10.2008 Sequencery
Definice kauzality (příčinnost) Jestliže a a b jsou dvě události téhož procesu a a předchází b, pak říkáme, že a nastalo před b. Jestliže a je proces posílající zprávu a tato zpráva je přijata procesem b, pak říkáme, že a nastalo před b Jestliže a nastalo před b a b nastalo před c, pak a nastalo před c relace „nastalo před“ se označuje symbolem → (a → b) Relace → je nereflexivní, asymetrická a tranzitivní, tj. striktně částečně uspořádaná Relace → je také označována jako relace kauzality nebo potenciální kauzality 6.10.2008 Sequencery
Logický čas Pro události a a b platí jestliže a → b pak C(a) < C(b) Pravidla pro manipulaci s logickými hodinami Každý proces inkrementuje C mezi dvěma událostmi Jestliže událost a je odeslání zprávy m, pak zpráva m obsahuje časovou značku C(a) Jestliže proces přijme zprávu m se značkou C(a) jako událost C(b), pak své logické hodiny nastaví na hodnotu o 1 větší než je maximum C(a) a C(b). 6.10.2008 Sequencery
Techniky uspořádání podle příčinnosti Historie příčinnosti Zahrnutí všech událostí které danou událost předcházejí 6.10.2008 Sequencery
Techniky uspořádání podle příčinnosti Lamportovy časové značky Není dostatečné pro určení příčinnosti Vektorové časové značky Rozlišuje události na Konkurentní Příčinně závislé Pokud proces a přijme zprávu od procesu b, pak C(b)++ C(i) = max(C(i), M(i); pro b <> i 6.10.2008 Sequencery
Porušení kauzality (příčinnosti) 6.10.2008 Sequencery
Kauzální doručování broadcast zpráv Stejný časový vektor pro všechny příjemce 6.10.2008 Sequencery