Čas a kauzalita v DS

Podobné dokumenty
Výpočet globálního stavu

Vzájemné vyloučení procesů

PDV /2018 Detekce selhání

Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

FVZ K13138-TACR-V006-G-PTP_TESTER

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Konzistentnost. Přednášky z distribuovaných systémů

Vypracoval: Ing. Antonín POPELKA. Datum: 30. června Revize 01

Paralelní programování

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

VYHLÁŠKA. č. 18/2014 Sb., o stanovení podmínek postupu při elektronické dražbě. ze dne 24. ledna 2014

Stromy, haldy, prioritní fronty

4. Úvod do paralelismu, metody paralelizace

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

SMART GRID SYSTEM TECHNOLOGIE PRO ANALYTIKU A SPRÁVU ENERGETICKÝCH SÍTÍ. Představení společnosti Analyzátor sítě

AVDAT Nelineární regresní model

Paralelní programování

Měření dat Filtrace dat, Kalmanův filtr

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Úvod do distribuovaných systémů

5. Lokální, vázané a globální extrémy

Výroková logika syntaxe a sémantika

Základní datové struktury III: Stromy, haldy

Dijkstrův algoritmus

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Základy matematiky pro FEK

Synchronizace. Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.

Bednář Vladislav Bambuch

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Matematika I 2a Konečná pravděpodobnost

Přerušovací systém s prioritním řetězem

Distribuované systémy a výpočty

Souborové systémy a práce s daty David Antoš

KONTAKT Autor: Tomáš. Kohout Vedoucí: : Ing. Pavel Burget, Ph.D. .D. fel.cvut.cz) Kohout

Neuronové časové řady (ANN-TS)

Vnější směrovací protokoly

Představíme základy bezdrátových sítí. Popíšeme jednotlivé typy sítí a zabezpečení.

SNMP Simple Network Management Protocol

Rada Evropské unie Brusel 8. června 2016 (OR. en) Jordi AYET PUIGARNAU, ředitel, za generálního tajemníka Evropské komise

ˇ razen ı rychlejˇ s ı neˇ z kvadratick e Karel Hor ak, Petr Ryˇsav y 20. dubna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Globální matice konstrukce

Distribuované algoritmy

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Úvod do informačních služeb Internetu

FVZ K13138-TACR-V004-G-TRIGGER_BOX

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

NOVINKY v PROGRAMU DOCHÁZKA ADS

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Přesný čas v datových a transportních sítích, přenos se zachováním frekvence a fáze. 1PPS,SyncE,PTP. Martin Havlíček (mh@hke.cz)

Charakterizují kvantitativně vlastnosti předmětů a jevů.

Modely Herbrandovské interpretace

Úvod do informačních a řídicích systémů. lení

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

CAL (CAN Application Layer) a CANopen

Základy maticového počtu Matice, determinant, definitnost

Konsensus a Algoritmu Raft

Třídy složitosti P a NP, NP-úplnost

Systematická tvorba jízdního řádu 2. cvičení

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

KINEMATIKA HMOTNÉHO BODU. Mgr. Jan Ptáčník - GJVJ - Fyzika - Mechanika - 1. ročník

dovolují dělení velkých úloh na menší = dekompozice

Návrh čítače jako automatu

Vzdálenost uzlů v neorientovaném grafu

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Měření dat Filtrace dat, Kalmanův filtr

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Management sítí OSI management framework SNMP Komerční diagnostické nástroje Opensource diagnostické nástroje

Automatizované řešení úloh s omezeními

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

Funkce dvou a více proměnných

Pavel Procházka. 3. prosince 2014

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Režim BiLevel a ventilátory 800 Series

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Úloha - rozpoznávání číslic

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

Základy matematické analýzy

Úvod do lineární algebry

Teorie systémů TES 1. Úvod

0.1 Úvod do lineární algebry

EXTRAKT z mezinárodní normy

DOPLNĚK. Projekt Informační systém základních registrů je spolufinancován Evropskou unií z Evropského fondu pro regionální rozvoj.

Aktivní prvky: brány a směrovače. směrovače

Paralelní programování

Model Checking pro Timed Automata. Jiří Vyskočil 2011

Návrh softwarových systémů - mobilita. Jiří Šebek (B6B36NSS)

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

6. Vektorový počet Studijní text. 6. Vektorový počet

Převodník Ethernet ARINC 429

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

9/2011 Sb. VYHLÁŠKA ze dne 10. ledna 2011,

Správa sítí. RNDr. Ing. Vladimir Smotlacha, Ph.D.

