Zwelokrotnane spójność Zwelokrotnane Zwelokrotnane polega na utrzymywanu welu kop danych (obektów) na nezależnych serwerach Cele zwelokrotnana 1. zwększene efektywnośc 2. zwększene nezawodnośc ( dostępnośc) Główne problem spójność modele spójnośc protokoły spójnośc moblność 1
Po co zwelokrotnać? Nezawodność odporność na aware Efektywność współbeżny dostęp do welu serwerów równoważene obcążena skalowalność w sense lczbowym wykorzystane blższych serwerów skalowalność w sense geografcznym mnejsze opóźnena Zwelokrotnane obektów a) b) Warstwa pośredna Warstwa pośredna Warstwa pośredna Secowy SO Secowy SO Secowy SO Warstwa pośredna Secowy SO 2
Zwelokrotnane a skalowalność Komproms skracane czasu dostępu do serwerów utrzymywane kop w stane spójnym koszt utrzymywana neużywanych kop spójność odwzorowująca system scentralzowany transakcyjna aktualzacja wszystkch kop globalna synchronzacja osłabene modelu spójnośc charakter aplkacj zwelokrotnanych danych Rozproszona pamęć dzelona DSM (ang. Dstrbuted Shared Memory) wspólna wrtualna przestrzeń adresowa, dostępna dla wszystkch węzłów systemu rozproszonego. Zalety wygodny paradygmat programowana równoległego skalowalność łatwość rozbudowy dostęp do fzycznej pamęc wszystkch węzłów dostęp do fzycznej pamęc wszystkch węzłów środowsko uruchomenowe dla programów równoległych psanych dla maszyn weloowych 3
Błąd strony w systeme pamęc wrtualnej tablca stron system operacyjny pułapka s numer strony r numer ramk o przesunęce s pn błąd strony urządzene wymany s o adres logczny pamęć Błąd strony w systeme pamęc wrtualnej tablca stron s numer strony r numer ramk o przesunęce s p adres fzyczny r o s o adres logczny pamęć 4
Obsługa błędu strony w systeme DSM s tablca stron n błąd strony system operacyjny pułapka s numer strony r numer ramk o przesunęce s o adres logczny pamęć Koncepcje dostępu do danych Dostęp zdalny zawsze poprzez seć prostota koncepcj mplementacj opóźnena komunkacyjne Relokacja fzyczna zmana lokalzacj obektu zmnejszene czasu dostępu koszt przenoszena obektu mędzy węzłam opłacalne przy welokrotnych, zgrupowanych odwołanach Zwelokrotnane kope w lokalnych węzłach zmnejszene czasu dostępu problem spójnośc 5
Dostęp lokalny pamęć lokalna seć pamęć lokalna zarządca DSM pamęć lokalna węzeł Dostęp zdalny pamęć lokalna seć pamęć lokalna zarządca DSM pamęć lokalna węzeł 6
Relokacja seć pamęć lokalna zarządca DSM węzeł Relokacja seć pamęć lokalna zarządca DSM węzeł 7
Relokacja seć pamęć lokalna zarządca DSM węzeł Relokacja charakterystyka 1. Problem lokalzacj adres obektu zmenena sę w czase 2. Problem rozmaru struktury przemeszczanej jednostk małe obekty duży pozom współdzelena duże obekty mały narzut admnstracyjny 3 Problem mgotana (ang trashng png pong effect) 3. Problem mgotana (ang. trashng, png-pong effect) naprzemenne odwołana klku procesów 8
Zwelokrotnane seć pamęć lokalna zarządca DSM węzeł Zwelokrotnane seć pamęć lokalna zarządca DSM węzeł 9
Zwelokrotnane seć pamęć lokalna zarządca DSM węzeł Zwelokrotnane charakterystyka Problem lokalzacj tworzene nowych replk tworzene nowych replk usuwane starych replk Problem rozmaru struktury obektów zwelokrotnanych Problem mgotana ne występuje kopa dla każdego ubegającego sę węzła Problem spójnośc kop (replk) Problem spójnośc kop (replk) stosunek lczby zapsów do odczytów 10
Struktura zwelokrotnanej jednostk Strona fzyczne połączene klku odrębnych obektów logcznych w jedną jednostkę udostępnaną jako całość przez DSM (problem fałszywego współdzelena) Pojedyncza zmenna duży jednostkowy koszt relokacj utrzymywana spójnośc Obekt (hermetyczna struktura danych udostępnana tylko przez zdefnowane metody) możlwość optymalzacj w strateg utrzymywana spójnośc w zwązku ze ścśle określonym sposobem dostępu (poprzez metody) Fałszywe współdzelene 11
Protokół koherencj Protokół koherencj (spójnośc) jest algorytmem rozproszonym realzującym określony model spójnośc 1. Protokół uneważnana danych (ang. nvaldaton protocol) małe komunkaty jednokrotne uneważnene 2. Protokół aktualzacj danych (ang. update protocol) nespójne replk są aktualzowane wększe komunkaty Model spójnośc Model spójnośc ś określa gwarancje dotyczące spójnośc replk, dawane aplkacj (równoległej) przez system W jak sposób defnować model spójnośc? W jak sposób określć gwarancje dla aplkacj? Kedy w jak sposób egzekwować te gwarancje? 12
Spójność ścsła Spójność ścsła (ang. strct consstency) każdy odczyt zmennej x zwraca wartość odpowadającą wynkow ostatno wykonanej operacj zapsu Systemy rozproszone nejednoznaczność określena ostatn (brak globalnego zegara) duży koszt realzacj spójnośc ścsłej Modele spójnośc replk Modele spójnośc nastawone na dane modele spójnośc przy dostępe ogólnym uspójnane danych przy każdej modyfkacj modele spójnośc przy dostępe synchronzowanym uspójnane danych tylko podczas wykonywana jawnych operacj synchronzujących Modele spójnośc nastawone na klenta Modele spójnośc nastawone na klenta uwzględnene moblnośc klenta 13
Modele spójnośc przy dostępe ogólnym Spójność atomowa (ang. atomc consstency) lnowość (ang. lnearzablty) Spójność sekwencyjna (ang. sequental consstency) Spójność przyczynowa (ang. causal consstency) Spójność PRAM (ang. ppelned RAM consstency) Spójność podręczna (ang. cache consstency) koherencja (ang. coherence) Spójność owa (ang. processor consstency) Modele spójnośc przy dostępe synchronzowanym Spójność słaba (ang. weak consstency) Spójność zwalnana (ang. release consstency) Spójność wejśca (ang. entry consstency) Spójność zakresu (ang. scope consstency) 14
Podstawowe założena W skład systemu DSM wchodzą: zbór sekwencyjnych procesów P ={p 1, p 2,, p n } zbór współdzelonych zmennych X = {x 1, x 2, } Każdy proces ma własną replkę całego zboru X Proces p może realzować na zmennej x X operacje: zapsu wartośc v, oznaczane jako w (x)v odczytu wartośc v, oznaczane jako r (x)v Realzacja operacj przebega w dwóch fazach: żądane operacj (ang. operaton ssue) wykonane operacj (ang. operaton executon) Oznaczena w (x)v zaps wartośc v do zmennej x wykonany przez proces p r (x)v odczyt wartośc v ze zmennej x wykonany przez proces p O zbór wszystkch operacj w systeme O zbór operacj procesu p (żądanych przez p ) OW zbór wszystkch operacj zapsu w systeme O x zbór wszystkch operacj na zmennej x lokalny l porządek operacj procesu p porządek przyczynowy a uszeregowane operacje postrzegane są przez proces p 15
Defncja porządku przyczynowego Defncja uszeregowana legalnego Uszeregowane a jest legalne wxv ( ) a rxv ( ) / w( x) v OW r( x) v O o( x) u O OW [ u v w( x) va o( x) ua r( x) v] UWAGA W celu uproszczena defncj zakłada sę, że każda operacja zapsu danej zmennej zapsuje unkalną wartość, co umożlwa dentyfkowane operacj zapsu poprzez tą wartość 16
Defncja hstor Hstora lokalna (procesu p ) Zbór lnowo uporządkowany h = (O, ) Hstora globalna Zbór częścowo uporządkowany h = (O, ) Obraz hstor h w procese p Zbór lnowo uporządkowany hv = (O OW, a ) Obraz hstor h Kolekcja obrazów procesów: hv = hv 1, hv 2,..., hv n Spójność sekwencyjna Obraz hv hstor h mus spełnać następujące warunk: o1, o2 O OW j= 1.. n o1 j o2 o1 o2 a w1a w2 w2a w1 w1, w2 OW = 1.. n = 1.. n 17
Spójność sekwencyjna przykład hv 1 : w 2 (x)1 a 1 r 1 (x)1 a 1 w 2 (x)2 r 1 (x)1 p 1 p 2 w 2 (x)1 w 2 (x)2 hv 2 : w 2 (x)1 a 2 w 2 (x)2 Algorytm fast-read Protokół spójnośc dla modelu sekwencyjnego Algorytm dla procesu p upon read(x) return M [x] upon wrte(x, v) atomc_broadcast U(x, v) wat upon recept of U(x, v) from p k M [x] := v f k = sgnal end f 18
Algorytm fast-wrte upon read(x) upon recept of U(x, v) ) f num 0 from p k wat M [x] := v end f f k = return M [x] num := num 1 f num = 0 upon wrte(x, v) num := num + 1 FIFO_atomc_broadcast U(x, v) end f end f sgnal Spójność atomowa Obraz hv hstor h mus spełnać następujące warunk: o1, o2 O OW j= 1.. n o1 RT o2 o1 o2 a w 1 a w 2 w 2 a w 1 w1, w2 OW = 1.. n = 1.. n o1 o2 RT o1 kończy sę w czase rzeczywstym, zanm zaczyna sę o2 19
Spójność atomowa przykład p 1 r 1 (x)1 r 1 (x)2 p 2 w 2 (x)1 w 2 (x)2 Spójność przyczynowa Obraz hv hstor h mus spełnać następujący warunek: o1, o2 O OW ( o1 o2 o1a o2) 20
Spójność przyczynowa przykład hv 1 : w 1 (x)2 a 1 w 1 (y)1a 1 w 2 (x)1 a 1 r 1 (x)1 p 1 w 1 (x)2 w 1 (y)1 r 1 (x)1 p 2 w 2 (x)1 r 2 (y)1 r 2 (x)2 hv 2 : w 2 (x)1 a 2 w 1 (x)2 a 2 w 1 (y)1a 2 r 2 (y)1 a 2 r 2 (x)2 Protokół dla spójnośc przyczynowej Algorytm dla procesu p upon read(x) return M [x] wrte(x, v) M [x] := v causal_broadcast U(x, v) upon recept of U(x, v) from p k f k M [x] := v end f 21
Spójność PRAM PRAM ppelned RAM Obraz hv hstor h mus spełnać następujący warunek: o1 j o2 o1 o2 a o1, o2 O OW j= 1.. n Spójność PRAM przykład p 1 w 1 (x)1 w 1 (y)1 w 2 (x)2 p 2 r 2 (y)1 p 3 r 3 (x)2 r 3 (x)1 hv 3 : w 2 (x)2 a 3 r 3 (x)2 a 3 w 1 (x)1a 3 r 3 (x)1 a 3 w 1 (y)1 22
Protokół dla spójnośc PRAM Algorytm dla procesu p upon read(x) return M [x] upon wrte(x, v) M [x] := v FIFO_broadcast U(x, v) upon recept of U(x, v) from p k f k M [x] := v end df Spójność podręczna Obraz hv hstor h mus spełnać następujący warunek: w1a w2 w2a w1 x X w1, w2 OW O x = 1.. n = 1.. n 23
Spójność podręczna przykład hv 1 : w 2 (x)1 a 1 r 1 (x)1 a 1 w 1 (x)2a 1 r 1 (x)2 a 1 w 1 (y)1 r 1 (x)1 w 1 (x)2 r 1 (x)2 w 1 (y)1 p 1 p 2 w 2 (x)1 r 2 (y)1 r 2 (x)1 r 2 (x)2 hv 2 : w 2 (x)1 a 2 w 1 (y)1a 2 r 2 (y)1a 2 r 2 (x)1 a 2 w 1 (x)2a 2 r 2 (x)2 Protokół dla spójnośc podręcznej (1) Algorytm fast-read dla procesu p : upon read(x) return M [x] upon wrte(x, v) atomcx_broadcast U(x, v) wat upon recept of U(x, v) from p k M [x] := v f k = sgnal end f 24
Protokół dla spójnośc podręcznej (2) Algorytm fast-wrte dla procesu p : upon read(x) f num [x] 0 wat end f return M [x] upon wrte(x, v) num [x] := num [x] + 1 FIFOx_atomcx_broadcast U(x,v) upon on recept of U(x,v) from p k M [x] := v f k = num [x] := num [x] 1 f num [x] = 0 sgnal end f end f Spójność owa Obraz hv hstor h mus spełnać następujące warunk (PRAM + spójność podręczna): w1a w2 w2a w1 x X w1, w2 OW O x = 1.. n = 1.. n o1, o2 O OW j= 1.. n o1 j o2 o1 o2 a 25
Spójność owa przykład hv 1 : w 1 (x)2 a 1 w 1 (y)1a 1 r 1 (x)2 a 1 w 2 (x)1a 1 r 1 (x)1 p 1 w 1 (x)2 w 1 (y)1 r 1 (x)2 r 1 (x)1 p 2 w 2 (x)1 r 2 (y)0 r 2 (y)1 r 2 (x)1 hv 2 : w 1 (x)2 a 2 w 2 (x)1a 2 r 2 (y)0a 2 w 1 (y)1a 2 r 2 (y)1a 2 r 2 (x)1 Protokół dla spójnośc owej Algorytm fast-wrte dla procesu p : upon read(x) f num [x] 0 wat end f return M [x] upon wrte(x, v) num [x] := num [x] + 1 FIFO_atomcx_broadcast U(x, v) upon recept of U(x, v) from p k M [x] := v f k = num [x] := num [x] 1 f num [x] = 0 sgnal end f end f 26
Naruszene porządku przyczynowego p 1 w 1 (x)1 w 1 (x)2 w 1 (x)1 w 1 (x)2 w 2 (y)1 p 2 r 2 (x)1 r 2 (x)2 w 2 (y)1 p 3 r 3 (y)1 r 3 (x)1 r 3 (x)2 hv 3 : w 2 (y)1 a r 3 (y)1 a w 1 (x)1 a r 3 (x)1 a w 1 (x)2 a r 3 (x)2 Relacje pomędzy modelam spójnośc o1, o2 O OW j= 1.. n o1 RT o2 o1 o2 w 1 a w 2 w 2 a w 1 a w1, w2 OW = 1.. n = 1.. n o1, o2 O OW ( o1 o2 o1a o2) o 1, o 2 O OW j= 1.. n przyczynowa PRAM o1 j o2 o1 o2 a x X w1, w2 OW O x = 1.. n = 1.. n atomowa sekwencyjna podręczna w1a w2 w2a w1 proceso orowa 27
P 1 Zadane W jakch modelach spójnośc wskazana operacja odczytu r 3 (x)v 1.zwróc wartość v =1, 2.zwróc wartość v =2, 3.zwróc wartość v =3, w 1 (x)1 w 1 (x)3 P 2 r 2 (x)1 r 2 (x)3 r 2 (x)2 w 2 (y)1 P 3 w 3 (x)2 r 3 (y)1 r 3 (x)v 28