Bazy danych 11. Systemy rozproszone, twierdzenie CAP i bazy NoSQL. P. F. Góra

Podobne dokumenty
Bazy danych 11. Systemy rozproszone i twierdzenie CAP. P. F. Góra

Bazy danych 12. Bazy NoSQL. P. F. Góra

Bazy danych Wykład zerowy. P. F. Góra

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Hurtownie danych wykład 5

Bazy danych. Dr inż. Paweł Kasprowski

Charakterystyka sieci klient-serwer i sieci równorzędnej

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

NoSQL & relax with CouchDB

Rozproszone bazy danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Hbase, Hive i BigSQL

5. Model komunikujących się procesów, komunikaty

BAZY DANYCH. NIERELACYJNE BAZY DANYCH NoSQL I ASOCJACYJNE STRUKTURY DANYCH. Adrian Horzyk. Akademia Górniczo-Hutnicza

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Bazy danych 9. SQL Klucze obce Transakcje

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Bazy danych 2. Wykład 1

P o d s t a w y j ę z y k a S Q L

Bizantyńscy generałowie: zdrada, telekomunikacja i fizyka

Bazy danych NoSQL. Szymon Francuzik Poznań,

Systemy rozproszone. Wstęp. Krzysztof Banaś Systemy rozproszone 1

Technologie Informacyjne

Bazy danych 6a. Transakcje. P. F. Góra

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Bazy danych 2. Algebra relacji Zależności funkcyjne

Szkolenie wycofane z oferty. Apache Cassandra - modelowanie, wydajność, analiza danych

PHP: bazy danych, SQL, AJAX i JSON

Remote Quotation Protocol - opis

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Baza danych. Modele danych

Wrocławska Wyższa Szkoła Informatyki Stosowanej. Bazy danych. Dr hab. inż. Krzysztof Pieczarka.

Nierelacyjne bazy danych

World Wide Web? rkijanka

Projektowanie rozwiązań Big Data z wykorzystaniem Apache Hadoop & Family

Zarządzanie transakcjami

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

OnLine Analytical Processing (OLAP) Zapytania SQL

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Wprowadzenie. Dariusz Wawrzyniak 1

Architektura i mechanizmy systemu

Galileo - encyklopedia internetowa Plan testów

Technologia informacyjna

Wykład I. Wprowadzenie do baz danych

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Bazy danych - wykład wstępny

Bazy danych 1. Pojęcia podstawowe

Bazy danych wykład dziewiaty Transakcje. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Adam Cankudis IFP UAM

Wprowadzenie do Hurtowni Danych

REFERAT O PRACY DYPLOMOWEJ

Tworzenie aplikacji bazodanowych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Kalibracja. W obu przypadkach jeśli mamy dane, to możemy znaleźć równowagę: Konwesatorium z Ekonometrii, IV rok, WNE UW 1

Bazy danych i usługi sieciowe

Losowość w rozproszonym modelu

- pierwszy w Polsce Hosting zorientowany na lokalizację Klienta

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Cele. Założenia. Format komunikatów

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Pojęcie systemu baz danych

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

Projektowanie systemów baz danych

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Tworzenie aplikacji bazodanowych

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Paweł Rajba

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Pojęcie bazy danych. Funkcje i możliwości.

Bazy danych 3. Normalizacja baz danych

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Referat pracy dyplomowej

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Politechnika Śląska, Instytut Informatyki

Pytanie nr 3: Czy połączenie urządzenie mobilne -> serwer będzie szyfrowane? (protokół HTTPS).

Wst p Model Danych Saklowalno± + replikacja Spójno± Ograniczenia. Cassandra. Paweª Róg. Pozna«, maj 2011

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

1 Przetwarzanie transakcyjne Cechy transakcji Rozpoczęcie i zakończenie Punkty bezpieczeństwa... 3

Transkrypt:

Bazy danych 11. Systemy rozproszone, twierdzenie CAP i bazy NoSQL P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018

