Bigtable Rozproszony system pamięci

Podobne dokumenty
Seminarium Bazy Danych I. BigTable. Piotr Świgoń Uniwersytet Warszawski

Wstęp Bigtable - opis Wydajność. SZBD Bigtable. Kamil Anikiej. Uniwersytet Warszawski 9 X 2008

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

MapReduce. Janina Mincer-Daszkiewicz Systemy rozproszone. MSUI, II rok

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

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

WPROWADZENIE DO BAZ DANYCH

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

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

Tabela wewnętrzna - definicja

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Indeksowanie w bazach danych

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Cele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.

Sektor. Systemy Operacyjne

Hurtownie danych wykład 5

Hbase, Hive i BigSQL

Administracja i programowanie pod Microsoft SQL Server 2000

System plików przykłady. implementacji

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

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

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

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Galileo - encyklopedia internetowa Plan testów

CouchDB. Michał Nowikowski

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

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

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Bazy danych. Dr inż. Paweł Kasprowski

Klient-Serwer Komunikacja przy pomocy gniazd

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

e-off f i f ce: :Sekr k e r tari r at t w chm h urz r e Marcin Pytel

Letnia Akademia SUSE. Implementacja nowych rozwiązań open source wszystko, co musisz wiedzieć!

Kurs Wizualizacja z WinCC SCADA - Zaawansowany. Spis treści. Dzień 1. I VBS w WinCC podstawy programowania (zmienne, instrukcje, pętle) (wersja 1410)

Apache Hadoop. Wolna implementacja GFS, MapReduce oraz Big Table. Michał Jaszczyk

System plików warstwa logiczna

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

AE/ZP-27-16/14. Oprogramowanie do wykonywania kopii zapasowych oraz zarządzania maszynami wirtualnymi

Zarządzanie transakcjami

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Fizyczna struktura bazy danych w SQL Serwerze

Apache Hadoop framework do pisania aplikacji rozproszonych

Nowe technologie baz danych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

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

Kompresja tablic obliczeń wstępnych alternatywa dla tęczowych tablic. Michał Trojnara.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Logiczny model komputera i działanie procesora. Część 1.

Technologie Informacyjne

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Analiza i pomiar wydajności rozproszonego systemu bazodanowego Gemius BigTable

Programowanie współbieżne Wykład 2. Iwona Kochańska

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Tworzenie aplikacji bazodanowych

System plików. Warstwowy model systemu plików

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Dziennik Urzędowy Unii Europejskiej L 274/9

Zaawansowane funkcje systemów plików. Ewa Przybyłowicz

System plików przykłady implementacji

Metody dostępu do danych

Architektura komputerów

Fizyczna organizacja danych w bazie danych

Wdrożenie modułu płatności eservice. dla systemu Magento

Specyfikacja API Runtime BAS 3.0

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

program TRX

Wprowadzenie do hurtowni danych

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

INFRA. System Connector. Opis systemu

Normalizacja relacyjnych baz danych. Sebastian Ernst

Zarządzanie pamięcią operacyjną

CZĘŚĆ I. WARSTWA PRZETWARZANIA WSADOWEGO

Data wykonania Część praktyczna

Strumienie, pliki. Sortowanie. Wyjątki.

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Hadoop i Spark. Mariusz Rafało

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Wykład XII. optymalizacja w relacyjnych bazach danych

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

Wprowadzenie do Hurtowni Danych

Rozproszony system plików do obsługi serwisów internetowych

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Architektura komputerów

Telesprzedaż by CTI Instrukcja

Wprowadzenie. Dariusz Wawrzyniak 1

Google File System II. Marek Dzikiewicz

Referat pracy dyplomowej

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

Transkrypt:

Bigtable Rozproszony system pamięci Janina Mincer-Daszkiewicz Systemy rozproszone MSUI, II rok

Materiały i rysunki zaczerpnięto z następujących źródeł Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Rebert E. Gruber, Bigtable: A Distributed Storage System for Structured Data, firma Google, OSDI 2006 Artykuł: http://students.mimuw.edu.pl/sr-msui/04-bigtable/bigtable-osdi06.pdf Prezentacja: http://students.mimuw.edu.pl/sr-msui/04-bigtable/bigtable-osdi06- slides.pdf 2

Inne źródła Kamil Anikiej, prezentacja na seminarium z Systemów Rozproszonych http://students.mimuw.edu.pl/sr/sr-mono/bigtable.pdf Praca magisterska Tomasza Wekseja, Niezawodność w rozproszonych systemach bazodanowych Apache Hadoop, HDFS, Hbase Gemius, MooseFS, Gemius Bigtable 3

Wprowadzenie Rozproszony system pamięci do przechowywania danych o zadanej strukturze, które mogą osiągać bardzo duże rozmiary (petabajty przechowywane na tysiącach serwerów typu off-the-shelf) Cele projektowe: do wielu różnych zastosowań (Google Earth, Google Finance, web indexing), skalowalność, wysoka wydajność, wysoka dostępność Przypomina bazę danych, ale nie wspiera w pełni modelu relacyjnego 4

