Rozproszone bazy danych

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Zastosowanie LDAP w obsłudze katalogów bibliotecznych
Podstawowe pojęcia programowania współbieżnego
Architektura SAP R/3 Wybrane zagadnienia.
Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Rozproszone bazy danych
Sieci komputerowe.
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Zrównoleglanie programu sekwencyjnego
Sieci komputerowe.
WPROWADZENIE DO BAZ DANYCH
E ASY R EMOTE T ERMINAL C ONTROLER ERTC. C EL PRODUKTU ERTC jest to aplikacja, która umożliwia bezpośrednią pracę na zdalnym komputerze. Dzięki niej można.
Enterprise Corba Prezentacja seminaryjna T. Pieciukiewicz R. Hryniów.
Wycofywanie potwierdzonych transakcji
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Systemy operacyjne.
Domeny kolizyjne i rozgłoszeniowe
Proxy WWW cache Prowadzący: mgr Marek Kopel
Proxy (WWW cache) Sieci Komputerowe
Mateusz Mikołajczyk to serwer lub program (np. Squid dla Unixa) jest pośrednikiem między siecią a klientem udostępnia klientom zasoby Internetowe.
Wykład 5 Wojciech Pieprzyca
Wykład 4 Wojciech Pieprzyca
Artur Szmigiel Paweł Zarębski Kl. III i
Rozproszone bazy danych
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Opracował: mgr Mariusz Bruździński
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
Inżynieria Oprogramowania
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
? Rosnące potrzeby użytkowników Rozmiar problemu Czas Komputer domowy
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
TOPOLOGIA SIECI LAN.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Komputery macierzowe.
Nowoczesny system zarządzania firmą
Budowa sieci mgr inż. Łukasz Dylewski
Systemy operacyjne.
Jerzy Jelinek Paweł Korpowski
BUDOWA I DZIAŁANIE SIECI KOMPUTEROWYCH
Temat 4: Rodzaje, budowa i funkcje urządzeń sieciowych.
Topologie sieci lokalnych.
Prezentacja i szkolenie
Wybrane zagadnienia relacyjnych baz danych
Sieci komputerowe.
Inne technologie sieciowe.
Aplikacje TCP i UDP. Łukasz Zieliński
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Sieci komputerowe.
Temat 7: Topologie sieciowe (logiczna i fizyczna)
Jednym z podstawowych celów tworzenia sieci komputerowych jest współdzielenie zasobów, takich jak pliki lub drukarki. Każdy z takich zasobów musi być udostępniony,
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz TEMAT : Administracja i bezpieczeństwosieci TEMAT : Administracja i bezpieczeństwosieci.
Model warstwowy ISO-OSI
Zintegrowany monitoring infrastruktury IT w Budimex
Bartosz Pawlak Wiktor Paliwoda Bezpieczeństwo Systemów Operacyjnych IMAP vs POP.
Wstęp do programowania Wykład 7
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
TOPOLOGIE SIECI. Topologia sieci- określa sposób połączenia urządzeń sieciowych ze sobą. Najbardziej znane topologie:  Topologia magistrali  Topologia.
Rozproszony system plików Coda Krzysztof Lichota.
Jak znaleźć igłę w terabajcie siana Marcin Sochacki.
Wady i zalety pracy w chmurze
materiały dla uczestników
Topologie fizyczne i logiczne sieci
Sieci komputerowe Usługi sieciowe 27/09/2002.
TOPOLOGIE SIECI KOMPUTEROWEJ Filip Duda II DT. TOPOLOGIA SIECI Topologia fizyczna - opisuje sposoby fizycznej realizacji sieci komputerowej, jej układu.
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Rozproszone bazy danych prowadzący: mgr Leszek Siwik autorzy: Michał Żelechowski, Marcin Wielgus

Główne zagadnienia Zapotrzebowanie Problemy rozproszenia Szczegóły techniczne

Trochę historii Duże komputery typu mainframe + terminale, scentralizowana baza danych, stanowi 100% mocy obliczeniowej Rozwój komputerów osobistych, obsługa GUI u klienta Dalszy rozwój, migracja procesów do klienta, odciążenie bazy danych, wykorzystanie rozproszonej mocy obliczeniowej, nadal model scentralizowany Pojawia się problem, bo pojedynczy serwer bazy danych nie jest w stanie obsłużyć w sposób efektywny wielu klientów