Aplikovaná numerická matematika

Transkript:

PDV 09 2017/2018 Čas a kauzalita v DS Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT

Příklad: Letecký rezervační systém 1. Server A obdrží klientský požadavek na koupi poslední letenky na let ABC123 2. Server A opatří nákup časovou značkou lokálních hodin: 9h:15h:32.45s, zaznamená do logu a odpoví klientovi. 3. Toto bylo poslední volné místo. Server A pošle serveru B zprávu Let ABC123 je plný. 4. Server B si do svého logu uloží Let ABC123 je plný s časovou značkou podle jeho lokálních hodin 9h:10m:10.11s. 5. Server C se dotáže logů serverů A a B. Je zmaten, že klient si na serveru A koupil letenku až poté, co se let stal plný na serveru B. To může vést k nekorektním akcím na serveru C. Jak se podobný situacím vyhnout? Tj. jak korektně uspořádávat události v distribuovaném proces?

Model Uvažujeme asynchronní DS sestávající z procesů. Každý proces má stav (hodnoty proměnných). Každý proces vykonává akce, aby změnil svůj stav. Akce může být instrukce nebo komunikační akt (send, receive). Událost je výskyt akce. Každý proces má lokální hodiny. Události v rámci procesu mohou mít přiřazeny časové značky (timestamps), a mohou tak být linerárně seřazeny. ale my potřebujeme řadit globálně v celém DS.

Fyzické hodiny

Mimoběžnost vs. Drift Mimoběžnost hodin (clock skew) Rozdíl v času hodin dvou procesů. (jako vzdálenost dvou jedoucích automobilů) Mají-li dvoje hodiny nenulovou mimoběžnost, jsou nesynchronizované. Drift hodin (clock drift) Rozdíl v rychlosti (frekvenci) hodin dvou procesů. (jako rozdíl v rychlosti jedoucích automobilů) Mají-li dvoje hodiny nenulový drift, tak se jejich mimoběžnost v čase bude (nakonec) zvyšovat jsou-li popředu pomalejší hodiny, tak nejdříve dojde k vyrovnání času

Synchronizace Uvažujeme skupinu procesů Externí synchronizace Čas C i hodin každého procesu p i je udržován v rozmezí δ od času S externích referenčních hodin, tj. v každém okamžiku C i S δ Externí hodiny mohou být napojeny na UTC nebo na atomové hodiny Algoritmy: např. Cristianův, NTP Externí synchronizace s rozmezím δ implikuje interní synchronizaci s rozmezím 2 δ. Interní synchronizace Každý pár procesů (p i, p j ) má hodnoty času svých hodin v rozmezí δ, v každém okamžiku tj. C i C j δ Algoritmy: např. Berkeley Interní synchronizace neimplikuje externí synchronizaci.

Synchronizace fyzických hodin Externí synchronizace: všechny procesy p i se synchronizují s externím časovým serverem S. p i Nastaví lokální C i hodiny na t čas Kolik je hodin? Tady je čas t S Přečte čas t z lokálních hodin Co je špatně? V okamžiku, kdy p i obdrží odpověď, se už čas posunul. Míra nepřesnosti C i závisí na komunikační latenci. V asynchronním systému je latence konečná, ale neomezená neomezená je i nepřesnost hodin.

Cristianův Algoritmus T RT p i čas S Kolik je hodin? Tady je čas t T RT změřený čas oběhu (round trip time) synchronizační zprávy l min, l min minimální latence při komunikaci směrem k externím hodinám, resp. od externích hodin l min l min Cristianův algoritmus: Skutečný čas v okamžiku, kdy p i přijme odpověď je [t + l min, t + T RT l min ] C i t + T RT l min + l min 2 Chyba je omezena, tj. maximálně (T RT l min + l min)/2 (Je-li chyba měření příliš vysoká, je možné poslat více zpráv a výsledek průměrovat.)

Pozor Lokální čas je možné posunout libovolně dopředu ale nikoliv dozadu! posun dozadu by mohl narušit lokální uspořádání události v procesu Je možné zvýšit nebo snížit rychlost hodin

Jak často synchronizovat? Maximální míra driftu (maximum drift rate MDR) hodin Absolutní MDR je definováno relativně vůči UTC (universal coordinated time). UTC je správný (přesný) čas v každém okamžiku. Vzájemná maximální míra driftu mezi dvěma procesy se stejnou absolutní MDR je 2 MDR. Je-li maximální tolerovaná mimoběžnost mezi jakýkoliv párem hodin je M, pak je třeba hodiny synchronizovat aspoň každých M/(2 MDR) časových jednotek.

