Sr-8-wyk-1.0-Slajd2
Zwielokrotnianie
Zwielokrotnianie (replikacja, ang. replication ) jest bardzo ważnym mechanizmem stosowanym w systemach rozproszonych. Najogólniej polega ona na utrzymywaniu wielu kopii tych samych danych lub obiektów na wielu, niezależnych serwerach. Podstawową motywacją dla stosowania zwielokrotniania jest potencjalne zwiększenie efektywności oraz niezawodności przetwarzania. Osiągnięcie tych celów wymaga jednak rozwiązania wielu problemów, w śród których najważniejszym jest kwestia spójności danych. Modyfikacje wprowadzone są bowiem do pojedynczej kopii, a użytkownicy odwołują się do wszystkich, co może spowodować obserwowanie niespójności i w konsekwencji błędy w aplikacjach. Zdefiniowano wiele modeli spójności , szczególnie w ramach prac nad rozproszoną pamięcią współdzieloną. Modele te jednak często słabo się skalują, co powoduje, że trzeba dążyć do ich uproszczenia lub osłabienia, dając tym samym szansę na efektywniejszą implementację. Oddzielną kwestią jest mobilność uczestników przetwarzania, która dodaje nowy wymiar do problemu zarządzania spójnością. Istnieje klasa modeli spójności uwzględniająca ten aspekt z punktu widzenia pojedynczego klienta.
Model spójności jest tylko pewnego rodzaju opisem „matematycznym” własności systemu. Jego implementacja wymaga zaprojektowania odpowiedniego protokołu spójności czyli algorytmu rozproszonego dostarczającego gwarancji modelu spójności. Konstrukcja protokołu musi uwzględnić lokalizację replik i mechanizmów ich aktualizacji.