Zapotrzebowania Szybki dostęp do informacji, problem z wąskim gardłem na poziomie jednego serwera baz danych Rozproszenie geograficzne przedsiębiorstw, potrzeba przeźroczystego dostępu do danych Obniżanie kosztów, poprzez wykorzystanie pełnej mocy obliczeniowej już zakupionego sprzętu Idea migracji procesów jest rozwiązaniem, ale zarządzanie systemem robi się trudne Rozwiązanie problemu, dodać wiele serwerów bazodanowych, rozproszyć je zgodnie z zapotrzebowaniem

Rozwiązanie architektoniczne Grid services – ze względu na niskie koszty procesorów oraz coraz tańsze i szybsze sieci lokalne, rozpowszechnienie internetu, wspracie np.. Oracle 10g Architektura rozproszona globalnie – poszczególne węzły bazy danych rozproszone poprzez internet

Problemy z tego wynikające Sposoby składowania danych a przeźroczystość dostępu Dostęp do danych, przetwarzanie zapytań Architektura i awarie Spójność danych a protokoły dostępu, koordynacja Równoległy dostęp i usuwanie zakleszczeń

Składowanie danych Replikacja – każda dana ma jedną swoją kopię na każdym fizycznym elemencie bazy danych Fragmentacja – dane są „pokawałkowane” na poziomie relacji w fizycznie różnych miejscach Replikacja i fragmentacja – każda sfragmentowana relacja ma swoją fizyczną replikę

Replikacja Dostępność – duża, w przypadku awarii któregoś z węzłów, informacja jest dostępna na innym węźle Równoległość – szybki odczyt, możliwość jego wykonywania równolegle, na kilku węzłach Koszt aktualizacji – duży, system musi dbać o spójność zapisywanych danych

Fragmentacja Pozioma – relacja jest dzielona na części względem wartości konkretnego klucza. W wyniku otrzymuje się zbiór tablic, których suma daje rekonstrukcję oryginalnej tablicy (intuicyjnie rozcięcie wzdłuż wiersza) Pionowa – dekompozycja, fragmenty rekonstruują się w całość poprzez złączenie naturalne, do rozbicia potrzebny jest nowy klucz (intuicyjnie rozcięcie wzdłuż kolumny)

Replikacja i fragmentacja Stosujemy te dwie techniki w sposób mieszany Dopuszczalne są zagłębienia

Przeźroczystość dostępu Ważnym jest, aby klient rozproszonej bazy danych mógł z niej korzystać w taki sposób jak korzysta z bazy nie-rozproszonej Nazewnictwo – każdy fragment/replika ma swoją unikatową nazwę. Name server – każda nazwa jest rejestrowana, wada – w przypadku awarii serwera baza przestaje działać, wąskie gardło. Prefiksy – każda część dostaje identyfikator np.. f3 – fragment trzeci, r2 – druga replika Aktualizacja danych a przeźroczystość – użytkownik nie wie nic o nazewnictwie, każda replika musi zostać zaktualizowana

Przetwarzanie zapytań Mniejszy koszt – równoległa obsługa zapytań na wielu maszynach Większy koszt – przepustowość z uwagi na sieć Optymalizacja – nietrywialna Przekształcenia zapytań – kierowanie zapytań do replik, których koszt osiągnięcia jest najmniejszy / kierowanie zapytań w zależności od ich semantyki do odpowiedniego węzła, rozbijanie zapytań na części Operacje złączania – 1. Przesłać wszystkie dane do jednego miejsca i węzeł obciążyć operacją /lub/ 2. Umieścić dane z dwóch węzłów w jednym, przetworzyć, wynik przesłać do kolejnego, przetworzyć etc. Zrównoleglenie złączania – divide & conquer między różne węzły

Rozproszony model transakcji Manager transakcji – opiekuje się transakcjami lokalnymi lub częściami lokalnych transakcji, prowadzi logi, zapewnia bezpieczny dostęp do danych na poziomie równoległym Koordynator transakcji – koordynuje wykonaniem transakcji, rozpoczyna ją, dzieli na części i rozsyła do pozostałych węzłów, domyka transakcję, akceptując ją lub odrzucając na wszystkich węzłach