Nowe wyzwania Sytuacja na przełomie lat dziewięćdziesiatych i dwutysięcznych: duże wolumeny danych (z czasem: Big Data) konieczność stosowania dynamicznych schematów baz danych konieczność replikacji...... i skalowania poziomego a wszystko to za pośrednictwem sieci Eric Brewer, 2000: Mamy strukturalny problem... Problem ten manifestuje się tylko dla naprawdę dużych wolumenów danych i naprawdę dużego ruchu. Copyright c 2018 P. F. Góra 11 2

Eric Brewer Copyright c 2018 P. F. Góra 11 3

Podstawowe pojęcia spójność Spójność (consistency) baz danych dane na wszystkich serwerach przechowujacych kopie danej bazy sa identyczne (i spełniaja więzy narzucone na bazę). Pojęcie to można uogólnić na dowolne usługi dostępne przez sieć (wyszukiwarki, DNS, e-sklepy, serwisy webowe itd): Spójność oznacza, że istnieje gwarancja, iż każdy odczyt zwróci wynik najnowszego zapisu danej wartości. Daje się to zrealizować, jeżeli operacje na danych sa serializowalne: Jeśli operacja B rozpoczęła się po tym, gdy operacja A prawidłowo się zakończyła, wówczas operacja B musi widzieć taki stan systemu, jaki był w momencie zakończenia A, lub późniejszy. Bazy OLTP realizuja spójność na przykład poprzez protokół 2PC. Tak jest w teorii. W praktyce systemy DNS oparte na kaszowaniu zapewniaja duża dostępność, ale słaba spójność patrz niżej. Copyright c 2018 P. F. Góra 11 4

Podstawowe pojęcia dostępność Dostępność (availability) istnieje gwarancja, że każde zapytanie zwróci wiarygodna odpowiedź w skończonym czasie, bez utraty komunikatów, bez konieczności zgłaszania błędu, w tym błędu typu timeout. Szybka odpowiedź jest lepsza od braku odpowiedzi, ale w tym kontekście wystarcza, aby usługa kiedyś, w końcu (ang. eventually) udzieliła wiaygodnej odpowiedzi. Istnieje także pojęcie eventual consistency: Dopuszczamy, że system przez jakiś czas nie będzie spójny, ale osiagnie spójność po dostatecznie długim czasie. Copyright c 2018 P. F. Góra 11 5

Podstawowe pojęcia odportność na partycjonowanie Odporność na partycjonowanie (partition tolerance) istnieje gwarancja, że system będzie funkcjonował także po spartycjonowaniu sieci. Innymi słowy, system zawiedzie dopiero gdy wszystkie węzły zawioda. Copyright c 2018 P. F. Góra 11 6

Twierdzenie CAP Rozproszona baza danych a szerzej, dowolny rozproszony system obliczeniowy może jednocześnie spełnić co najwyżej dwa z trzech wymagań: spójność, dostępność i odporność na partycjonowanie. Eric Brewer, 2000 Copyright c 2018 P. F. Góra 11 7

Twierdzenie CAP uznawane jest za prawdziwe (istnieja formalne dowody tego twierdzenia), choć jak każde twierdzenie mówiace o niemożliwości jakiegoś zjawiska (stanu), często jest kontestowane patrz na przykład blog Marka Burgessa. (Kontestacja polega wówczas na kwestionowaniu założeń, tego, czy formalne założenia prawidłowo odzwierciedlaja rzeczywistość.) W nieco bardziej nowoczesnym sformułowaniu, twierdzenie CAP brzmi: W sieci podatnej na błędy komunikacji, nie jest możliwe, aby jakikolwiek system sieciowy zapewniał w każdych warunkach spójność danych i jednocześnie to, że każde zapytanie doczeka się odpowiedzi. Copyright c 2018 P. F. Góra 11 8

Konsensus Nieco abstrakcyjna ideę spójności zastępuje się pojęciem konsensusu. Jeśli mamy procesy {p i } N i=1, z których każdy zwraca pewn a wartość v i, wszystkie poprawne (prawidłowo przebiegajace, nie zakończone błędem) procesy musza zgodzić się odnośnie do wspólnego wyniku, przy czym Zgodność: Każdy poprawny proces musi zgodzić się na ten sam wynik v. Prawidłowość (ang: validity): Jeżeli wszystkie poprawne procesy proponuja tę sama wartość v, to wszystkie poprawne procesy zgadzaja się na tę sama wartość v. Słaba prawidłowość: Jeżeli wszystkie poprawne procesy otrzymuja takie same dane wejściowe, wszystkie musza zwrócić tę sama wartość wynikowa v. Copyright c 2018 P. F. Góra 11 9

