JPaxos. Java library for state machine replication

Podobne dokumenty
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Projekt i implementacja narzędzia do analizy modeli spójności F R Y D E R Y K R A C Z Y K K O N R A D S Z A Ł K O W S K I

Wprowadzenie. Dariusz Wawrzyniak 1

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Przykłady DFS z lotu ptaka :) NFS AFS Coda GoogleFS ZFS

Middleware wprowadzenie października 2010

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Wywoływanie metod zdalnych

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

Architektura i mechanizmy systemu

Mechanizmy rozgłaszania niezawodnego

Wywoływanie metod zdalnych

Programowanie zespołowe

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Tworzenie kopii zapasowych i archiwalnych

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Systemy rozproszone System rozproszony

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

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Prezentacja systemu plików NFS

Visual VM, Java Management extension i inne ciekawostki

Windows Server 2012 Hyper-V Replica.

Systemy Rozproszone. Zagadnienia do egzaminu.

Projekt: Microsoft i CISCO dla Zachodniopomorskich MŚP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Win Admin Replikator Instrukcja Obsługi

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Red Hat Network Satellite Server

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

Programowanie obiektowe

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Laboratorium Sieci Komputerowych - 2

Działanie komputera i sieci komputerowej.

API transakcyjne BitMarket.pl

Remote Method Invocation 17 listopada 2010

Bazy danych - ciągłość działania, spójność danych i disaster recovery. Daniel Polek-Pawlak Jarosław Zdebik

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

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

Komunikacja grupowa dla usług sieciowych (etap I)

Podejście obiektowe do budowy systemów rozproszonych

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

Integracja systemów sterowania i sterowanie rozproszone 5 R

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

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Forum Client - Spring in Swing

Przypisywanie bibliotek w architekturze SAS

Tworzenie aplikacji rozproszonej w Sun RPC

Klient-Serwer Komunikacja przy pomocy gniazd

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

e-audytor v.3.x INSTRUKCJA INSTALACJI I URUCHOMIENIA SYSTEMU

Programowanie obiektowe

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Autoryzacja zleceń z użyciem aplikacji Java Web Start "Pocztowy24Podpis"

Aplikacje RMI

Licencjonowanie funkcji zarządzania System Center 2012 Server

Przewodnik technologii ActivCard

Sybase Professional Services

76.Struktura oprogramowania rozproszonego.

Synergia świata korporacji i OpenSource na przykładzie IBM Spectrum Protect i OpenStack Swift

Dane bezpieczne w chmurze

Bazy danych. Dr inż. Paweł Kasprowski

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

1 Wprowadzenie do J2EE

Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Klasy abstrakcyjne i interfejsy

Win Admin Replikator Instrukcja Obsługi

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF

Procesy dynamiczne BPM+SOA+CLOUD. Mariusz Maciejczak

Bazy danych 2. Wykład 1

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Szybki przewodnik po produkcie. EMC DataDomain

Zadanie 2: transakcyjny protokół SKJ (2015)

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Komunikacja i wymiana danych

Command (action, transaction, polecenie)

Przywracanie systemu. Do czego służy Przywracanie systemu?

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Transkrypt:

JPaxos Java library for state machine replication Przygotowane przez Jan Kończak Tomasz Żurkowski We współpracy z Nuno Santos (EPFL) Kierownik zadania dr. hab Paweł T. Wojciechowski

Plan prezentacji 1 Replikacja 2 JPaxos 3 Wymagania 4 API 5 DEMO Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 2 / 31

Replikacja Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 3 / 31

Replikacja Replikować! Co replikować? Po co replikować? Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 4 / 31

Co replikować Jak wygląda typowa aplikacja? Czy da się zreplikować? Użytkownik Nie używa Komputera (urządzenie) Nie uruchamia Aplikacji lokalnej Nie (korzysta z) Usługa / aplikacja zdalna Tak Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 5 / 31

Po co replikować Możliwe cele Tolerancja błędów Trwałość danych Replikacja Lepsza wydajność Większa dostępność Oczywiście... Jednocześnie nie da się spełnić wszystkich wybierz sobie dwa... Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 6 / 31

Podejścia do replikacjii Replikacja Aktywna Każda replika wykonuje każdą operacje Transparentna Pasywna Jedna replika wykonuje operacje Świadoma Klient Replika 0 Replika 1 Klient Primary Backup Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 7 / 31

Operacje zapisu i odczytu Operacja write Wpływa na następne operacje Operacja read Nie zmienia stanu repliki Dlaczego lubimy operacje read Nie trzeba ich uzgadniać Mogą być wykonane tylko na jednej replice Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 8 / 31

Problemy! Spójność O co chodzi? Punkt widzenia użytkownika Korzystam z aplikacji. Chcę dostawać logiczne wyniki! Główna cecha spójności W Y D A J N O Ś Ć S P Ó J N O Ś Ć Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 9 / 31

Spójność - modele, przykład Przykładowy podział na modele spójności atomowa (liniowość) czas rzeczywisty sekwencyjna globalna kolejność (silna spójność) przyczynowa uporządkowanie przyczynowe procesorowa Połączenie FIFO i koherentności FIFO (PRAM) kolejność z jednego źródła (od klienta) podręczna (koherentna) kolejność w ramach zasobu Praktyczne przykłady Czy na sali jest flipchart? Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 10 / 31

Silna spójność Silna spójność Gwarantuje zachowanie równoważne sekwencyjnemu wykonaniu Cechy Nie ma potrzeby rollbacku ani kompensacji Programista nie musi się przejmować problemami braku spójności Wymaga dostępności większości replik Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 11 / 31

