Modely konzistentnosti Ladislav Kotal 2008
PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda mezi procesy o způsobu zajištění soudržnosti (aktuálnosti) replikovaných dat
PDS 2008Ladislav Kotal3 Konzistentnost Dva rozdílné pohledy na konzistentnost Data-centric modely Několik procesů, jedna skupina dat Např. distribuovaný výpočet Client-centric modely Jeden proces, několik skupin dat Např. mobilní přístup k u
PDS 2008Ladislav Kotal4 Data-centric modely
PDS 2008Ladislav Kotal5 Client-centric modely
PDS 2008Ladislav Kotal6 Data-centric konzistence Výhody: Zvýšení spolehlivosti a výkonnosti Nevýhody: Pro zachování co nejlepší soudržnosti dat je potřeba přenášet poměrně velký počet zpráv a tím se snižuje i výpočetní výkon Řešení: Vytvořeno několik modelů s různě velkými požadavky na konzistentnost dat
PDS 2008Ladislav Kotal7 Data-centric konzistence Symboly: W i (x)a – proces P i zapisuje na adresu x hodnotu a R i (x)b – proces P i přečetl z adresy x hodnotu b Horizontální osa = časová osa
PDS 2008Ladislav Kotal8 Striktní konzistence Jakékoliv čtení z adresy x vrátí hodnotu uloženou při posledním zápisu na adresu x. Tento model předpokládá existenci absolutního globálního času, je přirozený v jednoprocesorových systémech, ale nedosažitelný v distribuovaných systémech striktní konzistencepaměť, která není striktně konzistentní
PDS 2008Ladislav Kotal9 Sekvenční konzistence Výsledek jakéhokoliv výpočtu je stejný jako kdyby všechny operace všech procesů byly vykonávány v nějakém sekvenčním uspořádání a operace každého jednotlivého procesu jsou vykonávány v pořadí specifikovaném programem Příjemná pro programování, ale není příliš výkonná Implementace např. použitím časových značek a protokolu ABCAST sekvenční konzistencepaměť, která není sekvenčně konzistentní
PDS 2008Ladislav Kotal10 Příčinná (kauzální) konzistence Zápisy, které jsou potenciálně kauzálně vázané, musí být viděny všemi procesy ve stejném pořadí. Konkurenční zápisy mohou být viděny různými procesy v různém pořadí. Model rozlišuje události které jsou potenciálně kauzálně závislé Implementace vyžaduje udržování grafu závislostí zápisů na čtení. Např. použitím vektoru časových značek (vektorových hodin) příčinná konzistencepaměť, která není příčinně konzistentní
PDS 2008Ladislav Kotal11 FIFO (PRAM) konzistence Zápisy prováděné jedním procesem jsou viděny ostatními procesy v tom samém pořadí, ve kterém byly prováděny, ale zápisy různých procesů mohou být viděny různými procesy různě Snadná implementace, je nutné pouze dodržet pořadí zápisů z jednoho zdroje. Např. sekvenčním číslováním zpráv každého procesu FIFO konzistence
PDS 2008Ladislav Kotal12 Modely konzistentnosti Všechny dříve uvedené modely jsou pro mnoho aplikací zbytečně složité a tedy málo efektivní. Pro většinu aplikací je zbytečné sledovat neustále všechny změny hodnot, natož pak jejich pořadí. Následující modely proto dávají jednotlivým procesům nástroje, které jim umožňují přenášet do ostatních procesů pouze konečné výsledky jejich výpočtů, zatímco mezivýsledky jsou viditelné pouze lokálně. Tyto nástroje se nazývají synchronizační proměnné. Tím se výrazně zmenšuje počet posílaných zpráv a tedy i zatížení sítě
PDS 2008Ladislav Kotal13 Slabá konzistence Vlastnosti: Přístup k synchronizačním proměnným je sekvenčně konzistentní Žádná operace se synchronizační proměnnou není povolena dokud neskončí všechny předchozí zápisy Žádná operace čtení nebo zápisu hodnot není povolena dokud neskončí všechny předchozí operace se synchronizačními proměnnými Přístup k synchronizačním proměnným je možné řešit například pomocí Lamportova algoritmu vzájemného vyloučení slabá konzistenceporušení slabé konzistence
PDS 2008Ladislav Kotal14 Uvolňovací konzistence Vlastnosti: Před čtením nebo zápisem hodnot musí být dokončeny všechny požadavky provedení přístupu (Acq) Před provedením uvolnění (Rel) musí být ukončeny všechny předchozí požadavky zápisu i čtení prováděné procesem Požadavky provedení přístupu (Acq) a uvolnění (Rel) musí být FIFO konzistentní uvolňovací konzistence
PDS 2008Ladislav Kotal15 Přístupová konzistence Vlastnosti: Požadovaný přístup (Acq) procesu k SP není povolen, dokud nebyly provedeny všechny aktualizace chráněných sdílených dat procesu Exkluzivní přístup procesu k SP (zápis) je povolen pouze v případě, že žádný jiný proces nepřistupuje k SP, a to ani neexkluzivně (čtení) Po exkluzivním přístupu k SP si příští neexkluzivní přístup libovolného procesu k SP musí vyžádat aktuální kopii dat od vlastníka SP. Každá sdílená proměnná má svoji SP přístupová konzistence
PDS 2008Ladislav Kotal16 Shrnutí modelů Striktní – absolutní časové uspořádání všech sdílených přístupů Sekvenční – všechny události jsou ve všech procesech vidět ve stejném pořadí Příčinná – kauzálně vázané události jsou vidět ve stejném pořadí FIFO – události jednoho procesu jsou vidět ve stejném pořadí v jakém byly vykonány, události od různých procesů mohou být viděny v různém pořadí Slabá – sdílená data jsou konzistentní pouze po synchronizaci Uvolňovací – sdílená data jsou konzistentní po opuštění kritické sekce Přístupová – sdílená data vázaná na kritickou sekci jsou konzistentní při vstupu do kritické sekce
PDS 2008Ladislav Kotal17 Sekvenční konzistence - příklad Využívá časových značek a protokolu ABCAST A B C
PDS 2008Ladislav Kotal18 Příčinná konzistence - příklad Využívá vektory časových značek Zjednodušený příklad: A B C
PDS 2008Ladislav Kotal19 FIFO konzistence - příklad Využívá sekvenční číslování zpráv od každého procesu A B C
PDS 2008Ladislav Kotal20 Slabá konzistence - příklad Jediná synchronizační operace S Využívá Lamportův algoritmus vzájemného vyloučení A B C data pož. aktualiz. lok. dat
PDS 2008Ladislav Kotal21 Uvolňovací konzistence - příklad Synchronizační operace Acq a Rel Využívá Lamportův algoritmus vzájemného vyloučení A B C data + Rel Acq k. s.
PDS 2008Ladislav Kotal22 Přístupová konzistence - příklad Synchronizační operace Acq a Rel pro každou sdílenou proměnou Rozlišuje exkluzivní a neexkluzivní přístup A B C Acq k. s. dataRel
PDS 2008Ladislav Kotal23 Modely konzistentnosti Závěr Dotazy? Děkuji za pozornost