Rodzaje awarii Awaria fizyczna węzła – awaria zasilania, uszkodzenie dysku Błędy transmisji sieci, zator w sieci – np.. TCP/IP Awaria sieci – odcięcie pewnej grupy węzłów od reszty

Rodzaje połączeń - podział Ze względu na koszt instalacji, liczy się koszt założenia połączenia fizycznego Koszt komunikacji – koszt utrzymania łącza oraz czas przesłania danych Dostępność – wartość mówiąca o tym, jak często w jednostce czasu dane są dostępne

Rodzaje połączeń lokalnych – topologia Pełna sieć – połączenie każdy węzeł z każdym innym, wysoki koszt utrzymania i instalacji, wysoka dostępność, bardzo szybkie przesyłanie danych (O(1)) Sieć partycjonowana – różna ilość połączeń między węzłami, mniejszy koszt niż w przypadku sieci pełnej, większe prawdopodobieństwo, że uszkodzenie połączenie rozbije sieć na dwie części, istnieją wąskie gardła Drzewo – uszkodzenie linii oznacza odcięcie definitywne pewnej grupy węzłów, niski koszt konstrukcji, szybkość dostępu O(log(n)) Pierścień – Tania konstrukcja, uszkodzenie jednego węzła nie przeszkadza w komunikacji, długi czas przesyłania danych – O(n)

Znajdowanie się w awarii W przypadku zagubienia danych, system powinien zadbać o retransmisje W przypadku awarii łącza, system jest w stanie znaleźć nową, optymalną drogę przesyłania danych Maszyna, która startuje ponownie powinna zadbać o to, aby zaktualizować dane, które zostały zmienione w trakcie trwania awarii, z reguły wstrzymuje się działanie systemy na czas naprawienia awarii

Protokoły potwierdzania W przypadku potwierdzania transakcji, wszystkie strony w niej uczestniczącej muszą przyjąć status jej wykonania Two-phase-commit protocol (2PC) Three-phase-commit protocol (3PC)

Two-Phase Commit zasada działania Transakcja została zakończona na wszystkich węzłach Koordynator rozsyła do wszystkich węzłów biorących udział w transakcji zapytanie, czy ją akceptują. Każdy węzeł ją akceptuje lub odrzuca Jeśli wszystkie węzły zaakceptowały transakcję, koordynator też ją akceptuje i powiadamia o tym węzły. Gdy któraś ze stacji odrzuci transakcję lub upłynie czas odpowiedzi, koordynator odrzuca transakcję i powiadamia o tym wszystkie węzły W pewnych odmianach 2PC węzły dodatkowo przesyłają jeszcze jedno potwierdzenie (na wypadek gdyby któraś stacja zdążyła wysiąść)

Rozwiązywanie problemów dotyczących awarii Węzeł padnie, mimo że zaakceptował transakcję. W jego interesie leży, żeby dowiedział się (jak już wstanie) jak przebiegła akceptacja transakcji Koordynator przestaje działać – węzły czekają, aż się podniesie. Sytuacja niepożądana, bo awaria może się przedłużyć, dostęp do danych jest blokowany

Three-Phase Commit Działa podobnie do 2PC, istnieje jedna faza więcej Pierwsza faza identyczna z 2PC, druga jeśli zakończona sukcesem  koordynator wysyła prośbę potwierdzenia Jeśli co najmniej K stacji potwierdzi, transakcja jest akceptowana

Wybór koordynatora Koordynator nadzoruje zatwierdzenie / odrzucenie transakcji W przypadku gdy węzeł, na którym pracuje koordynator zawiedzie, powinien zacząć działać nowy koordynator na innym węźle, w przeciwnym wypadku dane transakcji są zablokowane Rozwiązanie  zapasowy koordynator lub algorytm elekcji

Zapasowy koordynator Działa równolegle z głównym koordynatorem, na innym węźle Odbiera wszystkie dane adresowane do głównego koordynatora, Nie podejmuje komunikacji z węzłami dopóki działa główny koordynator Utrzymuje połączenie z głównym koordynatorem, sprawdzając jego dyspozycyjność oraz synchronizując stan Jeśli łączność zostaje po jakimś czasie przerwana, uznaje, że główny koordynator nie działa, przejmuje jego zadania