Model danych Bigtable to wielowymiarowy słownik, rzadki, rozproszony, trwały, posortowany Słownik jest indeksowany za pomocą klucza wiersza, klucza kolumny i stempla czasowego; każda wartość w słowniku jest nieinterpretowaną tablicą bajtową. (row: string, column: string, time: int64) string 5

Model danych Webtable przechowuje strony webowe (nazwa wiersza to odwrócony URL) Rodzina kolumn contents przechowuje zawartość strony (trzy wersje, ze stemplami t 3, t 5 i t 6 ), anchor teksty odsyłaczy do strony (po jednej wersji) z dwóch serwisów (więc dwie rodziny); inny przykład: language: ID (zawartość to język strony) 6

Model danych Webtable Klucze wierszy są dowolnymi napisami (do 64 KB) Każdy odczyt lub zapis z kluczem pojedynczego wiersza jest atomowy Zakres wierszy w tablicy jest dzielony dynamicznie Każdy zakres wierszy nosi nazwę tabletu, jest jednostką 7 rozpraszania i równoważenia obciążenia

Model danych Webtable Klucze w kolumnach są grupowane w zbiory zwane rodzinami kolumn, które stanowią podstawową jednostkę kontroli dostępu Trzeba utworzyć rodzinę kolumn nim zacznie się zapisywać dane Klucz kolumny jest tworzony zgodnie ze składnią: family: qualifier Kontrola dostępu oraz liczenie obciążenia dysku i pamięci są wykonywane na poziomie rodzin kolumn 8

Model danych Webtable Każda komórka w Bigtable może zawierać wiele wersji tych samych danych Stemple czasowe (64-bitowe liczby całkowite) są przydzielane przez Bigtable lub aplikacje klienta Wspiera dwa zestawy ustawień na rodzinę kolumn, żeby automatycznie odśmiecać wersje, ostatnie n wersji lub najnowsze wersje 9

API - Pisanie Kod w C++, operacje w ramach Apply są realizowane atomowo 10

API - Czytanie Obiekt scanner umożliwia iterację po wszystkich odsyłaczach w wierszu 11

API - inne Wsparcie dla transakcji dotyczących jednego wiersza (czytanie aktualizacja pisanie); aktualnie brak wsparcia dla transakcji obejmujących wiele wierszy Wsparcie dla skryptów dostarczanych przez użytkownika (pisanych w języku Sawzall) wykonywanych w przestrzeni adresowej serwera Wsparcie dla współpracy z MapReduce Bigtable może być używane jako źródło danych wejściowych i jako miejsce na dane wynikowe 12

Związek Bigtable z innymi usługami Bigtable korzysta z GoogleFS do przechowywania logów i plików z danymi Dane Bigtable są przechowywane w google owym formacie plików SSTable. SSTable zawiera ciąg bloków (zwykle wielkości 64 KB) oraz blok indeksowy (za ostatnim blokiem danych). Bigtable korzysta z Chubby (rozproszony zarządca blokad) m.in. do zapewnienia, że jest tylko jeden aktywny zarządca, do odszukiwania serwerów tabletów, do przechowywania schematu danych i list kontroli dostępu 13

Implementacja Bigtable ma trzy główne składowe: biblioteka dołączana do każdego klienta jeden zarządca wiele serwerów tabletów Serwery tabletów mogą być dynamicznie dodawane lub usuwane z klastra Zadania zarządcy: przydział tabletów do serwerów, monitorowanie dostępności serwerów, równoważenie obciążenia, odśmiecanie plików w GoogleFS Zadania serwera tabletów: zarządzanie zbiorem tabletów (od 10 do tysiąca tabletów), obsługa żądań odczytu i zapisu tabletów, rozbijanie za dużych tabletów na mniejsze (rozmiaru 100 200 MB) Większość klientów w ogóle nie komunikuje się z zarządcą tabletów (informację o położeniu tabletów dostarcza Chubby) 14

Implementacja położenie tabletu Trzy-poziomowa hierarchia analogiczna do tej z B + - drzew do przechowywania informacji o położeniu tabletów 15

Implementacja położenie tabletu 2 Każdy wiersz tabletu METADATA przechowuje ok. 1 KB danych, przy założeniu, że jego rozmiar to 128 MB, mamy 2 17 pozycji w bloku indeksowym,czyli łącznie można zaadresować 2 34 tabletów, czyli łącznie 2 34 *2 7 *2 20 bajtów w 128 MB tabletach Biblioteka po stronie klienta buforuje położenie tabletów. Jeśli brak informacji w schowku, to potrzebne są trzy odczytu po sieci (więcej w sytuacji niepoprawnych danych). Biblioteka czyta pozycje z wyprzedzeniem W tablicach METADATA są także trzymane logi zdarzeń dotyczących tabletów 16

