.. Replikacja optymistyczna Cezary Sobaniec Instytut Informatyki Politechnika Poznańska v1.0, 2012/11/12
. Replikacja... Replikacja polega na utrzymywaniu wielu kopii (zwanych replikami) na oddzielnych serwerach. Niezawodność ( wiarygodność) Wydajność Dostępność 2012 Cezary Sobaniec Replikacja optymistyczna [1/29]
.... optymistyczna Optymista twierdzi, że żyjemy w najlepszym z możliwych światów, a pesymista obawia się, że jest to prawda [James Branch Cabell, The Silver Stallion] Optymizm jest zawsze wynikiem niedostatecznych informacji [Jacques Tati] 2012 Cezary Sobaniec Replikacja optymistyczna [2/29]
. Czy znacie takie systemy/usługi? DNS Active Directory / LDAP Subversion / Git Web cache NFS, SMB/CIFS BitTorrent MySQL Wszystkie powyższe systemy korzystają z jakiejś formy replikacji optymistycznej 2012 Cezary Sobaniec Replikacja optymistyczna [3/29]
. Tradycja jest... pesymistyczna... bo chce emulować działanie systemu scentralizowanego Blokowanie dostępu do replik na czas aktualizacji ograniczanie współbieżności zwiększanie opóźnień Problem z sieciami rozległymi... i mobilnymi (nasze tableciki, smartfony, itp.) Problem ze skalowalnością 2012 Cezary Sobaniec Replikacja optymistyczna [4/29]
. Przypadek usługi DNS Na początku był plik hosts.txt i FTP 150.254.30.35 sirius 150.254.30.30 libra 2012 Cezary Sobaniec Replikacja optymistyczna [5/29]
. Przypadek usługi DNS Globalna, replikowana, wysoce dostępna baza danych Dostępność jest dużo ważniejsza od ścisłej spójności Aktualizacje mogą być wprowadzane współbieżnie zmiany są stosunkowo rzadkie dotyczą rozłącznych danych Replikacja między serwerami autorytatywnymi Propagacja zmian poprzez przedawnianie między serwerami pomocniczymi 2012 Cezary Sobaniec Replikacja optymistyczna [6/29]
. Przypadek rmy Amazon Bardziej opłaca się wygenerować błąd i zwrócić klientowi pieniądze (+ odszkodowanie) niż dopuścić do opóźnień przy składaniu zamówień ach ta niczym nieograniczona konsumpcja ;-) /watch?v=qppw8km7eeu Amazon Dynamo (NoSQL) 2012 Cezary Sobaniec Replikacja optymistyczna [7/29]
. Założenia optymistycznej replikacji Lepiej jest dopuścić współbieżne mody kacje i później ewentualnie rozwiązać problemy wynikające z ujawnionych kon iktów niż blokować dostęp do danych 2012 Cezary Sobaniec Replikacja optymistyczna [8/29]
. OR vs PR Kluczowa różnica: podejście do zarządzania współbieżnością Podejście pesymistyczne: synchronizacja a priori Podejście optymistyczne: brak wstępnej synchronizacji + ew. sprzątanie Alg. pesymistyczny blokuje a optymistyczny spekuluje Optymistyczne założenie, że: kon ikty są rzadkie jeśli się zdarzają, to mogą być łatwo rozwiązane przez użytkowników 2012 Cezary Sobaniec Replikacja optymistyczna [9/29]
. Zalety OR Wysoka dostępność Skalowalność Elastyczność w odniesieniu do mechanizmów komunikacyjnych lepsze tolerowanie opóźnień 2012 Cezary Sobaniec Replikacja optymistyczna [10/29]
. Wady OR Możliwość wystąpienia kon iktu Kon ikty muszą być dopuszczalne Brak silnej spójności danych 2012 Cezary Sobaniec Replikacja optymistyczna [11/29]
. Przykład: bankomat Podejście pesymistyczne: aktualizacja online stanu konta brak łączności brak możliwości wypłaty Podejście optymistyczne: brak łączności: możliwość wypłaty małej kwoty późniejsze uzgodnienie stanu konta 2012 Cezary Sobaniec Replikacja optymistyczna [12/29]
. Przykład: CVS / Subversion / Git.1 Pobranie kodów źródłowych z serwera.2 Wprowadzenie lokalnych mody kacji.3 Zatwierdzenie zmian.4 Detekcja kon iktu.5 Rozwiązanie kon iktu.6 Ponowne zatwierdzenie zmian 2012 Cezary Sobaniec Replikacja optymistyczna [13/29]
. Funkcjonowanie OR.1 Zgłoszenie aktualizacji.2 Propagacja.3 Szeregowanie.4 Rozwiązanie kon iktów.5 Ostateczne zatwierdzenie Duża autonomia uczestników i asynchronizm przetwarzania Dwa etapy zatwierdzania operacji 2012 Cezary Sobaniec Replikacja optymistyczna [14/29]
. Reprezentacja mody kacji.1 Nowy stan (state-transfer) np. nowa wartość rekordu zasobowego w DNS, nowy stan obiektu w usłudze katalogowej AD / LDAP.2 Operacja z argumentami (operation transfer) np. dopisz do pliku, usuń słowo abc z dokumentu 2012 Cezary Sobaniec Replikacja optymistyczna [15/29]
. Spójność Twierdzenie CAP (Consistency-Availability-Partitioning) Repliki mogą być (i często są) w stanie niespójnym Spójność ostateczna (eventual consistency) Ograniczona rozbieżność (bounded divergence) dopuszczalna liczba niezsynchronizowanych zmian (lub rozmiar) maksymalny czas bez synchronizacji (DNS) 2012 Cezary Sobaniec Replikacja optymistyczna [16/29]
. Spójność S 1 w(x)1 w(x)2 S 2 w(x)2 w(x)1 2012 Cezary Sobaniec Replikacja optymistyczna [17/29]
. Kon ikty Unikanie Detekcja Rozwiązywanie 2012 Cezary Sobaniec Replikacja optymistyczna [18/29]
. Detekcja kon iktów Porządkowanie zapisów.1 Zegary zyczne NTP: dziesiątki µs dla LAN, dziesiątki ms dla WAN.2 Zegary logiczne zegary wektorowe detekcja zależności przyczynowej 2012 Cezary Sobaniec Replikacja optymistyczna [19/29]
. Przykłady kon iktów Rozproszony system plików: współbieżna mody kacja tego samego pliku Systemy wersjonowania dokumentów: mody kacja tego samego fragmentu pliku System kolejkowy: dodawanie i usuwanie obiektów, gdy kolejka jest pusta 2012 Cezary Sobaniec Replikacja optymistyczna [20/29]
. Detekcja kon iktów system plików Coda Wektory wersji przypisane do każdego pliku Liczniki mody kacji pliku na poszczególnych serwerach S 1 S 2 S 3 [1 1 1] K 1 [2 2 2] K 2 [3 3 3] K 1 [4 4 3] AWARIA K 2 [3 3 4] scalanie 2012 Cezary Sobaniec Replikacja optymistyczna [21/29]
. Unikanie kon iktów Pojedyncza replika akceptująca zmiany (single master) Charakter danych: np. Usenet (tylko dopisywanie) Komutatywne struktury danych (Commutative Replicated Data Types) Transformacja operacji (operation transformation) operacje aplikowane są w kolejności przychodzenia ale podlegają transformacji aby dać ten sam efekt 2012 Cezary Sobaniec Replikacja optymistyczna [22/29]
. Operation transformation Serwer 1 Serwer 2 abc abc insert(1, X ) delete(1) Xabc bc delete(1) insert(1, X ) abc Xbc transformacja delete(1) na delete(2) 2012 Cezary Sobaniec Replikacja optymistyczna [23/29]
. CRDT na przykładzie treedoc b / \ 0 / \ 1 / \ a c b / \ delete(0) 0 / \ 1 / \. c b / \ insert(0,x) 0 / / \ 1 \ / 0 / / X a c b / \ insert(0,x) 0 / \ 1 / \. c / 0 / / X b / \ delete(0) 0 / \ 1 / \. c / 0 / / X 2012 Cezary Sobaniec Replikacja optymistyczna [24/29]
. Rozwiązywanie kon iktów Reguła Thomasa: najnowszy zapis wygrywa lost update problem Ponowne wykonywanie we właściwej kolejności w 2 w 1 w 2 np. zapis do pliku Wycofywanie i ponowne wykonanie operacji Transfer stanu 2012 Cezary Sobaniec Replikacja optymistyczna [25/29]
. Problem rozróżnienia aktualizacji i usuwania Serwer 1: update(x,10) delete(x) Serwer 2: delete(x) update(x,10) Nagrobki (tombstones) 2012 Cezary Sobaniec Replikacja optymistyczna [26/29]
. Propagacja zmian Strategia propagacji rozgłoszenie do wszystkich epidemiczna (plotkarska) wszystko lub fragmenty (wykorzystanie wektorów wersji) push lub pull multicast Architektura gwiazda pierścień (ew. ze skrótami) drzewo rozpinające architektura dwuwarstwowa (core +) 2012 Cezary Sobaniec Replikacja optymistyczna [27/29]
. Przyszłość OR Przyszłość jest optymistyczna ;-) Aplikacje dla sieci mobilnych przerywana łączność o zmiennej jakości HTML5 Application Cache Web Storage 2012 Cezary Sobaniec Replikacja optymistyczna [28/29]
Dziękuję za uwagę!