Silna prawidłowość: Dla każdego poprawnego procesu, jego wartość wynikowa musi stanowić wartość wejściowa jakiegoś poprawnego procesu. Warunek zakończenia (ang. termination): Każdy prawidłowy proces musi w końcu zwrócić jakaś wartość. Konsensus może być osiagany na różne sposoby, na przykład w drodze głosowania, lub w inny sposób, pozwalajacy uzyskać wspólne zdanie pomiędzy procesami (węzłami sieci). Prawidłowo zakończony proces 2PC jest także przykładem konsensusu. Copyright c 2018 P. F. Góra 11 10

Katastrofa bizantyńska Problem bizantyńskich generałów: Kilka armii oblega miasto. Ich dowódcy musza się zgodzić na wspólny atak lub wspólny, zorganizowany odwrót, gdyż to daje szanse na zwycięztwo. Sytuacja, w której część oddziałów atakuje, część się wycofuje, prowadzi do porażki. Generałowie musza osiagn ać konsensus odnośnie do strategii. Wśród generałów sa jednak zdrajcy, którzy przekazuja niewiarygodne komunikaty, w dodatku różne dla różnych odbiorców. Na przykład dowódcom, którzy chca atakować, zdrajca mówi, że chce się wycofać, a dowódcom, którzy chca się wycofać, zdrajca mówi, że chce atakować. Copyright c 2018 P. F. Góra 11 11

W kontekście bazodanowym czy ogólniej, w kontekście systemów rozproszonych oznacza to sytuację, w której jeden węzeł zawodzi i część pozostałych węzłów widzi, że działa on nieprawidłowo (więc jego opinię należy zignorować), ale część twierdzi, że działa on poprawnie (więc jego opinii nie można ignorować). Nazywa się to katastrofa bizantyńska i oznacza sytuację, w której różni obserwatorzy różnie oceniaja prawidłowość działania danego węzła. W historii systemów rozproszonych zdarzyło się kilka dobrze udokumentowanych katastrof bizantyńskich. Copyright c 2018 P. F. Góra 11 12

Sieci synchroniczne i asynchroniczne Definicja: Sieć jest synchroniczna, jeżeli (a) każdy proces ma zegar, a wszystkie zegary sa zsynchronizowane, (b) każda wiadomość rozsyłana jest w stałym i znanym czasie, (c) każdy proces przebiega w stałym i znanym tempie. Taka sieć działa w rundach (obejściach): W czasie jednej rundy każdy proces wysyła pewna liczbę wiadomości, odbiera wszystkie wiadomości, które zostały do niego wysłane, a także przeprowadza lokalne obliczenia. Sieć, która nie jest synchroniczna, jest nazywana asynchroniczna. Copyright c 2018 P. F. Góra 11 13

Wyniki formalne Istnieje szereg formalnych wyników zwiazanych z twierdzeniem CAP, a ściślej, z pojęciem konsensusu. W sieciach asynchronicznych uzyskanie konsensusu jest niemożliwe, jeśli choć jeden węzeł (proces) zawiedzie. W sieciach synchronicznych, w których co najwyżej f węzłów zawiedzie (w których istnieje co najwyżej f nieprawidłowych procesów), kosensus można uzyskać po nie wiećej niż f+1 rundach. k-set agreement: sieć zgadza się na k różnych wyników. 1-set agreement jest równoważny konsensusowi, w którym żaden węzeł (proces) nie zawodzi. k-set agreement może zostać osiagnięty jeżeli co najwyżej k 1 węzłów (procesów) zawiedzie. Można powiedzieć, że k-set agreement jest najlepszym stopniem zgodności, jaki można osiagn ać dopuszczajac, że k 1 węzłów (procesów) zawiedzie. Copyright c 2018 P. F. Góra 11 14

