140 likes | 253 Views
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. Fixn í sequencer Unicast-broadcast. Poslání zprávy sequenceru Broadcast zprávy od sequenceru ke členům. Fixní sequencer Broadcast-broadcast.
E N D
Distribuované systémycvičení 3 Sequencer, sekvenční doručování, příčinné (kauzální) doručování Cvičení č.3 Ing. Jiří Ledvina, CSc.
Fixní sequencer Unicast-broadcast • Poslání zprávy sequenceru • Broadcast zprávy od sequenceru ke členům Sequencery
Fixní sequencerBroadcast-broadcast • Broadcast zprávy jednotlivým členům i sequenceru • Broadcast sekvenčního čísla všem členům Sequencery
Fixní sequencerUnicast-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í) 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 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 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ě 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 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ávym, 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). Sequencery
Techniky uspořádání podle příčinnosti • Historie příčinnosti • Zahrnutí všech událostí které danou událost předcházejí 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 Sequencery
Porušení kauzality (příčinnosti) Sequencery
Kauzální doručování broadcast zpráv • Stejný časový vektor pro všechny příjemce Sequencery