Konzistentnost Pednášky z distribuovaných systém Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do potu komponent i geografické rozlehlosti. 4. Výkonnost se snižuje, protože s opravou jedné kopie souvisí i oprava ostatních kopií pro zachování konzistentnosti. 6.12.2004 DS - Konzistentnost a replikace 2 Vztah ke škálovatelnosti (1) Pro zlepšení škálovatelnosti jsou používány replikace a cache. Škálovatelnost je obecn prezentována jako problém prchodnosti. Replikace dat v blízkosti potenciálních uživatel mže zlepšit výkonnost a zlepšit škálovatelnost. Potenciální problémy: Šíka pásma požadovaná pro aktualizaci kopií mže být velká. Udržování konzistentních replikovaných kopií mže být problémové z pohledu škálovatelnosti. Proto je teba dodržovat urité dohody pi replikaci dat. 6.12.2004 DS - Konzistentnost a replikace 3 1
Vztah ke škálovatelnosti (2) Vícenásobné kopie. zvyšují výkonnost a redukují dobu pístupu zvyšují také režii pro udržení konzistentnosti píklad: N - krát replikované objekty frekvence tení R, frekvence zápisu W je-li R <<W vysoká konzistentnost zvyšuje režii, zprávy jsou zbytené Zdrojem ešení je udržování konzistentnosti volba vhodné sémantiky tsná konzistentnost vyžaduje globáln synchronizované hodiny ešení: snížíme požadavky na konzistentnost jsou k dispozici rzné stupn konzistentnosti 6.12.2004 DS - Konzistentnost a replikace 4 Úvod do konzistenních model K popisu a ešení problému konzistentnosti bylo vytvoeno mnoho model, ve kterých se mluví o operacích tení a zápisu nad distribuovanou datovou pamtí. Každý proces je chápán tak, že má k dispozici kopii celé datové pamti. Zápis je njaká zmna lokální kopie, kterou je teba replikovat do ostatních vzdálených kopií. tení je operace, která data nemodifikuje. Bžn je operace tení chápána tak, že vrací výsledek poslední operace zápisu do datové položky. Konzistenní model (konzistenní sémantika) je dohoda mezi procesy a datovou pamtí. Pokud budou procesy dodržovat dohody dané modelem, bude pam pracovat korektn. 6.12.2004 DS - Konzistentnost a replikace 5 Data-Centric konzistenní modely Obecná organizace pamti dat, fyzicky distribuované a replikované nkolika procesy. 6.12.2004 DS - Konzistentnost a replikace 6 2
Striktní konzistentnost Definice: jakékoliv tení datové položky X vrací hodnotu odpovídající výsledku poslední operace zápisu X. Definice implicitn pedpokládá existenci absolutního globálníhoasu. Je pirozen dostupná v jednoprocesorových systémech, ale neimplementovatelná v distribuovaných systémech. Dva procesy, pracující s týmiž daty. a) Striktn konzistentní pam. b) Pam, které není striktn konzistentní. 6.12.2004 DS - Konzistentnost a replikace 7 Linearizovatelnost a sekvenní konzistentnost (1) Sekvenní konzistentnost: Výsledek jakéhokoliv provádní je tentýž, jako kdyby operace tení a zápisu všech proces nad datovou pamtí byly provádny v njakém sekvenním poadí a operace všech individuálních proces se jeví v téže sekvenci, ve které je specifikována jejich programem. Všechny procesy vidí totéž poadí operací zápisu. a) Sekvenn konzistentní pam. b) Pam, která není sekvenn konzistentní. 6.12.2004 DS - Konzistentnost a replikace 8 Linearizovatelnost Definice: Výsledek jakéhokoliv provádní je tentýž jako kdyby operace tení a zápisu všech proces nad datovou pamtí byly provádny ve stejném poadí a operace všech individuálních proces odpovídají v této sekvenci poadí, specifikovaném jejich programem.navíc pokud platí, že TS(op 1 (x)) < TS( op 2 (y)), pak operace op1(x) musí nastat díve, než operace op2(y). V tomto modelu se pedpokládá, že operace pijímají asové znaky z globáln dostupného asového zdroje s konenou pesností. Linearizovatelná datová pam je také sekvenn konzistentní, ale je implementan náronjší než sekvenní konzistentnost. Linearizovatelnost se primárn používá pi formální verifikaci konkurentních program. 6.12.2004 DS - Konzistentnost a replikace 9 3
Linearizovatelnost a sekvenní konzistentnost (2) Process P1 print ( y, z); Process P2 print (x, z); Process P3 Ti soubžn bžící procesy. 6.12.2004 DS - Konzistentnost a replikace 10 Linearizovatelnost a sekvenní konzistentnost (3) print ((y, z); print (x, z); print (x,z); print(y, z); print (x, z); print (y, z); print (x, z); print (y, z); Prints: 001011 Prints: 101011 Prints: 010111 Prints: 111111 Signature: 001011 (a) Signature: 101011 (b) Signature: 010111 (c) Signature: 111111 (d) tyi platné posloupnosti provádní proces z pedchozího obrázku. 6.12.2004 DS - Konzistentnost a replikace 11 Sekvenní konzistentnost a serializovatelnost Sekvenní konzistentnost je porovnatelná se serializovatelností v pípad transakcí. Odlišnost je v úrovni rozlišení: sekvenní konzistentnost je definována v termínech operací tení a zápis, serializovatelnost v termínech transakcí, které zahrnují tyto operace. Sekvenní konzistentnost pedstavuje uživatelsky pívtivý model, ale má vážné problémy s výkonností. Sequential consistency is a programmer-friendly model, but it has serious performance problems. Proto byly navrženy slabší modely konzistentnosti. 6.12.2004 DS - Konzistentnost a replikace 12 4
Píinná (Casual) konzistentnost (1) Píinná konzistentnost vyžaduje úplné uspoádání pouze pro operace zápisu, které jsou vzájemn závislé. 1. Operace read je píinn vztažena k operaci write, pokud write zapisuje data, která readte. 2. Operace write je píinn vztažena k operaci read, která nastane díve než write v tomtéž procesu. 3. Jestliže read závisí na write_1 a write_2 na read, pak také write_2 závisí na write_1. Nutné podmínky: 1. Zápisy, které mají potenciáln píinný vztah musí být vidny všemi procesy ve stejném poadí. 2. Konkurentní zápisy mohou být vidny v rzných poadích v rzných poadích v rzných procesech. 6.12.2004 DS - Konzistentnost a replikace 13 Píinná (Casual) konzistentnost (2) Tato sekvence je pípustná s píinn konzistentní pamtí dat, ale ne jako sekvenn nebo striktn konzistentní. 6.12.2004 DS - Konzistentnost a replikace 14 Píinná (Casual) konzistentnost (3) a) Porušení píinn konzistentní pamti. b) Správná sekvence událostí v píinn konzistentní pamti. 6.12.2004 DS - Konzistentnost a replikace 15 5
FIFO konzistentnost (1) Nezbytné podmínky: 1. Zápisy od jednoho procesu jsou ostatními procesy vidny v tomtéž poadí, ve které byly vyslány 2. Zápisy od rzných proces mohou být vidny rznými procesy v rzném poadí. 6.12.2004 DS - Konzistentnost a replikace 16 FIFO konzistentnost (2) Platná sekvence událostí FIFO konzistentnosti 6.12.2004 DS - Konzistentnost a replikace 17 FIFO konzistentnost (3) Process P1 print ( y, z); Process P2 print (x, z); Process P3 Ti soubžn bžící procesy. 6.12.2004 DS - Konzistentnost a replikace 18 6
FIFO konzistentnost (4) print (y, z); print(x, z); Prints: 00 (a) print(x, z); print ( y, z); Prints: 10 (b) print (x, z); print (y, z); Prints: 01 (c) FIFO konzistentní pohledy tí proces na poadí provádní píkaz z pedchozího obrázku. Zvýraznné píkazy print generují výstup. 6.12.2004 DS - Konzistentnost a replikace 19 FIFO konzistentnost (5) Process P1 if (y == 0) kill (P2); Process P2 if (x == 0) kill (P1); Synchronizace dvou konkurentních proces. Pi FIFO konzistentnosti dávají rzné výsledky (bží dva procesy, jeden proces nebo žádný proces). 6.12.2004 DS - Konzistentnost a replikace 20 Slabá (Weak) konzistentnost (1) Synchronizaní promnné zajišují konzistentnost skupiny operací (transakcí), ne individuálních zápis a tení. Vlastnosti: 1. Pístup k synchronizaním promnným spojeným s datovou pamtí je sekvenn konzistentní 2. Není dovoleno, aby byla nad synchronizaní promnnou provedena operace zápisu, dokud není na všech místech dokonena pedchozí operace zápisu 3. Není dovolena operace tení nebo zápisu nad daty, dokud nejsou provedeny všechny pedchozí operace nad synchronizaními promnnými. 6.12.2004 DS - Konzistentnost a replikace 21 7
Slabá (Weak) konzistentnost (2) int a, b, c, d, e, x, y; /* variables */ int *p, *q; /* pointers */ int f( int *p, int *q); /* function prototype */ a = x * x; /* a stored in register */ b = y * y; /* b as well */ c = a*a*a + b*b + a * b; /* used later */ d = a * a * c; /* used later */ p = &a; /* p gets address of a */ q = &b /* q gets address of b */ e = f(p, q) /* function call */ ást programu, kde mohou být nkteré promnné uloženy v registrech. 6.12.2004 DS - Konzistentnost a replikace 22 Slabá (Weak) konzistentnost (3) a) Platná posloupnost událostí pro slabou konzistentnost. b) Neplatná posloupnost pro slabou konzistentnost. 6.12.2004 DS - Konzistentnost a replikace 23 Uvolující (Release) konzistentnost (1) Platná posloupnost událostí pro uvolnnou konzistentnost. 6.12.2004 DS - Konzistentnost a replikace 24 8
Uvolující (Release) konzistentnost (2) Pravidla: Ped provedením operace tení nebo zápisu nad sdílenými daty musí být úspšn ukoneny všechny pedchozí požadavky Ped provedením požadavku uvolnní (release), musí být ukoneny všechny pedchozí tení a zápisy daného procesu Pístupy k synchronizaním promnným jsou FIFO konzistentní (sekvenní konzistentnost není požadována). 6.12.2004 DS - Konzistentnost a replikace 25 Vstupní (Entry) konzistentnost (1) Podmínky: Získání pístupu k synchronizaním promnným vztaženým k procesu je požadováno teprve tehdy, když jsou provedeny všechny opravy chránných sdílených dat vztažených k tomuto procesu. Ped povolením režimu výluného pístupu k synchronizaní promnné procesem nesmí mít jiný proces pístup k této synchronizaní promnné ani v sdíleném (nevýluném) režimu. Po ukonení režimu výluného pístupu k synchronizaní promnné nemže být proveden sdílený pístup k této synchronizaní promnné jinými procesy dokud není vzat na zetel vlastníkem promnné. 6.12.2004 DS - Konzistentnost a replikace 26 Vstupní (Entry) konzistentnost (2) Platná sekvence událostí pro vstupní konzistentnost. 6.12.2004 DS - Konzistentnost a replikace 27 9
konzistentnost písná linearizovatelnost sekvenní píinná FIFO konzistentnost slabá uvolující vstupní Pehled konzistenních model popis Absolutní uspoádání v ase pro všechny události sdílených pístup. Všechny procesy musí vidt všechny sdílené pístupy ve stejném poadí. Pístupy jsou navíc uspoádány podle globálních (nejednoznaných) asových znaek. Všechny procesy vidí všechny sdílené pístupy ve stejném poadí. Pístup není uspoádán v ase. Všechny procesy vidí píinn svázané sdílené pístupy v tomtéž poadí. Všechny procesy vidí zápisy ostatních proces v poadí, ve kterém byly použity. Zápisy od rzných proces nemusí být vidny v tomtéž poadí. popis Sdílená data mohou být chápána jako konzistentní pouze po ukonení synchronizace. Sdílená data jsou vytvoena konzistentn po ukonení kritické sekce. Sdílená data náležející kritické oblasti jsou vytvoena konzistentn po vstupu do kritické sekce. (b) a) Konzistentní modely, které nepoužívají synchronizaní operace. b) Modely se synchronizaními operacemi 6.12.2004 DS - Konzistentnost a replikace 28 (a) Ostatní konzistenní modely (Klient-Centric konzistenní modely) Pedchozí studované modely se týkaly údržby konzistentní datové pamti v pípad konkurentních operací zápisu a tení. Jiná tída distribuovaných datových pamtí je charakterizována tím, že postrádá soubžné opravy. Tj. mnoho operací požaduje tení datové pamti, ale ne zápisy. Takové datové pamti používají velmi slabou formu konzistentnosti, známou jako možná (eventual) konzistentnost. 6.12.2004 DS - Konzistentnost a replikace 29 Možná (Eventual) konzistentnost Mezi systémy, kde mže být velmi uvolnná konzistentnost patí: DNS systém Web. Otázka zní: jak rychle mohou být opravy pístupné procesm, které data pouze tou? Po njaké dob vidí všechny repliky všechny opravy a pechází do konzistentního stavu (jsou postupn konzistentní). Tento typ konzistentnosti je znám jako možná konzistentnost. Možná konzistentnost vyžaduje zadávat pouze takové opravy, u kterých je zarueno, že budou v konené dob dorueny do všech replik. Možná konzistentnost pracuje dobe pokud se klienti vždy pipojují k téže replice. Pokud se do distribuovaných systém pidá mobilita, mže systém zkolabovat velmi rychle. 6.12.2004 DS - Konzistentnost a replikace 30 10
Možná (Eventual) konzistentnost Princip pístupu mobilních uživatel k rzným replikám distribuované databáze. 6.12.2004 DS - Konzistentnost a replikace 31 Monotónní tení Operace tení jsou provádny jedním procesem P na dvou rzných lokálních kopiích téže datové pamti. a) Monotónní tení konzistentní datové pamti b) Datová pam, kde se neprovádí monotónní tení. 6.12.2004 DS - Konzistentnost a replikace 32 Monotónní zápis Operace zápisu provádné jedním procesem P nad dvma rznými lokálními kopiemi téže datové pamti a) Monotónní zápis konzistentní datové pamti b) Datová pam, která neprovádí konzistentní monotónní zápis. 6.12.2004 DS - Konzistentnost a replikace 33 11
tení vlastních zápis a) Datová pam, která poskytuje konzistentnost typu tení vlastních zápis. b) Datová pam, která to neposkytuje. 6.12.2004 DS - Konzistentnost a replikace 34 Zápisy následující po tení a) Datová pam s konzistentností typu writes-follow-reads. b) Datová pam bez konzistentnosti typu writes-follow-reads. 6.12.2004 DS - Konzistentnost a replikace 35 12