Modele spójnośc Cezary Sobanec 1
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? Modele spójnośc (2) Problem spójnośc danych stneje w systemach stosujących zwelokrotnane. Jeżel dane są modyfkowane, to zmana wprowadzona na pojedynczym węźle mus być przekazana do pozostałych, najlepej zanm zlecony zostane odczyt tych danych. W systeme rozproszonym wymana danych na najnższym pozome realzowana jest jednak zawsze z wykorzystanem przesyłana komunkatów, które wprowadza opóźnena. Propagacja modyfkacj ne może węc następować natychmastowo, co może być wychwycone przez użytkownków obserwujących nespójnośc pomędzy zawartoścam poszczególnych replk. Model spójnośc określa reguły gry jake będą stosowane przez system podczas aktualzacj danych. Są to pewne gwarancje, których udzela system w odnesenu do uporządkowana operacj realzowanych w systeme rozproszonym. Aplkacje, dla których gwarancje te są wystarczające będą dzałały poprawne pommo stnena zwelokrotnana, opóźneń czasowych nespójnośc danych. Problem otwartym jest sposób wyrażena tych gwarancj, czy nnym słowy tej umowy pomędzy aplkacją a systemem. Mając zdefnowany model spójnośc (reguły) należy skonstruować protokół spójnośc, który te reguły zrealzuje w systeme rozproszonym. Protokół określa kedy w jak sposób należy ngerować w przetwarzane, tak aby zdefnowane na pozome modelu własnośc były faktyczne zachowane. 2
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 (3) W systemach scentralzowanych każdy odczyt zwraca wynk będący odzwercedlenem ostatnego zapsu, co jest określane jako spójność ścsła (ang. strct consstency). W systeme rozproszonym pojęce ostatn jest nejednoznaczne, poneważ ne ma jednego, globalnego zegara synchronzującego pracę poszczególnych węzłów. W efekce może sę zdarzyć, że operacja odczytu zwróc wynk sprzed ostatnego zapsu. Realzacja modelu przetwarzana charakterystycznego dla systemów scentralzowanych jest bardzo kosztowna, a nekedy nemożlwa do zrealzowana. Najprostsza realzacja spójnośc ścsłej polega na zastosowanu pojedynczego, centralnego serwera, który przetwarza wszystke odwołana do danych. Realzacja taka jest oczywśce wysoce neefektywna ne korzysta z zalet jake potencjalne oferuje zwelokrotnane. Stąd poszukuje sę nnych model spójnośc, które będą oferowały słabsze gwarancje, ale które będą mogły być dużo bardzej efektywne mplementowane. 3
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 uwzględnene moblnośc klenta zobacz następny wykład Modele spójnośc (4) Generalne modele spójnośc można podzelć na dwe podstawowe klasy: modele spójnośc nastawone na dane (ang. data-centrc consstency models) modele spójnośc nastawone na klenta (clent-centrc consstency models). Modele spójnośc nastawone na klenta będą prezentowane w ramach następnego wykładu. Modele spójnośc nastawone na dane można podzelć dalej na dwe grupy: modele spójnośc przy dostępe ogólnym (ang. general access consstency models) modele spójnośc przy dostępe synchronzowanym (ang. synchronzaton access consstency models). Modele spójnośc przy dostępe ogólnym są bardzej przyjazne dla programsty, poneważ program korzystający z tych model wygląda tak samo jak program psany dla systemu scentralzowanego. Konsekwencją tego jest koneczność uspójnana danych podczas wykonywana każdej operacj modyfkującej. Rezygnację z pełnej przezroczystośc dostępu do danych zastosowano w modelach przy dostępe synchronzowanym. W tej grupe model spójnośc występują specjalne operacje synchronzujące, dodawane do kodu programu, których wykonane powoduje przeprowadzene synchronzacj danych pomędzy serweram. Zwykłe dostępy do danych ne muszą powodować komunkacj z nnym serweram. Podejśce take jest racjonalne w przypadku przeprowadzana przez aplkację ser aktualzacj, być może dotyczących tych samych zmennych. Wynk przeprowadzonych modyfkacj mogą w takm przypadku być przesłane łączne. Modele spójnośc nastawone na dane były rozwjane główne w ramach badań nad rozproszoną pamęcą dzeloną (ang. Dstrbuted Shared Memory). 4
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ść procesorowa (ang. processor consstency) Modele spójnośc (5) Slajd powyższy wymena główne modele spójnośc nastawone na dane przy dostępe ogólnym. Kolejność ne jest przypadkowa (z grubsza) odzwercedla słę tych model. Spójność atomowa odpowada dzałanu systemu scentralzowanego jest to węc najslnejszy model, ale jednocześne model wymuszający najmnej efektywną mplementację. Spójność atomowa bywa też nazywana lnowoścą. Spójność sekwencyjna nadal jest blska przetwarzanu w systeme scentralzowanym, ale dopuszcza już pewne nakładane sę operacj w systeme, co potencjalne może być wykorzystane do bardzej efektywnej pracy protokołu spójnośc. Spójność przyczynowa zachowuje porządek przyczynowy. Spójność PRAM porządkuje operacje zlecane przez poszczególne węzły. Spójność podręczna (zwana równeż koherencją) porządkuje operacje wykonywane na poszczególnych zmennych. W końcu spójność procesorowa łączy w sobe własnośc spójnośc PRAM podręcznej. 5
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) Modele spójnośc (6) Modele spójnośc przy dostępe ogólnym są wygodne w użycu, gdyż ne wymagają modyfkacj przy przenoszenu z systemu ne stosującego zwelokrotnana do systemu stosującego zwelokrotnane. Nestety pomjając spójność atomową sekwencyjną, pozostałe modele oferują własnośc, które często są newystarczające do poprawnego dzałana aplkacj. Z drugej strony realzacja nawet modelu sekwencyjnego zawsze obarczona jest bardzo dużym kosztem efektywnoścowym. Poszukując nnych rozwązań zaproponowano modele o dostępe synchronzowanym, które są pewnego rodzaju kompromsem pomędzy wygodą programsty a złożonoścą samego modelu. Z jednej bowem strony programsta jest zmuszany do uzupełnena kodu programu o dodatkowe nstrukcje, ale z drugej strony te dodatkowe nstrukcje podpowadają systemow kedy jake dane aplkacja będze wykorzystywać, a węc kedy należy je uspójnać. W efekce protokoły spójnośc dla model przy dostępe synchronzowanym oferują efektywne modele spójnośc zgodne z modelem sekwencyjnym (lub nekedy atomowym), a jednocześne charakteryzują sę dużą efektywnoścą pozwalającą na praktyczne wdrożene koncepcj DSM. 6
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) Modele spójnośc (7) Rozważamy system składający sę z n procesów, każdy pracujący na oddzelnym węźle. Procesy odwołują sę do pamęc zorganzowanej w postac zmennych, współdzelonych przez wszystke procesy. Dla uproszczena rozważań zakładamy, że w systeme stosowana jest pełna replkacja, co oznacza, że każdy węzeł posada pełną kopę całego zboru zmennych współdzelonych. Założene to ne zmnejsza ogólnośc rozważań, bo ne wpływa na defncję modelu spójnośc, a jedyne na organzację rozproszonej pamęc. Operacje realzowane na zmennych współdzelonych są bądź odczytam bądź zapsam. Odczyt wartośc v ze zmennej x realzowany przez proces p oznaczany będze jako r (x)v. Zaps wartośc v do zmennej x realzowany przez proces p oznaczany będze jako w (x)v. Jeżel kontekst stosowana wymenonych oznaczeń będze jednoznaczny, to ndeksy dentyfkujące procesy zostaną pomnęte. Operacja odczytu bądź zapsu ne jest operacją atomową. Jest to szczególne wyrazste w systeme rozproszonym, gdze wykonane operacj może oznaczać potrzebę komunkacj. W zwązku z tym w nektórych przypadkach będzemy rozważać jawne rozpoczęce wykonywana operacj (zgłoszene jej przez proces) zakończene wykonywana operacj (zwrócene wynku do procesu). 7
Oznaczena w (x)v r (x)v O O OW O x a zaps wartośc v do zmennej x wykonany przez proces p odczyt wartośc v ze zmennej x wykonany przez proces p zbór wszystkch operacj w systeme zbór operacj procesu p (żądanych przez p ) zbór wszystkch operacj zapsu w systeme zbór wszystkch operacj na zmennej x lokalny porządek operacj procesu p porządek przyczynowy uszeregowane operacje postrzegane są przez proces p Modele spójnośc (8) W defncjach model spójnośc zostaną użyte wymenone na slajdze oznaczena. Zapsy odczyty zostały przedstawone na poprzednm slajdze. Zbór wszystkch operacj w systeme, zarówno zapsy jak odczyty, będze oznaczany przez O. Zbór wszystkch operacj procesu p będze oznaczany przez O. Z punktu wdzena zarządzana spójnoścą najważnejsze są operacje zapsu (OW), bo to one muszą być powelone na wszystkch serwerach. Operacje wykonane na zmennej x będą oznaczane jako O x. Procesy zlecają wykonywane operacj sekwencyjne. Lnowy porządek operacj zlecanych przez proces p oznaczany będze jako. Porządek przyczynowy operacj wykonywanych w systeme będze oznaczany zwykłą strzałką. Symbol a będze oznaczać uporządkowane operacj postrzeganych przez proces p. Proces wdz swoje operacje, ale równeż operacje nnych procesów jeśl np. czyta wynk zapsów tych procesów. Odczyt wartośc zapsanej przez nny proces oznacza, że przed tym odczytem mus być zaszeregowany zaps tego procesu. Uporządkowane operacj (uszeregowane) postrzeganych przez poszczególne procesy może być różne, w zależnośc od ogranczeń nakładanych przez model spójnośc. Uszeregowane określa porządek wykonywana operacj na zmennych w konkretnym węźle. 8
Defncja porządku przyczynowego (1) (2) (3) o1, o2 O x X ( o1 w( x) v o1, o2, o H o2 o1 o2) r( x) v [( o1 o o o2) o1 o2] Modele spójnośc (9) Model spójnośc przyczynowej odwołuje sę do defncj porządku przyczynowego. Porządek przyczynowy jest z kole defnowany wymenonym 3 warunkam. Po perwsze: lokalne uporządkowane operacj wykonywanych przez poszczególne procesy jest zachowywane przez porządek przyczynowy. Po druge: jeżel w jednym procese następuje odczyt r(x)v, to oznacza, że zaps, który wprowadzł do zmennej x wartość v, czyl w(x)v mus poprzedzać ten odczyt w porządku przyczynowym. Co ważne: ne jest stotne na jakm węźle wykonywane są operacje odczytu zapsu, a węc mogą być realzowane na różnych węzłach. Odczyt wartośc zapsanej na nnym węźle jest możlwy, jeżel protokół aktualzacj danych prześle w mędzyczase komunkat aktualzujący. Ostatn warunek porządku przyczynowego jest domknęcem przechodnm relacj, mówącym, że jeżel operacja o1 poprzedza przyczynowo jakąś operację o, a operacja o poprzedza przyczynowo o2, to wtedy o1 poprzedza przyczynowo o2. 9
Defncja uszeregowana legalnego Uszeregowane a jest legalne w( x) v a / o( x) u O r( x) v [ ] u v w( x) v a o( x) u r( x) v w( x) v r x v OW a ( ) O OW 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ść Modele spójnośc (10) Ne każde uszeregowane operacj wykonanych w systeme rozproszonym jest możlwe do zrealzowana w praktyce. Będzemy rozważać tylko uszeregowana legalne. Legalność oznacza, że odczyt wartośc v ze zmennej x jest możlwy tylko wtedy, gdy ne było żadnego nnego zapsu do zmennej x wartośc różnej od v, który znajdowałby sę w uszeregowanu procesu czytającego po zapse wartośc v a przed odczytem wartośc v. Co węcej: ne może być medzy zapsem wartośc v a jej odczytem równeż operacj odczytu wartośc nnej nż v. Założena te są dość ntucyjne jeżel weźmemy pod uwagę dzałane pamęc lokalnej w węźle. Każda zmenna ma w pamęc swoją pojedynczą lokalzację odczyt zwraca zawsze ostatno zapsaną wartość. Dla uproszczena rozważań (ne redukując jednak ogólnośc rozważań) będzemy zakładać, że każdy zaps odczyt dotyczy unkalnej wartośc v. Innym słowy, wartość zapsywana będze jednoznaczne dentyfkować konkretną operację zapsu. 10
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 Modele spójnośc (11) Analza model spójnośc odwołuje sę do pojęca hstor. Hstora reprezentuje zrealzowane wcześnej przetwarzane, a węc uporządkowany zbór wszystkch operacj, które zostały wykonane. Przetwarzane każdego z procesów jest reprezentowane jego lokalną hstorą h j, która jest lnowo uporządkowanym zborem operacj zleconych przez ten proces. Relacją porządkującą jest lokalny porządek zleceń wykonana kolejnych operacj. Złożene hstor wszystkch procesów daje hstorę globalną, gdze relacją porządkującą jest relacja zależnośc przyczynowej (zawerająca w sobe lokalne porządk poszczególnych procesów). Zbór ten jest częścowo uporządkowany, poneważ nektóre zdarzena realzowane są współbeżne. Każdy z procesów postrzega w jakś sposób zapsy, które zostały zgłoszone na nnych węzłach. Uszeregowane tych zapsów daje obraz hstor w procese. Obraz hstor jest uporządkowany lnowo relacją lokalnego uszeregowana, które mus być legalne. Złożene wszystkch lokalnych obrazów hstor daje obraz hstor, który jest kolekcją zborów lnowo uporządkowanych. 11
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 a o2 w1, w1 a w2 OW = 1.. n = w2 1.. n w2 a w1 Modele spójnośc (12) Przetwarzane jest zgodne z modelem spójnośc sekwencyjnej, jeżel obraz hstor w każdym z procesów spełna oba zaprezentowane warunk. Perwszy warunek mów o tym, że lokalne uporządkowane operacj pownno być zachowane w obraze przetwarzana w każdym procese. Dotyczy to oczywśce operacj wykonywanych w danym węźle oraz wszystkch zapsów, które zostały zgłoszone. Odczyty wykonywane na nnych węzłach ne są brane pod uwagę, poneważ są one realzowane jedyne lokalne. Zapsy natomast muszą być propagowane do wszystkch węzłów. Drug warunek mów o tym, że wszystke zapsy w systeme muszą być globalne uszeregowane. Innym słowy: stneje jedna, globalne ustalona kolejność wykonywana wszystkch zapsów, które zostały zlecone w systeme. Zostało to zdefnowane w ten sposób, że dla każdej pary operacj zapsu w1 w2 wszystke węzły albo realzują najperw w1 a późnej w2, albo najperw w2 a późnej w1. W skróce można węc powedzeć, że spójność sekwencyjna wymusza globalne uporządkowane zapsów. 12
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 Modele spójnośc (13) Przykład przedstawa przetwarzane w systeme, który gwarantuje spójność sekwencyjną. Ostateczna postać obrazów hstor w procesach p 1 p 2 spełna oba warunk modelu. W szczególnośc warto zwrócć uwagę na globalne uporządkowane operacj zapsu: oba procesy wdzą najperw zaps wartośc 1 do zmennej x, a późnej wartośc 2. W obrazach hstor w procese p 1 występuje dodatkowo odczyt, który ne występuje w obraze hstor procesu p 2. Komunkat przesyłany z procesu p 2 do p 1 oznacza aktualzację danych. 13
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 Modele spójnośc (14) Realzacja modelu spójnośc wymaga zaprojektowana odpowednego protokołu spójnośc. Przytoczony na przykładze algorytm jest jednym z możlwych protokołów gwarantujących zachowane spójnośc sekwencyjnej. Jak sama nazwa wskazuje preferuje on odczyty. Preferencja przejawa sę tym, że odczyt ngdy ne jest blokowany od razu zwracana jest lokalne przechowywana wartość zmennej. Zaps algorytmu ma postać procedur obsług zdarzeń. Zawartość pamęc reprezentowana jest w algorytme jako tablca M, zwelokrotnona w postac lokalnych tablc M w procese p. Odczyt zwraca po prostu wartość przechowywaną na odpowednej pozycj w tablcy M. Zlecene zapsu jest rozgłaszane (lub rozsyłane) do wszystkch procesów. Rozgłaszane jest rozgłaszanem nepodzelnym (ang. atomc broadcast), co oznacza, że komunkat mus dotrzeć do wszystkch to w tej samej kolejnośc. Warstwa komunkacj grupowej zajme sę węc w tym przypadku zapewnenem uporządkowana operacj zapsu. Jest to wygodna (choć ne zawsze najbardzej efektywna) metoda mplementacj protokołu spójnośc. Właścwa operacja modyfkacj zmennej realzowana jest w procedurze obsług odboru wadomośc aktualzacyjnej. Dotyczy to równeż węzła, który ncjuje zaps. Jest to ważne, poneważ zapsy mają być wszędze realzowane w tej samej kolejnośc. Zaps powoduje wstrzymane przetwarzana procesu, który go zleca, do czasu zakończena nepodzelnego rozgłaszana. Wykonane beżącego zapsu może być węc poprzedzone wcześnejszym obsłużenem zapsów zleconych na nnych węzłach o kolejnośc zadecyduje warstwa komunkacyjna. W procedurze obsług odboru wadomośc aktualzacyjnej, jeżel komunkat docera do procesu, który ncjował rozgłoszene, następuje obudzene procesu zlecającego (funkcja sgnal). Proces był zaweszony w procedurze zapsu (funkcją wat). 14
Algorytm fast-wrte upon read(x) f num 0 wat end f return M [x] upon wrte(x, v) num := num + 1 FIFO_atomc_broadcast U(x, v) upon recept of U(x, v) from p k M [x] := v f k = num := num 1 f num = 0 sgnal end f end f Modele spójnośc (15) Protokół fast-wrte dla spójnośc sekwencyjnej optymalzuje operacje zapsu wykonywane w systeme. Ich wykonane ngdy ne jest blokujące, co pozwala na natychmastową kontynuację oblczeń, być może powodującą wykonane kolejnego zapsu. Blokowanu natomast podlega operacja odczytu. Sprawdza ona czy lcznk num, nkrementowany przy każdym zapse osągnął wartość 0, co oznacza poprawne zakończene wszystkch operacj zapsu zleconych lokalne. Proces może zlecć wele zapsów, jeden za drugm, zwększając w ten sposób zmenną num. Warstwa komunkacyjna będze próbowała dostarczyć odpowedne komunkaty do wszystkch serwerów, a proces w tym czase może realzować dalsze zadana. Odczyt wymaga zakończena wykonywana wszystkch dotychczasowych operacj zapsu zleconych lokalne. Bez tego oczekwana mogłoby dojść do wygenerowana uszeregowana nelegalnego, np.: w(x)5 r(x)0. Obsługa zapsu wymaga w tym przypadku rozgłaszana nepodzelnego zachowującego porządek FIFO, gdyż w przecwnym wypadku mogłoby dość do przestawena kolejnośc zapsów zleconych przez pojedynczy proces, a węc doszłoby do naruszena lokalnego uporządkowana. Protokół fast-read ne wymagał stosowana nepodzelnego rozgłaszana FIFO, poneważ przed zlecenem kolejnego zapsu poprzedn musał być zakończony, co wymuszało zachowane lokalnego porządku. Przedstawone protokoły dla spójnośc sekwencyjnej pokazują, że jej realzacja jest kosztowna. Koszt objawa sę w tym przypadku opóźnenam, które wynkają z konecznej synchronzacj procesów. W zależnośc od potrzeb można optymalzować operacje odczytu bądź zapsu, ale zawsze take optymalzacje odbywają sę kosztem drugej operacj. 15
Spójność atomowa Obraz hv hstor h mus spełnać następujące warunk: o1, o2 O OW w1, w2 OW = 1.. n o1 RT o2 o1 a o2 j= 1.. n w1 a w2 w2 a w1 = 1.. n o1 o2 RT o1 kończy sę w czase rzeczywstym, zanm zaczyna sę o2 Modele spójnośc (16) Spójność atomowa jest slnejszym modelem nż spójność sekwencyjna. W jej przypadku brane są bowem pod uwagę zależnośc czasowe pomędzy zdarzenam na różnych węzłach. Warunk, które muszą spełnać obrazy hstor przetwarzana na poszczególnych węzłach są bardzo podobne do tych dla spójnośc sekwencyjnej. Drug warunek jest dentyczny. W perwszym zamast lokalnego porządku występuje zależność czasowa pomędzy zdarzenam. Oczywśce synchronzacja przetwarzana z uwzględnenem zależnośc czasowych jest dużo bardzej kosztowna wymaga dodatkowej komunkacj. 16
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 Modele spójnośc (17) Rysunek przedstawa tą samą sytuację, która była prezentowana w przypadku spójnośc sekwencyjnej. W tym przypadku jednak uzyskane takch samych obrazów hstor przetwarzana wymaga przesunęca zapsu w(x)2 tak, aby w czase rzeczywstym występował po odczyce r(x)1 w procese p 1. Spójność atomowa w praktyce ne jest realzowana. Jej znaczene wąże sę główne z wykorzystanem do formalnej weryfkacj algorytmów. 17
Spójność przyczynowa Obraz hv hstor h mus spełnać następujący warunek: o1, o2 O OW ( o1 o2 o1 a o2) Modele spójnośc (18) Pamęć spójna przyczynowo mus zachowywać porządek przyczynowy operacj. Jeżel węc operacja o2 zależy przyczynowo od o1, to we wszystkch lokalnych obrazach przetwarzana operacje te pownny występować właśne w tej kolejnośc. W praktyce można to wyrazć następująco: Zapsy potencjalne powązane przyczynowo muszą być wdzane przez wszystke procesy w takm samym porządku. Zapsy współbeżne mogą być na różnych maszynach oglądane w różnej kolejnośc. Implementacja spójnośc przyczynowej mus przechowywać nformacje o zależnoścach przyczynowych pomędzy operacjam. Można do tego celu wykorzystać wektorowe znacznk czasu. 18
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 w 1 (x)2 w 1 (y)1 r 1 (x)1 p 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 Modele spójnośc (19) Na slajdze pokazano przykładowe przetwarzane w systeme zachowującym przyczynowe uporządkowane operacj. Każdy z procesów w swom obraze przetwarzana mus umeścć wszystke lokalne operacje oraz wszystke operacje zapsu, zachowując przy tym warunek legalnośc. Perwsze zapsy do zmennej x realzowane przez oba procesy p 1 p 2 są realzowane współbeżne, ne są od sebe zależne przyczynowo. W efekce ch wynk mogą być obserwowalne na węzłach w różnej kolejnośc. Tak też sę stało w tym przypadku. Proces p 1 odczytuje z x wartość 1, co oznacza, że zaps tej wartośc musał wystąpć po zapse w(x)2 (naczej naruszony byłby warunek legalnośc odczytywana byłaby wartość nadpsana). W procese p 2 następuje odczyt z x wartośc 2, co oznacza, że odpowedn zaps musał trafć po w(x)1. W efekce procesy p 1 p 2 wdzą oba zapsy do x w różnej kolejnośc. Jest to jak najbardzej dopuszczalne, poneważ zapsy te były realzowane współbeżne. Warto zauważyć, że powyższa realzacja ne jest spójna sekwencyjne. W modelu sekwencyjnym wszystke zapsy pownny być postrzegane przez wszystke procesy w tej samej kolejnośc. 19
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 Modele spójnośc (20) Slajd przedstawa przykładowy protokół realzujący model spójnośc przyczynowej. Do jego mplementacj wykorzystano rozgłaszane zachowujące uporządkowane przyczynowe (funkcja causal_broadcast), a węc cały cężar realzacj protokołu spada w tym przypadku na warstwę komunkacj grupowej. Warto zwrócć uwagę, że zarówno operacje odczytu jak zapsu ne wymagają w tym przypadku blokowana, synchronzującego przetwarzane z operacjam na nnych węzłach. Zarówno zaps jak odczyt może być wykonywany z pełną szybkoścą. Przetwarzane lokalne zmennych zawsze generuje realzacje zachowujące legalność poneważ zapsy od razu są odnotowywane w pamęc, co powoduje, że następujące po nch odczyty zwracają zapsaną wartość. Komunkaty rozgłoszenowe są gnorowane przez węzły, które wysyłają odpowedne aktualzacje. 20
Spójność PRAM PRAM ppelned RAM Obraz hv hstor h mus spełnać następujący warunek: o1, o2 O OW j= 1.. n o1 j o2 o1 a o2 Modele spójnośc (21) Spójność PRAM (ang. ppelnd RAM) jest modelem słabszym od spójnośc przyczynowej. Dla zapewnena spójnośc PRAM wystarczy w obrazach hstor każdego procesu zachować lokalny porządek wykonywana operacj każdego nnego procesu. Nazwa ppelned oczywśce ne jest tu przypadkowa chodz o potok zleceń płynących od danego procesu. Potok ten mus zachowywać orygnalne uporządkowane. 21
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 Modele spójnośc (22) Na slajdze pokazano przykładowe przetwarzane w systeme zachowującym spójność PRAM. Zaznaczone operacje są uwzględnane w obraze hstor procesu p 3. Zapsy w(x)1 w(x)2 realzowane są przez różne procesy, w zwązku z czym mogą być wykon ywane w procese p 3 w dowolnej kolejnośc. W przypadku przetwarzana z rysunku zaps w(x)2 docera do p 3 przed zapsem zapsem w(x)1. Z punktu wdzena modelu spójnośc PRAM ważne jest jednak to, że zapsy w(x)1 w(y)1 są wdzane w kolejnośc, w której były wykonywane przez p 1. Warto zauważyć, że zapsy w(x)1 w(x)2 są od sebe zależne przyczynowo. Łączy je odczyt zmennej y zapsywanej przez p 1. W obraze hstor w procese p 3 operacje te występują jednak w odwrotnej kolejnośc. W zwązku z tym przedstawone przetwarzane ne zachowuje spójnośc przyczynowej. 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 f Modele spójnośc (23) Protokół spójnośc dla modelu PRAM jest bardzo podobny do protokołu spójnośc dla spójnośc przyczynowej. Jedna różnca polega na zastąpenu rozgłaszana zachowującego porządek przyczynowy (causal_broadcast) rozgłaszanem zachowującym kolejność wysyłana komunkatów rozgłoszenowych danego procesu (ang. FIFO broadacst). Oczywśce realzacja funkcj FIFO_broadcast jest znaczne tańsza nż realzacja funkcj causal_broadcast, ale też model PRAM oferuje mnej nż spójność przyczynowa. W tym przypadku równeż operacje zapsu odczytu ne są blokowane, co oczywśce pozytywne wpływa na efektywność. 23
Spójność podręczna Obraz hv hstor h mus spełnać następujący warunek: w1 a x X w1, w2 OW O x = 1.. n = w2 1.. n w2 a w1 Modele spójnośc (24) Spójność podręczna (ang. cache consstency) jest modelem, w którym zachowany jest globalny porządek operacj zapsu do poszczególnych zmennych. Część wspólna zborów OW O x reprezentuje wszystke zapsy w systeme dotyczące zmennej x. Obrazy hstor przetwarzana we wszystkch procesach pownny umeszczać te zapsy w tej samej kolejnośc. Model ten ne wymaga, aby zachowane było lokalne uporządkowane operacj o le dotyczą one różnych zmennych. Jest to węc model, który jest całkowce nezależny do spójnośc PRAM spójnośc przyczynowej. 24
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 Modele spójnośc (25) Slajd przedstawa przykładowe przetwarzane w systeme zachowującym spójność podręczną. Jak ławo zauważyć operacje zapsu wykonywane na zmennej x są wdzane przez oba procesy w tej samej kolejnośc. Zmenna y ne wnos tu nc nowego, poneważ jest tylko jeden zaps. Warto jednak zwrócć uwagę na uporządkowane wszystkch zapsów w obrazach hstor przetwarzana. Wdać z nego, że ne jest zachowywany porządek lokalny. Proces p 2 wdz zaps do zmennej y przez zapsem w(x)2, odwrotne nż proces p 1. Tym bardzej węc ne jest zachowywany porządek przyczynowy, co wdać w sekwencj operacj w 1 (x)2 w 1 (y)1 r 2 (y)1 r 2 (x)1. 25
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 Modele spójnośc (26) Protokół spójnośc fast-read dla spójnośc podręcznej przypomna analogczny protokół dla spójnośc sekwencyjnej. W tym przypadku następuje równeż blokowane podczas realzacj zapsu, poneważ zapsy te muszą być uporządkowane względem nnych zapsów do tych samych zmennych. W przecweństwe do poprzednego protokołu ne występuje tu jednak pełna wersja rozgłaszana nepodzelnego, porządkującego globalne wszystke komunkaty, ale jego wersja uproszczona, porządkująca komunkaty aktualzujące wybraną zmenną. W lteraturze rozgłoszene take ne jest jakoś specjalne nazywane, stąd w zapse protokołu użyto nazwy atomcx_broadcast, dla odróżnena od atomc_broadcast. Oczywśce realzacja atomcx_broadcast jest mnej kosztowna od pełnego nepodzelnego rozgłaszana, stąd protokół fastwrte dla spójnośc podręcznej pownen charakteryzować sę wększą wydajnoścą od analogcznego protokołu dla spójnośc sekwencyjnej. Rozgłoszene atomcx_broadcast może być koordynowane współbeżne przez różne procesy, o le dotyczy różnych zmennych. Jego mplementacja może węc być bardzej rozproszona, a węc lepej wykorzystująca dostępne zasoby. 26
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 Modele spójnośc (27) Przez analogę można równeż skonstruować protokół fast-wrte dla spójnośc podręcznej, który strukturalne jest dentyczny z protokołem fastwrte dla spójnośc sekwencyjnej. W tym przypadku równeż blokowane zostaje przenesone do operacj odczytu. Blokowanu podlegają jednak jedyne operacje odczytu, które odwołują sę do zmennych, dla których ne dokończono jeszcze realzacj ostatnch operacj zapsu. W celu stwerdzena, które operacje wymagają synchronzacj, protokół przechowuje tablcę lcznków num, w której -ta pozycja reprezentuje lczbę aktualne realzowanych zapsów na -tej zmennej. Wyzerowane lcznka powoduje znesene blokowana oczekującego zapsu. W protokole fast-wrte zapsy ne są blokowane. W zwązku z tym jest możlwość zlecena welu zapsów, które będą realzowane w tle. W szczególnośc możlwe jest zlecene welu zapsów do tej samej zmennej. Zapsy do tych samych zmennych pownny być jednak porządkowane, dlatego do rozgłaszana zleceń zapsu użyto rozgłaszana uporządkowanego FIFO, ale ne w pełnej wersj, a jedyne w odnesenu do poszczególnych zmennych. Podobne jak poprzedno, mplementacja rozgłaszana porządkującego zapsy do pojedynczych zmennych jest prostsza do zrealzowana od rozgłaszana porządkującego wszystke komunkaty. 27
Spójność procesorowa Obraz hv hstor h mus spełnać następujące warunk (PRAM + spójność podręczna): x X w1, w2 OW O x = 1.. n w1 a w2 = 1.. n w2 a w1 o1, o2 O OW j = 1.. n o1 j o2 o1 a o2 Modele spójnośc (28) Spójność procesorowa ne wprowadza kompletne nowej jakośc. Jest to po prostu połączene spójnośc PRAM podręcznej. Defncja modelu spójnośc zawera warunk, które były wymenane w defncjach model PRAM spójnośc podręcznej. W skróce pamęć jest spójna procesorowo, jeżel lokalny porządek zlecana operacj w poszczególnych procesach jest zachowany w obrazach hstor przetwarzana wszystkch procesów (PRAM), oraz gdy zapsy do poszczególnych zmennych są globalne uporządkowane (spójność podręczna). 28
Spójność procesorowa 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 w 1 (x)2 w 1 (y)1 r 1 (x)2 r 1 (x)1 p 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 Modele spójnośc (29) Rysunek przedstawa przykładowe wykonane w systeme zachowującym spójność procesorową. Jak wdać z rysunku w obrazach hstor obu procesów zapsy do zmennej x wdzane są w tej samej kolejnośc. Uporządkowane zleceń z poszczególnych procesów równeż jest zachowane. Ne oznacza to jednak, że stneje jeden, globalny porządek wykonywana operacj zapsu (co oznaczałoby efektywne, że spełnone są wymagana modelu sekwencyjnego). Zapsy w(x)1 w(y)1 występują w obrazach hstor procesów w odwrotnej kolejnośc. 29
Protokół dla spójnośc procesorowej 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 Modele spójnośc (30) Slajd przedstawa protokół spójnośc typu fast-wrte dla spójnośc procesorowej. Struktura protokołu jest dentyczna z poprzednm protokołam fast-wrte. Różnca polega na specyfcznej metodze rozgłaszana zleceń aktualzacj danych. Rozgłaszane to, oznaczone jako FIFO_atomcx_broadcast porządkuje globalne wszystke zapsy pojedynczych procesów oraz porządkuje globalne zapsy odnoszące sę do tych samych zmennych. Zapsy ne są blokowane. Aktualzacje realzowane są po odebranu komunkatu aktualzacyjnego. Odczyty mogą być blokowane, gdy dotyczą zmennej, której aktualzacja zlecona przez ten węzeł jest jeszcze realzowana. 30
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 w 2 (y)1 p 2 r 2 (x)1 r 2 (x)2 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 Modele spójnośc (31) Przykład na slajdze pokazuje realzację w systeme zachowującym spójność procesorową, w której naruszona jest jednak spójność przyczynowa. Proces p 3 dokonuje na początku odczytu ze zmennej y, której aktualzacja docera do tego procesu jako perwsza. Następne docerają do tego procesu dwe aktualzacje zmennej x, które są obserwowane kolejnym odczytam. Okazuje sę jednak, że zaps w(y)1 w procese p 2 jest przyczynowo zależny od wcześnejszych zapsów do zmennej x realzowanych przez proces p 1. Zależność ta ne jest jednak uwzględnana przy propagacj zapsów do procesu p 3. Wskazuje to jednoznaczne na rozróżnalność spójnośc przyczynowej procesorowej. 31
x X Relacje pomędzy modelam spójnośc o1, o2 O OW j = 1.. n w1, w o1, o2 O OW o1 o1, o 2 O OW j = 1.. n w1, w2 OW O x RT w1 a 2 = 1.. = OW n o1 = 1.. n o2 o1 a w2 w2 a ( o1 o2 o1 a o2) j 1.. n o2 o1 a w1 a o2 w1 w2 przyczynowa o2 = 1.. n atomowa sekwencyjna PRAM podręczna w2 a w1 procesorowa Modele spójnośc (32) Omówone modele spójnośc przy dostępe ogólnym są w pewnych zależnoścach mędzy sobą. Idąc od dołu, a węc od model najmnej restrykcyjnych mamy model PRAM, gwarantujący zachowane porządku lokalnego wykonywanych operacj przez poszczególne procesy. Rozszerzając zachowywany porządek lokalny modelu PRAM o uporządkowane przyczynowe dostajemy spójność przyczynową. Spójność podręczna wymaga uporządkowana, które jest całkowce ortogonalne w stosunku do wymagań spójnośc PRAM czy przyczynowej. Łącząc własnośc spójnośc PRAM spójnośc podręcznej dostajemy spójność procesorową. Jeżel wszystke zapsy w systeme są globalne uporządkowane, a węc obserwowane przez wszystke procesy w tej samej kolejnośc, to dostajemy model sekwencyjny, który jest slnejszy zarówno od spójnośc przyczynowej jak procesorowej. Ostateczne uwzględnene w uporządkowanu globalnym kolejnośc występowana zdarzeń w czase rzeczywstym prowadz do modelu atomowego, który jest z kole slnejszy od modelu sekwencyjnego. 32
Dostęp synchronzowany 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, } zboru obektów synchronzujących S = {s 1, s 2,...} Obekty synchronzujące zamek (ang. lock), na którym wykonywane są operacje: acqure nabyce zamka release zwolnene zamka barera (ang. barrer) z operacją synchronzacja na barerze Modele spójnośc (33) Drugą grupę model spójnośc w ramach model nastawonych na dane tworzą modele przy dostępe synchronzowanym. Modele te próbują zaradzć nedogodnoścom model przy dostępe swobodnym, w których albo protokół okazywał sę być neefektywny (spójność atomowa sekwencyjna), albo oferowane własnośc uszeregowana zapsów były newystarczające do dzałana aplkacj. Nekedy może sę okazać nawet, że modele słabsze (spójność przyczynowa, PRAM czy podręczna) są wystarczające do konkretnych algorytmów, ale wykazane tej wystarczalnośc jest zadanem bardzo trudnym. Powoduje to zrozumałą nechęć programstów do stosowana słabszych model spójnośc. Rozwązanem zaproponowanym przez twórców nektórych systemów z rozproszoną pamęcą dzeloną jest propozycja kompromsu pomędzy wygodą programowana takch systemów a efektywnoścą ch pracy. Modele przy dostępe ogólnym ne wymagają żadnej zmany kodu algorytmu program pownen dzałać poprawne bez modyfkacj, nestety neefektywne. Jeżel zrezygnować z pełnej transparentnośc wymusć na programśce oznakowane kodu dodatkowym nstrukcjam podpowadającym systemow jake są oczekwana co do spójnośc danych, to mplementacja odpowednego protokołu spójnośc może sę okazać dużo bardzej efektywna. Jeżel tylko dodatkowe nstrukcje ch umejscowene będze proste, to rozwązane take ma szansę na popularyzację. Kolejne slajdy prezentują modele spójnośc przy dostępe synchronzowanym. Model systemu pozostaje tak jak poprzedno. Dzałana wykonywane są węc przez zbór n procesów rozlokowanych na n węzłach. Procesy wykonują operacje na zborze zmennych współdzelonych, których replk znajdują sę na każdym węźle. Dodatkowo stneje zbór S obektów synchronzujących. W zależnośc od modelu wykorzystywane są następujące obekty synchronzujące: zamk barery. Na zamkach wykonywane są dwe operacje: acqure zajęce (nabyce) zamka release zwolnene zamka. Dla barery wykonuje sę operację synchronzacj na barerze. Synchronzacja taka polega na wstrzymanu przetwarzana procesów zgłaszających sę do barery do czasu zgłoszena sę wszystkch procesów. 33
Spójność słaba Operacje dostępu do danych współdzelonych do zmennych synchronzujących Defncja modelu 1. Operacje na zm. synchronzujących są spójne atomowo 2. Ne można wykonać (zakończyć) operacj dostępu do zmennej synchronzującej przed globalnym zakończenem wcześnejszych operacj dostępu do zmennych współdzelonych 3. Analogczne ogranczene w drugą stronę Modele spójnośc (34) Perwszym modelem spójnośc przy dostępe synchronzowanym była spójność słaba (ang. weak consstency). W modelu tym rozróżnono po raz perwszy dwa typy operacj: operacje dostępu do danych współdzelonych operacje na zmennych synchronzujących. Podstawową motywacją dla wprowadzena jawnej operacj synchronzującej było umożlwene opóźnena propagacj aktualzacj do nnych węzłów do czasu aż to będze faktyczne potrzebne. W modelu sekwencyjnym praktyczne każda, najmnejsza operacja zmusza system do podejmowana kroków zmerzających do uspójnena danych. Nekedy jednak logka algorytmu wskazuje, że dane będą odczytywane późnej, po zaktualzowanu wększej grupy zmennych. W spójnośc słabej zapsy do zmennych współdzelonych ne muszą być od razu propagowane. Można je zbuforować przesłać łączne podczas wykonywana operacj synchronzującej. W spójnośc słabej wyróżna sę jeden typ operacj synchronzującej. Defncja spójnośc słabej mów, że: 1) Operacje na zmennych synchronzujących są spójne atomowo (w nowszym podejścu sekwencyjne). Wykonując operację synchronzującą proces może węc uzyskać gwarancję, że jego wcześnejsze modyfkacje na pewno dotrą do pozostałych procesów. 2) Ne można wykonać (zakończyć) operacj dostępu do zmennej synchronzującej przed globalnym zakończenem wcześnejszych operacj dostępu do zmennych współdzelonych. Chodz o to, żeby operacja synchronzująca swom dzałanem objęła wszystke wcześnej wykonane operacje danego procesu. 3) Ne można wykonać (zakończyć) operacj dostępu do zmennej współdzelonej przed globalnym zakończenem wcześnejszych operacj dostępu do zmennych synchronzujących. Motywacją w tym przypadku jest unemożlwene np. odczytywana danych, jeżel dane te ne zostały jeszcze zaktualzowane, poneważ operacja synchronzująca cały czas jest jeszcze wykonywana. 34
Spójność słaba przykład Wartość początkowa x = 0 w 1 (x)2 synch 1 (s) r 1 (x)1 p 1 p 2 w 2 (x)1 synch 2 (s) r 2 (x)2 Modele spójnośc (35) Procesy p 1 p 2 wykonują zapsy do zmennej x współbeżne, bez żadnej synchronzacj ze sobą. Następne oba procesy wykonują operację synchronzującą, która pownna spowodować wymanę nformacj pomędzy węzłam odnośne nowych operacj, o których druga strona ne we. W efekce zlecone wcześnej zapsy trafają do drugego serwera. Odczyty, które następują po synchronzacj odzwercedlają w 35
Spójność zwalnana Rodzaje synchronzacj wzajemne wykluczane (acqure-release) synchronzacja na barerze Operacje synchronzujące są spójne procesorowo, a pozostałe operacje są spójne w sense PRAM Aktualzacja/uneważnane replk przy operacj barery oraz przy release w przypadku spójnośc eager release acqure w przypadku spójnośc lazy release Modele spójnośc (36) Kolejny model spójnośc to spójność zwalnana (ang. release consstency). Model ten udoskonalł spójność słabą poprzez rozróżnene dwóch oddzelnych operacj synchronzujących wykonywanych na zamkach. Operacje te w swojej logce dzałają podobne do semaforów, umożlwając realzację wzajemnego wykluczana. Dodatkowo podczas ch wykonywana następuje propagacja zman do pozostałych serwerów. Operacja barery służy do globalnej synchronzacj całej pamęc na wszystkch węzłach. Rozróżnamy dwa stotne różne protokoły spójnośc dla spójnośc zwalnana; protokoły, które były nekedy mylne nazywane modelam spójnośc. Otóż w protokole eager release węzeł, który wykonuje operację zwalnana zamka rozsyła jednocześne nformację aktualzującą do wszystkch pozostałych serwerów. Do czasu wykonana operacj release żadna komunkacja ne jest potrzebna. Sama nformacja aktualzacyjna może meć postać aktualzacj bezpośredno danych lub może powodować uneważnene replk. Drug protokół to lazy release, w którym stosuje sę właśne podejśce lenwe. W przecweństwe do protokołu eager ne wysyła sę aktualzacj do wszystkch, bo najprawdopodobnej wszyscy ch ne potrzebują. Aktualzacja danych jest tu opóźnona do czasu wykonana następnej operacj acqure. W tym momence bowem wadomo, kto tych danych potrzebuje. Synchronzacja następuje węc pomędzy dwoma konkretnym serweram: tym, który dokonywał ostatnch modyfkacj (posada węc aktualną kopę) tym, który potrzebuje te dane. Jest to rozwązane bardzo oszczędne komunkacyjne, poneważ angażuje tylko węzły, które muszą być w tej sytuacj angażowane. Nestety pewnym problemem staje sę w tym podejścu kumulacja nformacj o wcześnejszym przetwarzanu. Każdy kolejny węzeł mus bowem uczestnczyć w przenoszenu nformacj o modyfkacjach, zarówno tych, które on sam dokonał, jak tych wykonanych przez wszystke węzły, które uczestnczyły w przetwarzanu. 36
Spójność zwalnana przykład w 1 (y)1 acq 1 (L) w 1 (x)1 rel 1 (L) p 1 p 2 r 2 (y)0 r 2 (x)0 acq 1 (L) r 2 (x)1 r 2 (y)1 W przypadku protokołu uneważnana operacje spowodują błąd strony Modele spójnośc (37) Rysunek pokazuje przykładowe przetwarzane w systeme stosującym spójność zwalnana. Odczyty realzowane przez proces p 2 przed operacją acqure zwracają wartośc początkowe dla zmennych x y, gdyż protokół aktualzuje dane tylko podczas wykonywana operacj synchronzujących. Proces p 2 wykonuje operację acqure na zamku, który wcześnej zajmowany był przez proces p 1, co powoduje przesłane aktualzacj z p 1 do p 2. Dzęk temu kolejne odczyty, zarówno zmennej x jak y odzwercedlają modyfkacje dokonane przez proces p 1. Jeżel stosowany jest protokół uneważnana, to odwołane do strony, gdze znajduje sę zmenna x lub zmenna y spowoduje pobrane aktualnej wersj tej strony z węzła p 1. Podsumowując: węzeł, który zwalna blokadę przekazuje węzłow, który przejmuje blokadę nformacje o wszystkch modyfkacjach, których węzeł docelowy ne zna. Do reprezentacj hstor przetwarzana wydzelana fragmentów hstor neznanych nnym węzłom stosuje sę wektorowe etykety czasowe. Operacje synchronzujące mogą być wykonywane współbeżne na welu serwerach, poneważ stneje wele zamków. 37
Spójność zakresu Operacje acqure release odpowedno otwerają zamykają zakres Operacja barery zamyka zakres globalny otwera następny zakres globalny Istneją jawne operacje otwarca zamknęca zakresu: open_scope close_scope Po otwarcu zakresu aktualzowane/uneważnane są wszystke replk zmodyfkowane w czase poprzednego otwarca zakresu (poprzedn zakres mus być zamknęty) Modele spójnośc (38) Spójność zakresu (ang. scope consstency) jest dalszą modyfkacją przetwarzana obserwowanego w spójnośc zwalnana. Wymana nformacj następuje tu tak samo jak w przypadku protokołu lazy release, a węc przy wywoływanu operacj acqure. Zmena sę jednak zakres tej nformacj. O le spójność zwalnana wymagała przesłana wszystkch nformacj neznanych węzłow docelowemu, o tyle w spójnośc zakresu przesyłane są tylko te modyfkacje, które zostały wykonane od ostatnej operacj acqure na żądanym zamku. Najprawdopodobnej bowem to właśne te dane są potrzebne zajmującemu blokadę procesow, a ne te, które były modyfkowane wcześnej czy późnej. Oczywstą konsekwencją tego rozwązana jest zmnejszene rozmarów przesyłanych komunkatów. Informacja aktualzacyjna przesyłana jest tylko do węzła, który jej potrzebuje w takm zakrese, jakego potrzebuje. 38
Spójność zakresu przykład w 1 (y)1 acq 1 (L) w 1 (x)1 rel 1 (L) p 1 p 2 r 2 (y)0 r 2 (x)0 acq 1 (L) r 2 (x)1 r 2 (y)0 Modele spójnośc (39) Rysunek przedstawa przykładowe przetwarzane tożsame z tym, które było prezentowane w przypadku spójnośc zwalnana. W systeme stosującym spójność zakresu równeż nastąp synchronzacja danych w momence wykonywana operacj acqure. Jednakże proces p 2 ne zostane ponformowany o modyfkacjach zmennej y, poneważ była ona modyfkowana przed zakresem wyznaczonym operacją acqure. Poprawny dostęp do zmennej y wymagałby w tym przypadku: przesunęca operacj acqure przed zaps do y lub użyce nnej zmennej synchronzującej wskazane nowego zakresu, do którego można by sę odwołać w procese p 2. 39
Spójność wejśca Spójność wejśca zblżona jest do spójnośc zakresu Są dwa rodzaje operacj acqure: współdzelona wyłączna (odczyt zaps) Z każdym globalnym obektem zwązana jest zmenna synchronzująca, na której wykonywana jest odpowedna operacja przed dostępem do zmennej Modele spójnośc (40) W spójnośc zwalnana spójnośc zakresu zmenne synchronzujące są luźno zwązane ze zmennym współdzelonym. To programsta w swojej głowe ustala, że np. dostęp do zmennej x chronony będze zamkem L 1, a do zmennej y zamkem L 2. Inaczej jest w przypadku spójnośc wejśca, gdze programsta ma obowązek jawnego powązana każdego obektu współdzelonego z jakąś zmenną synchronzującą. Dzęk takemu rozwązanu następuje jeszcze bardzej precyzyjny transfer aktualzacj pomędzy serweram, poneważ system we na podstawe zlecanych operacj synchronzujących które obekty ma aktualzować. Nestety wadą tego modelu jest koneczność defnowana welu zmennych synchronzacyjnych koneczność ustalana powązań mędzy nm. Dodatkową cechą spójnośc wejśca jest wyróżnene dwóch typów operacj acqure: zajęce zamka może być w trybe wyłącznym lub dzelonym. Umożlwa to realzację współbeżnego odczytu tych samych danych na welu węzłach, co ne było możlwe w przypadku spójnośc zwalnana zakresu. 40
Własność lokalnośc Własność P systemu współbeżnego jest lokalna wtedy, gdy zachowane jej w przypadku każdego pojedynczego obektu mplkuje zachowane jej w systeme jako całośc Lokalność jest cechą spójnośc atomowej spójnośc podręcznej Modele spójnośc (41) W analze model spójnośc używa sę nekedy pojęca lokalnośc (ang. localty), której defncja zawarta jest na slajdze. Lokalność jest cechą model spójnośc atomowej podręcznej. W przypadku spójnośc podręcznej jest to dość naturalne, bo defncja modelu odnos sę właśne do pojedynczych obektów. Jeżel węc zapsy do każdego pojedynczego obektu są globalne uporządkowane, to cały system zachowuje spójność podręczną. 41
Własność lokalnośc przykład (1) hv 1 : w 1 (x1)1 a 1 w 1 (x2)1a 1 w 2 (y1)1 a 1 w 1 (y2)1 w 1 (x1)1 w 1 (x2)1 w 1 (y1)1 w 1 (y2)1 p 1 p 2 r 2 (x1)1 r 2 (y1)1 r 2 (x2)0 r 2 (x2)1 r 1 (y2)1 hv 2 : w 1 (x1)1 a 2 r 2 (x1)1a 2 w 1 (y1)1a 2 r 2 (y1)1a 2 r 2 (x2)0 a 2 w 1 (x2)1a 2 r 2 (x2)1a 2 w 1 (y2)1a 2 r 2 (y2)1 Modele spójnośc (42) Przykład na slajdze (prezentowany dalej na kolejnych dwóch slajdach) ma na celu zaprezentowane, że spójność sekwencyjna ne ma własnośc lokalnośc. W przykładze proces p 1 dokonuje zapsów do 4 zmennych: x1, x2, y1 y2. Proces p 2 jedyne czyta te zmenne. Jak łatwo zauważyć obraz hstor przetwarzana w procese p 2 zawera nną kolejność operacj zapsu do zmennych x2 y1 nż obraz w procese p 1. Ne jest zachowana węc spójność sekwencyjna. Pommo, że... (nast. slajd) 42
Własność lokalnośc przykład (2) hv 1 : w 1 (x1)1 a 1 w 1 (x2)1 p 1 w 1 (x1)1 w 1 (x2)1 p 2 r 2 (x1)1 r 2 (x2)0 r 2 (x2)1 hv 2 : w 1 (x1)1 a 2 r 2 (x1)1a 2 r 2 (x2)0 a 2 w 1 (x2)1a 2 r 2 (x2)1 Modele spójnośc (43) Rysunek przedstawa fragment przetwarzana z poprzednego slajdu dotyczący operacj na zmennych x1 x2. Jak wdać z obrazów hstor przetwarzana operacje na takm podzborze zmennych są spójne sekwencyjne. Ale... (nast. slajd) 43
Własność lokalnośc przykład (3) hv 1 : w 2 (y1)1a 1 w 1 (y2)1 p 1 w 1 (y1)1 w 1 (y2)1 p 2 r 2 (y1)1 r 1 (y2)1 hv 2 : w 1 (y1)1a 2 r 2 (y1)1 a 2 w 1 (y2)1a 2 r 2 (y2)1 Modele spójnośc (44) Rysunek przedstawa nny fragment przetwarzana z wcześnejszego slajdu dotyczący operacj na zmennych y1 y2. Jak wdać z obrazów hstor przetwarzana operacje na takm podzborze zmennych równeż są spójne sekwencyjne. Nestety na podstawe analzy dla tych dwóch podzborów zmennych ne możemy powedzeć, że system jako całość zachowuje spójność sekwencyjną. Oznacza to, że spójność sekwencyjna ne ma własnośc lokalnośc. Wracając do pełnego przykładu spójność atomowa posada własność lokalnośc, poneważ uwzględnane są uporządkowana operacj w czase rzeczywstym. W takm przypadku kolejność operacj w(x2)1 w(y1)1 z procesu p 1 musałaby być zachowana w obraze hstor w procese p 2. 44