Implementacja przypisanie tabletu Każdy tablet jest przypisany w danej chwili do jednego serwera tabletu, informację o nim przechowuje zarządca Serwer tabletu podczas startu pobiera blokadę do unikatowego pliku w katalogu Chubby ego; utrata tej blokady oznacza, że serwer przestał działać. Gdy ten plik ginie, serwer wyłącza się, dopóki jest, serwer próbuje odzyskać blokadę Zarządca jest odpowiedzialny za wykrywanie sytuacji, gdy serwer tabletu przestaje działać; cyklicznie odpytuje serwer o status blokady; jeśli nie może się połączyć lub dowiaduje się o utracie blokady, to sam próbuje założyć blokadę i jeśli się uda, to ją usuwa, a tablety z tego serwera oznacza jako nieprzypisane 17

Implementacja przypisanie tabletu 2 Gdy zarządca rozpoczyna pracę, musi rozpoznać bieżące przypisanie tabletu nim może je zmienić: zakłada unikatową blokadę zarządcy przegląda katalog z informacją o serwerach komunikuje się z żyjącymi serwerami, żeby odtworzyć listę przypisanych tabletów przegląda tabelę METADATA by poznać pełną listę tabletów i odtworzyć listę tych nieprzypisanych Zbiór istniejących tabletów z zmienia się tylko wtedy, gdy tabela jest tworzona lub usuwana (to inicjuje zarządca) oraz podczas rozbijania dużego tabletu na mniejsze (to inicjuje serwer tabletu podczas commit informacja trafia do tabeli METADATA, zawiadamiany jest zarządca) 18

Reprezentacja tabletu Obsługa tabletu 19

Obsługa tabletu 2 Zakomitowane zmiany trafiają do logu (rekordy redo), ostatnie są przechowywane w buforze w pamięci, starsze w kolejnych plikach SSTable. Żeby odtworzyć tablet, serwer czyta metadane (listę plików SSTable i zbiór punktów redo, które są wskaźnikami do logów zawierających dane); czyta indeksy plików SSTable, rekonstruuje bufor w pamięci wykonując wszystkie zakomitowane zmiany od punktów redo Operacja zapisu: sprawdzenie uprawnień (Chubby), zapis do logu, zakomitowany zapis do bufora w pamięci Operacja odczytu: sprawdzenie uprawnień (Chubby), wykonanie na połączonym widoku plików SSTable i bufora w pamięci (tworzenie widoku jest efektywne, bo oba zbiory są posortowane leksykograficznie) 20

Scalanie Mniejsze scalanie (ang. minor compaction) gdy bufor w pamięci przekroczy ustalony rozmiar, jest konwertowany do formatu SSTable i zapisywany do GoogleFS cel: zmniejsza zużycie pamięci, zmniejsza ilość danych, które trzeba odczytać z logu podczas odtwarzania po awarii efekt: powstaje nowy plik SSTable Scalanie (ang. merging compaction) odczytuje się zawartość kilku plików SSTable oraz bufora z pamięci i tworzy nowy plik SSTable cel: zmniejszenie liczby plików SSTable Większe scalanie (ang. major compaction) scalanie polegające na tym, że wszystkie SSTablice są przepisywane do jednej dane usunięte ostatecznie znikają z systemu 21

Grupy lokalności Ulepszenia Kompresja Buforowanie dla poprawienia wydajności odczytów Filtry Blooma Implementacja logu Przyspieszenie odtwarzania tabletu Zbadanie odporności na zmiany 22

Wydajność Klaster Bigtable z N serwerami tabletów Serwery tabletów skonfigurowano do użycia 1 GB pamięci i zapisu do komórek GoogleFS składających się z 1786 maszyn z 400 dyskami GD IDE N maszyn klienckich generowało obciążenie BigTable użyte w tych testach. Każda maszyna ma dwurdzeniowy procesor Opteron 2GH, dość pamięci do przechowania zbioru roboczego wszystkich wykonywanych procesów i jedno połączenie Ethernetowe Zarządca, serwery tabletów, testowi klienci i serwery GoogleFS wykonują się na tym samym zbiorze maszyn R to liczba kluczy wierszy Bigtable biorących udział w teście R dobrano tak, że każdy benchmark odczytywał lub zapisywał około 1 GB danych z serwera tabletu 23

Wydajność Rate per tablet server Aggregate rate Liczba 1000-bajtowych wartości czytanych/zapisywanych na sekundę 24

Atrybuty tabel stosowanych w praktyce 25

Wnioski Dlaczego zawsze relacyjna baza danych? Projekt sprawdził się w praktyce, gdyż Bigtable jest używane przez wiele produktów Google a Opłaca się czasem zbudować własne rozwiązanie problemu przechowywania danych 26