Network Time Protocol Využíván od roku 1985 pro synchronizaci času v počítačových sítích s proměnlivou latencí. NTP servery jsou uspořádány do stromu uzly synchronizují se svými rodiči a někdy i dalšími servery na stejné úrovni klienti tvoří listy stromu Dosažitelná přesnost: internet: desítky ms LAN: 1 ms přímé spojení síťové spojení klienti

Základ protokolu potomek t 1 r čas přijetí Msg 1 t 2 s čas odeslání Msg 2 vypočte offset o a upraví hodiny čas Start Msg 1 Msg 2 t 1 s, t 2 r rodič t 1 s čas odeslání Msg 1 t 2 r čas přijetí Msg 2 Potomek spočítá offset mezi svým časem a časem rodiče: o = t 1 r t 2 r + t 2 s t 1 s 2

Odvození Proč o = t 1 r t 2 r +t 2 s t 1 s 2? Předpokládejme skutečný offset je o real, tj. čas potomka je popředu o o real a čas rodiče je pozadu o o real. Předpokládejme, že latence pro zprávu 1 je l 1 a pro zprávu 2 je l 2. hodnoty l 1 a l 2 nejsou známé Pak platí t r 1 = t s 1 + l 1 + o o real = real t r 2 = t s 2 + l 2 o real t 1 r t 2 r + t 2 s t 1 s 2 o real = o + l 2 l 1 2 o o real l 2 + l 1 2 + l 2 l 1 2 l 1 a l 2 jsou nezáporné tj. chyba je omezená časem oběhu zprávy

Nicméně Stále nenulová chyba synchronizace. Dokud bude latence nenulová a neznámá, chyby se nezbavíme! Lze problém uspořádání události vyřešit bez potřeby synchronizovat fyzické hodiny?

Logické hodiny

Uspořádání událostí v DS Synchronizace hodin je jeden z přístupů k uspořádání událostí v DS. Vzhledem k omezené přesnosti synchronizace lze ale použít jen uspořádání událostí, mezi kterými uplyne dostatečné množství času. Alternativní přístup: Co kdybychom místo absolutního/fyzického času přiřazovali událostem logické časové značky? Pokud by přiřazení logických značek respektovalo kauzální vztah mezi událostmi, tak by fungovalo.

Kauzální závislost Definice (Relace stalo se před) Jsou-li e 1 a e 2 události ve stejném procesu p a pokud e 1 předchází e 2, pak e 1 e 2. Je-li e 1 odeslání zprávy a e 2 je příjetí této zprávy, pak e 1 e 2. Pokud e 1 e 2 a e 2 e 3, pak e 1 e 3

Kauzální závislost/nezávisost Relace stalo se před zavádí částečné uspořádání událostí potenciální kauzální závislost e 1 e 2 : potenciálně kauzálně závislé události (může být kauzální vztah) e 1 e 2 : současné události (kauzální vztah určitě není)

Příklad: Stalo se před p 1 A B C D E p 2 F G H p 3 I J K A B A B F F I F A C G K K K C G A J C H instrukce zpráva

Lamportovy logické hodiny Jak přiřadit události e časovou značku C e tak, aby respektovaly kauzalitu, tj. jestliže e 1 e 2, pak C e 1 < C e 2? Lamportovy logické hodiny: Každý proces má své logické hodiny, které se synchronizují podle přijímaní zpráv. navržené Leslie Lamportem v 70. letech používané prakticky ve všech distribuovaných systémech (a všech cloudových platformách)

Synchronizace logických hodin Synchronizace logických hodin Každý proces p i si udržuje lokální logické hodiny C i a nastavuje 1. Po každé události, která se odehraje v p i, se C i inkrementuje o 1. 2. Je-li v procesu p i odeslaná zpráva m, dostane časovou značku ts m = C i. 3. Kdykoliv proces p j přijme zprávu m, tak I. upraví své lokální hodiny C j na max{c j, ts m }; a poté II. provede krok 1 předtím, než předá m aplikaci

Příklad: Lamportovy hodiny p 1 A B C D E C 1 0 1 2 3 5 6 2 4 C 2 p 2 0 F 2 3 4 G H 6 1 p 3 1 4 7 C 3 0 I J K A B B G A G 1 < 2 2 < 3 1 < 2 H G F K H K C K 1 < 4 2 < 7 4 < 7 3 < 7 C G? A J? C H 3 = 3 1 < 3 3 < 4 Lamportovy hodiny neimplikují kauzalitu!