Zawodna analogia Można pomyśleć, że twierdzenie CAP brzmi trochę jak stary kawał: Nasza firma oferuje usługi szybkie, tanie i dobre...... ale zapewnia jednoczesne spełnienie co najwyżej dwu z tych wymagań Jeśli ma być szybko i tanio, to nie będzie dobrze. Jeśli ma być szybko i dobrze, to nie będzie tanio. Jeśli ma być tanio i dobrze, to nie będzie szybko. Copyright c 2018 P. F. Góra 11 15

Analogia ta jest jednak zwodnicza! W rzeczywistoście jest jeszcze gorzej. Copyright c 2018 P. F. Góra 11 16

Należy zakładać, że każda rzeczywista sieć może zawieść. Nie ma niezawodnych sieci. To, że sieć zawodzi, jest niezależne od projektanta oprogramowania. Wydaje się zatem, że projektujac oprogramowanie, możemy wybierać jedynie pomiędzy dwoma (a nie trzema!) rozwiazaniami: CP Consistency/Partition Tolreance, zapewniajac najlepsza możliwa dostępność: Czekaj na odpowiedź od niedostępnego na skutek spartycjonowania sieci węzła, co może spowodować bład typu timeout, oznaczajacy brak dostępności. To rozwiazanie wybiera się, jeżli najważniejszym warunkiem jest atomowość operacji. AP Availability/Partition Tolerance, zapewniajac najlepsza możliwa spójność: Jeśli otrzymasz zapytanie, odpowiedz przesyłajac najbardziej aktualne Copyright c 2018 P. F. Góra 11 17

dane, które posiadsz, ryzykujac, że moga one być przestarzałe, bo na aktualnie niedostępnym węźle ktoś je zmodyfikował. Tę opcję wybiera się, jeśli system musi funkcjonować pomimo wystapienia zewnętrznych błędów. Copyright c 2018 P. F. Góra 11 18

To samo inaczej Jeżeli wystapi bład komunikacji (bład sieci, partycjonowanie sieci): CP Jeśli system nie może zapewnić, że dostarcza najbardziej aktualna informację, przestaje odpowiadać. AP System cały czas odpowiada, mimo iż (niektóre) dostarczane przez niego dane moga być nieaktualne. Copyright c 2018 P. F. Góra 11 19

Inne możliwe rozwiazania Partycjonowanie danych. Różne rodzaje danych moga wymagać różnych stopni spójności i dostępności, skoro nie moga osiagn ać jednocześnie jednego i drugiego. Na przykład w e-sklepie koszyk musi być stale dostępny, musi reagować na żadania użytkownika, ale w niektórych wypadkach może tracić informację o ostatnich działaniach użytkownika: jest niespójny, ale jeżeli niespójność trwa krótko, nie spowoduje znacznego dyskomfortu użytkownika. Niespójna może być też informacja o dostapnych produktach (gdzieś pokazuje się informacja aktualna, gdzie indziej przestarzała, na przykład z cena sprzed ogłoszenia promocji). Jednak ostateczny rachunek (zawartość zamówienia), koniecznie musi być spójny: użytkownicy nie zgodza się, aby dotarły do nich inne produkty, niż te, które faktycznie zamówili. Copyright c 2018 P. F. Góra 11 20

Partycjonowanie operacji. Niektóre operacje moga wymagać innych parametrów dostępności i spójności. Na przykład oczekujemy, że operacje odczytu musza być zawsze dostępne (nawet za cenę odczytania przestarzałych danych), ale operacje zapisu (modyfikacji) danych musza być spójne. Gdybyśmy wymagali, że operacje odczytu zawsze musza być dostępne, a operacje zapisu zawsze musza być spójne, prowadziłoby to załamania systemu w wypadku awarii sieci. W praktyce zgadzamy się więc, że (niektóre) operacje zapisu staja się niedostępne w przypadku wystapienia awarii sieci na przykład protokół 2PC wycofuje (rollback) transakcję po wystapieniu błędu timeout. Copyright c 2018 P. F. Góra 11 21