Algorytm elekcji Każdy węzeł posiada unikatowy numer Koordynator nie odpowiada przez określoną ilość czasu  trzeba wybrać nowy Węzeł zgłasza swoją kandydaturę na nowego koordynatora, rozsyła ją do wszystkich węzłów o numerze większym od numerze koordynatora, który przestał działać Jeśli nie dostaje odpowiedzi, oznacza to, że węzły nie działają, węzeł zostaje głównym koordynatorem, rozsyła tą informacje do wszystkich pozostałych węzłów, rozpoczyna zatwierdzanie transakcji od początku Jeśli dostaje odpowiedź, odczekuje na potwierdzenie, że inny węzeł będzie koordynatorem, jeśli potwierdzenie nie nadejdzie, algorytm jest restartowany W efekcie, węzeł o najwyższym numerze zostaje głównym koordynatorem

Kontrola współbieżności Single-Lock-Manager Multiple Coordinators Majority Protocol Biased Potocol Primary Copy

Single-Lock-Manager Manager znajduje się dokładnie w jednym miejscu w sieci Dane są blokowane na żądanie, jeśli manager nie może ich natychmiast zablokować, żądanie jest odkładane do momentu, w którym dane mogą zostać zablokowane W przypadku odczytu, dane mogą być pobrane z każdego serwera bazodanowego, zapis musi odbywać się na wszystkich węzłach Zalety  prostota implementacji, łatwe usuwanie zakleszczeń, wady  wąskie gardło, niski poziom niezawodności

Multiple Coordinators Każdy węzeł posiada swojego managera Zasada działania podobnie jak w przypadku pojedynczego managera Zalety większa przepustowość, większa niezawodność (awaria pojedynczego węzła nie blokuje systemu), wady  problem z zakleszczeniami

Majority Protocol W przypadku zapisu, należy zablokować każdą replikę Potwierdzenie blokady jest oczekiwane od każdego z węzłów zawierającego replikę Każda prośba blokady jest kolejkowana zgodnie z kolejnością przyjścia

Biased Potocol Rozróżniamy blokady typu Shared i Exclusive Shared  typowe dla odczytu, blokuje replikę na jednym z węzłów Exclusive  blokuje repliki na wszystkich węzłach, typowe dla zapisu Ten typ protokołu faworyzuje blokady typu Shared, działa podobnie do Majority, jest bardziej wydajny, gdyż odczyt występuje statystycznie częściej niż zapis

Primary Copy Jedna z replik jest uznawana za główną Blokada jest przetwarzana tylko na węźle głównej repliki Rzadziej występują zakleszczenia Jeśli węzeł z główną repliką padnie, dane stają się niedostępne, mimo, że fizycznie istnieją działające węzły z pozostałymi replikami

Zakleszczenia i jak sobie z nimi radzić Zakleszczenie powstaje np. wtedy gdy węzeł A chce zablokować dane zablokowane przez węzeł B, a węzeł B chce zablokować dane blokowane przez węzeł A W/w sytuację można rozszerzyć na większą ilość węzłów W celu określenia zapotrzebowania na dane możemy stworzyć graf, którego węzłami są transakcje, krawędziami zaś zapotrzebowanie na dostęp do danych Na każdym węźle fizycznym istnieje graf, który reprezentuje bieżącą sytuację

Zakleszczenia i jak sobie z nimi radzić, cd. Na każdym węźle fizycznym rezyduje kontroler, który buduje graf, uzupełnia go, wyszukuje zakleszczenia Każdy kontroler ma graf lokalny, na jednym węźle budowany jest graf globalny Jeśli kontroler wykryje zakleszczenie lokalne (na swoim węźle) usuwa je Usunięcie zakleszczenia polega na cofnięciu transakcji jednego z węzłów-ofiary, do momentu odblokowania zakleszczenia. Transakcja ta jest wznawiana, gdy pozostałe transakcje, biorące udział w zakleszczeniu zostaną zakończone Kontroler wysyła nową postać grafu do węzła z kompletnym grafem zakleszczeń

Pytania Wymień i krótko scharakteryzuj 3 metody składowania danych? Jakie dwie jednostki opiekują się wykonaniem transakcji, jakie są ich zadania? Rodzaj połączeń – podział, topologia Zasada działania 2PC Zasada działania algorytmu elekcji.

http://student.uci.agh.edu.pl/~zelechow/Rozproszone.ppt