Logické hodiny a kauzalita Pár současných událostí nemá kauzální cestu od jedné události ke druhé (ani jedním směrem). Lamportovy časové značky pro současné události mohou, ale nemusí mít stejnou hodnotu! Platí: jestliže e 1 e 2, pak C e 1 < C(e 2 ) Neplatí: jestliže C e 1 < C(e 2 ), pak e 1 e 2 Jak zajistit, že z uspořádání časových značek jednoznačně poznáme potenciální kauzalitu?

Vektorové hodiny

Vektorové hodiny Předpokládejme skupinu procesů {p 1, p N } Každý proces si udržuje vektor celočíselných hodin V i [1 N] j-tý element vektorových hodin procesu V i [j] je znalost procesu i o událostech v procesu j

Synchronizace vektorových hodin Každý proces p i si udržuje lokální vektorové hodiny V i a nastavuje 1. Před provedením akce v procesu p i se V i inkrementuje o 1, tj. V i i V i i + 1 2. Pošle-li proces p i zprávu m procesu p j, nastaví vektorovou časovou značku ts(m) zprávy m na V i (poté, co provedl krok 1) 3. Proces p j po přijetí zprávy m nastaví své hodiny V j k max V j k, ts(m) k pro všechna k = 1,, N (tzv. sloučení) poté inkrementuje V j j a předá zprávu m aplikaci.

Vektorové hodiny: příklad p 1 (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) (5,3,1) V 1 (0,0,0) p 2 (0,1,1) (2,0,0) (2,3,1) (5,3,1) (2,3,1) V 2 (0,0,0) (2,2,1) (2,3,1) p 3 (0,0,1) (5,3,3) V 3 (0,0,0) (0,0,1) (0,0,2) (5,3,3)

Vektorové hodiny a kauzalita Upořádání vektorových časových značek: V 1 = V 2 iff V 1 i = V 2 [i] pro všechna i = 1,, N V 1 < V 2 iff V 1 i V 2 [i] pro všechna i = 1,, N a existuje j, že V 1 j < V 2 [j] Pokud: (V 1 < V 2 ) (V 2 > V 1 ), pak píšeme V 1 V 2 Pro vektorové hodiny platí: e 1 e 2 iff pro časové událostí platí: V 1 j < V 2 j

Vektorové hodiny: kauzalita A B C D E p 1 (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) V 1 (0,0,0) p 2 (0,1,1) (2,0,0) G H (2,3,0) (5,3,1) V 2 (0,0,0) F (2,2,1) (2,3,1) p 3 I (0,0,1) J K V 3 (0,0,0) (0,0,1) (0,0,2) (5,3,3) A B B G A G :: 1,0,0 < (2,0,0) :: 2,0,0 < (2,2,1) :: 1,0,0 < (2,2,1) I H F K I K C K :: 0,0,1 < (2,3,1) :: 0,1,1 < (5,3,3) :: 0,0,1 < 5,3,3 :: 3,0,0 < (5,3,3)

Souběžné události A B C D E p 1 (1,0,0) (2,0,0) (3,0,0) (4,3,1) (5,3,1) V 1 (0,0,0) p 2 (0,1,1) (2,0,0) G H (2,3,0) (5,3,1) V 2 (0,0,0) F (2,2,1) (2,3,1) p 3 I (0,0,1) J K V 3 (0,0,0) (0,0,1) (0,0,2) (5,3,3) C G A J C H :: 3,0,0 (2,2,1) :: 1,0,0 0,0,2 :: 3,0,0 (2,3,1) vektorové hodiny rozliší souběžné události

Logické hodiny: Souhrn Lamportovy (skálární) logické hodiny respektují kauzalitu ale nerozliší současné události Vektorové hodiny respektují kauzalitu potřebují více místa, ale rozliší současné události Lze dokázat, že pro zachycení kauzality ve skupině N procesů je potřeba vektorové hodiny délky N pro každý proces Existují algoritmy, které redukují množství dat potřebných pro udržbu vektorových hodin (např. Raynal a Singhal, 1996)

Čas v DS: Shrnutí Přesně synchronizované globální hodiny v DS (s nenulovou latencí přenosu zpráv) neexistují. Lze synchronizovat s určitou přesností: Cristianův algoritmus NTP Berkely algoritmus ale chyba je nenulová a je funkci doby oběhu zprávy (RTT) Nutností synchronizovat hodiny se můžeme vyhnout využitím logických hodin.