Partycjonowanie użytkowników. W systemach geograficznie rozległych, użytkownicy fizycznie najbardziej oddaleni od serwera moga mieć największe trudności i z dostępnościa, i z jakościa (aktualnościa) dostępnych danych. Replikujemy więc serwery, umieszczajac je w różnych geograficznych lokalizacjach. Użytkownicy korzystaja z najbliższego im serwera. Jest on dla nich dostępny i zapewnia spójność danych zapisanych na tym serwerze, jednak jeśli dane zostały zmodyfikowane przez użytkownika korzystajacego z odległego serwera, spójność nie jest zapewniana zachodzi jedynie eventual consistency. Istnieja także inne modele, nie będace ani CP, ani AP, ale lepiej z punktu widzenia danego serwisu ustalajace balans pomiędzy spójnościa a dostępnościa. Copyright c 2018 P. F. Góra 11 22

Bazy NoSQL: Nierelacyjne bazy danych, zaprojektowane (między innymi) do tego, aby rozwiazywać problemy z dostępnościa i spójnościa jak najlepiej z punktu widzenia zakładanej funkcjonalności. NoSQL Not SQL NoSQL = Not Only SQL Copyright c 2018 P. F. Góra 11 23

Zasady BASE Bazy OLTP podlegaja zasadom ACID. Bazy NoSQL podlegaja zasadom BASE: Basically available: System zapewnia dostępność nawet w przypadku awarii (niedostepności) części węzłów. Soft state: Stan systemu może się zmieniać w czasie, nawet jeśli system nie otrzymuje w tym czasie żadnych danych wejściowych. Dzieje się tak z uwagi na... Eventual consistency: Węzły sieci wymieniaja informacje o swoim stanie, w skutek czego, po dostatecznie długim czasie, system osiaga spójność, o ile w tym czasie system nie otrzymał żadnych nowych danych. Copyright c 2018 P. F. Góra 11 24

Popularne typy baz NoSQL Bazy klucz-wartość: Każdemu unikalnemu obiektowi, który chcemy modelować (klientowi, pojazdowi, studentowi,... ) przypisujemy unikalny klucz, a raczej każdemu atrybutowi takiego obiektu przypisujemy unikalny klucz: Klient1.Nazwa, Klient1.Adres, Klient1.NIP itd, a następnie przechowujemy pary klucz-wartość, np (Student1.Imie, Alicja ), (Student1.Nazwisko, Kowalska ), (Student2.Imie, Bogdan ),(Student2.Nazwisko, Nowak ). Nie musimy specyfikować typów wartości ani ile takich atrybutów będziemy przechowywać. Jest to najprostszy typ bazy NoSQL, nie obsługujacy ani złaczeń, ani innych operacji typowych dla SQL. Copyright c 2018 P. F. Góra 11 25

Bazy dokumentów: Zapewne najbardziej popularny typ baz NoSQL. Podobna do baz klucz-wartość, ale wartościami sa dokumenty, zapisane w formacie JSON, XML lub jakimkolwiek innym. Schemat każdej krotki może być inny. Bazy rodzin kolumn (wide column database): Bazy kolumnowe. Ich struktury danych przypominaja tabele o bardzo wielkiej liczbie kolumn i sa przechowywane w porzadku kolumnowym, nie wierszowym. Bazy grafowe: Służa do przechowywania informacji o grafach (węzłach i krawędziach), a wieć modeluja powiazania pomiędzy obiektami rzeczywistości, która baza modeluje. Copyright c 2018 P. F. Góra 11 26

Poważne powody używania baz NoSQL Bardzo duże wolumeny danych. Bardzo duży spodziewany ruch. Zmienny, trudny do przewidzenia schemat poszczególnych krotek. Niepoważne powody używania baz NoSQL Modny framework lansuje jakas konkretna bazę NoSQL. Jeżeli tworzymy bazę, w której będziemy przechowywać kilkanaście tysięcy krotek (lub mniej), o strukturze, która znamy lub możemy łatwo przewidzieć, stosowanie baz NoSQL jest błędem projektowym. Copyright c 2018 P. F. Góra 11 27