Awarie Awarie się zdarzają. Oczywiście w najmniej odpowiednim momencie. Miękkie? Twarde? Bizantyjskie? Jednolite? Czy sprzęt może ulec sprzęt? Czy proces może się zachowywać niepoprawnie? Czy proces może się zachowywać złośliwie? Ile awarii można przeżyć? Równoczesnych? Następujących po sobie? Automatyczne odtwarzanie System może sam wrócić do sprawności Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 12 / 31

IT-SOA O projekcie Projekt dotyczy współczesnych technologii informacyjnych opartych na paradygmacie SOA (ang. Service Oriented Architecture). Projekty JPaxos - Zreplikowana maszyna stanów PaxosSTM - Rozproszona pamięć transakcyjna RESTGroup - Komunikacja grupowa dla usług sieciowych REST MProxy - Modularny serwer pośredniczący FADE - Failure Detection Service Więcej informacji http://www.soa.edu.pl http://www.it-soa.pl Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 13 / 31

LSR @ EPFL Summer@EPFL Praktyki letnie dla studentów - na uczelni EPFL (École Polytechnique Fédérale de Lausanne) LSR LSR oznacza Laboratorium Systemów Rozproszonych (Laboratoire de Systèmes Répartis). Współpraca z: André Schiper Nuno Santos Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 14 / 31

JPaxos Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 15 / 31

Model systemu Żądanie, odpowiedź i zrzut stanu traktowane są jako byte[] Typowa usługa Usługa zreplikowana przez JPaxos Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 16 / 31

Przykład użycia Usługa Echo klient wysyła ciąg znaków usługa zamienia małe litery na duże usługa odpowiada klientowi Demonstracja Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 17 / 31

Replikacja a Konsensus Konsensus? Każdy z procesów wybiera tę samą wartość spośród proponowanych przez wszystkie procesy Replikacja total order reliable broadcast Aby zrealizować replikację, wystarczy mieć dostęp do uporządkowanego b-castu Total order reliable broadcast konsensus Aby zrealizować uporządkowany b-cast, wystarczy rozwiązać konsensus Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 18 / 31

Paxos Krótka historia Part-time Parliment Paxos made simple Google (distributed locks) RingPaxos 2000 2005 2010 Kto zainwestował w implementację Paxos Google Chubby distributed lock service IBM SAN Volume Controller Microsoft - Autopilot cluster management (Bing) Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 19 / 31

Wymagania Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 20 / 31

Wymagania Środowisko Java JRE 1.5 or later Determinizm Usługa musi zaczynając od tego samego stanu początkowego generować na dany ciąg zapytań zawsze identyczne odpowiedzi Grupy statyczne Lista replik musi być znana podczas uruchamiania systemu Nie jest możliwe zmienianie liczby ani położenia replik Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 21 / 31

Zapis stanu (snapshotting) Motywacja Jak uaktualnić stan repliki R3? Wybór: Trzymać wszystkie decyzje Zapewnić mechanizm transferu stanu Wymaganie #3 Usługa musi: Przekazywać regularnie zrzut stanu Umieć odtworzyć się ze zrzutu stanu (innej repliki) Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 22 / 31

Decyzja o poziomie odporności na awarie Dostępność Usługa jest dostępna wtedy i tylko wtedy gdy większość replik jest poprawna Kompromis wydajność tolerowane awarie Istnieje możliwość tolerowania awarii nawet wszystkich replik kosztem znacznie zmniejszonej wydajności Wymaganie #4 Użytkownik musi wybrać czy system ma tolerować awarię wszystkich replik i działać wolno, czy ma działać szybko tolerując awarię nie więcej niż połowy replik Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 23 / 31

Gwarancje maszyny stanów Żądania (operacje) wysłane przez klientów (użytkowników) będą wykonane na każdej replice w tej samej kolejności Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 24 / 31

API Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 25 / 31

API (1) Client Client class void connect() byte[] execute(byte[]) SerializableClient class void connect() Object execute(object) Replica Replica class Replica(Configuration config, int localid, Service service) void start() Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 26 / 31

API (2) SimplifiedService class byte[] execute (byte[] value) byte[] makesnapshot () void updatetosnapshot (byte[] snapshot) SerializableService class (extends SimplifiedService) Object execute (Object value) Object makesnapshot () void updatetosnapshot (Object snapshot) AbstractService class (implements Service) byte[] execute (byte[] value, int executeseqno) void askforsnapshot (int lastsnapshotnextrequestseqno) void forcesnapshot (int lastsnapshotnextrequestseqno) void firesnapshotmade(int nextrequestseqno, byte[] snapshot, byte[] response) void updatetosnapshot (int requestseqno, byte[] snapshot) void recoveryfinished() Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 27 / 31

API (3) Plik konfiguracyjny paxos.properties process.0 = localhost:2021:3001 process.1 = localhost:2022:3002 process.2 = localhost:2023:3003 CrashModel = EpochSS LogPath = jpaxoslogs WindowSize = 2 BatchSize = 65507 MaxBatchDelay = 10 Network = TCP Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 28 / 31

DEMO Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 29 / 31

Pytania i dyskusja http://www.it-soa.pl/jpaxos Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 30 / 31

Kontakt Kontakt Jan Kończak - jan.konczak@student.put.poznan.pl Tomasz Żurkowski - tomasz.zurkowski@student.put.poznan.pl Download http://www.it-soa.pl/download/resp/jpaxos/ Jan Kończak, Tomasz Żurkowski () JPaxos 12 kwietnia 2011 31 / 31