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

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

Bigtable Rozproszony system pamięci

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

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

Systemy plików FAT, FAT32, NTFS

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

Podręcznik administratora systemu

Zarządzanie rolami jakie może pełnić serwer System prosi o wybór roli jaklą ma spełniać serwer.

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

Administracja bazami danych

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

Architektura komputerów

Systemy operacyjne. Zarządzanie dostępem do zasobów przy wykorzystaniu grup

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Administracja i programowanie pod Microsoft SQL Server 2000

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

Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Tworzenie partycji i dysków logicznych

16MB - 2GB 2MB - 128MB

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

Optymalizacja poleceń SQL Metody dostępu do danych

Google File System II. Marek Dzikiewicz

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net

(aktualizacja 30 kwietnia 2018)

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna&

Sektor. Systemy Operacyjne

Pełna specyfikacja usługi Kreator WWW

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

KONFIGURACJA INTERFEJSU SIECIOWEGO

Bazy danych. Andrzej Łachwa, UJ, /15

Tabela wewnętrzna - definicja

Praca w sieci równorzędnej

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

Wykład XII. optymalizacja w relacyjnych bazach danych

Systemy macierzowe. www. qsantechnology. com

WPROWADZENIE DO BAZ DANYCH

NoSQL & relax with CouchDB

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

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

Praca w sieci z serwerem

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Przed restartowaniem routera odłącz wszystkie urządzenia podłączone pod porty USB.

TSMBOX. Backup Appliance Build for Recovery Speed. Przemysław Jagoda. Zbigniew Parys

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

Jakub Pilecki Szymon Wojciechowski

Wykład 2. Temat: (Nie)zawodność sprzętu komputerowego. Politechnika Gdańska, Inżynieria Biomedyczna. Przedmiot:

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

pasja-informatyki.pl

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

2018/10/16 20:47 1/5 3 Ekrany

Łatwe w obsłudze narzędzie ochrony danych w środowiskach wirtualnych STORWARE.EU

Comarch BI Point Standalone ulotka. Wersja: 6.2

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

Wirtualizacja Hyper-V: sposoby wykorzystania i najnowsze wyniki badań

Referat pracy dyplomowej

Ustalanie dostępu do plików - Windows XP Home/Professional

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

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

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

System plików JFS. 1 Najważniejsze informacje. Mateusz Zakrzewski. 18 stycznia JFS to skrót od Journalled File System.

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Fizyczna organizacja danych w bazie danych

Przed restartowaniem routera odłącz wszystkie urządzenia podłączone pod porty USB.

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

dr inż. Jarosław Forenc

27/13 ZAŁĄCZNIK NR 4 DO SIWZ. 1 Serwery przetwarzania danych. 1.1 Serwery. dostawa, rozmieszczenie i zainstalowanie 2. serwerów przetwarzania danych.

Inżynieria oprogramowania- Grupa dra inż. Leszka Grocholskiego II UWr 2009/2010. Aleksandra Kloc, Adam Grycner, Mateusz Łyczek. Wasza-fota.

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Fizyczna struktura bazy danych w SQL Serwerze

Indeksowanie w bazach danych

dr inż. Jarosław Forenc

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

William R. Stanek. Vademecum administratora. Microsoft. SQL Server Przekład: Krzysztof Szkudlarek

INSTRUKCJA OBSŁUGI DLA SIECI

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

Haszowanie (adresowanie rozpraszające, mieszające)

Najważniejsze zalety. Skuteczna pamięć NAS w domu, domowych biurach oraz małych i średnich przedsiębiorstwach

Wykład 4. Tablice. Pliki

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

NASI SPONSORZY I PARTNERZY

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

DHL CAS ORACLE Wymagania oraz instalacja

LISTA KONTROLI DOSTĘPU

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

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Baza danych. Modele danych

Wprowadzenie do Hurtowni Danych

Przykładowe B+ drzewo

Bazy danych NoSQL. wprowadzenie. Szymon Francuzik Poznań,

Architektura rozproszonych magazynów danych

Zadanie nr 4.5: Oprogramowanie bazodanowe. Lp. Zwartość karty Opis 1 Specyfikacja techniczna / funkcjonalna przedmiotu zamówienia

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

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Warszawa, dnia r.

Transkrypt:

Seminarium Bazy Danych I BigTable Piotr Świgoń Uniwersytet Warszawski

Rzędy wielkości Miliardy URL'i i linków, wiele wersji stron Setki milionów użytkowników Tysiące zapytań na sekundę 2.7 3.3 GB rozmiar angielskiej wikipedii (tekst) 100+ TB rozmiar zdjęć satelitarnych w Google Earth (2005) 5.625 PB szacowany rozmiar przestrzeni dyskowej Google'a (2004) 200 PB wszystkie wydrukowane dane świata

Dlaczego nie komercyjna BD Skala za duża dla większości rozwiązań Nawet jeśli by nie była, koszty wdrażania w kolejnych projektach byłyby bardzo duże: Wydajny system zbudowany wewnętrznie może być udostępniony jako usługa Komercyjne rozwiązania nie współpracowały by dobrze z infrastrukturą Google'a Niskopoziomowe optymalizacje pomagają znacząco poprawić wydajność Fun and challenging to build large scale systems ;)

Cele Chcemy żeby asynchroniczne procesy na bieżąco uaktualniały różne fragmenty danych Wsparcie dla: Wydajne I/O (miliony operacji na sekundę) Wydajne przeglądanie całości lub podzbioru danych Częsta potrzeba sprawdzania zmiany danych w czasie np. zmiany na stronach www

BigTable Rozproszona wielowymiarowa mapa Wysoka stabilność Skalowalna: Tysiące serwerów Terabajty danych w pamięci Petabajty danych na dyskach Miliony operacji I/O na sekundę Samo zarządzająca się: Serwery mogą być dodawane/usuwane dynamicznie Serwery same równoważą obciążenie

Użyte Technologie Google File System (GFS) : Niezawodne przechowywanie danych Lock Service (Chubby) : Odpowiada za wybór serwera głównego MapReduce : Najczęściej używany do operacji I/O na BT

Model Danych Rozproszona wielowymiarowa mapa: (wiersz, kolumna, timestamp) zawartość komórki wiersze kolumny content www.cnn.com <!DOCTYPE...

Model Danych Rozproszona wielowymiarowa mapa: (wiersz, kolumna, timestamp) zawartość komórki wiersze kolumny content www.cnn.com <!DOCTYPE... <!DOCTYPE... <!DOCTYPE... T1 T2 T3 timestamp

Wiersze Identyfikator wiersza jest dowolny stringiem Dostęp do wierszy jest atomowy Tworzenie wierszy jest automatyczne przy zapisywaniu danych jak w mapie Wiersze są posortowane leksykograficznie Oznacza to że wiersze o zbliżonym kluczu są na jednej lub małej liczbie maszyn

Kolumny Kolumny posiadają dwu poziomową strukturę nazw Rodzina:opcjonalny_kwalifikator Do rodziny jest przypisany typ danych Kwalifikator daje możliwość posiadania nieograniczonej liczby kolumn dodatkowy poziom indeksowania

Timestamp Używany aby zapisywać różne wersje danych w tabeli Domyślnie przy zapisie używany jest aktualny timestamp, ale można ustawić dowolny Opcje przeszukiwania: Zwróć K najświeższych wartości Zwróć wszystkie wartości w przedziale (lub wszystkie w ogóle) Rodziny mogą być dodatkowo oznaczone atrybutami: Przechowuj ostatnie K wartości Przechowuj wartości które są młodsze niż K sekund

Bloki (Tablets) Duże tablice są dzielone na bloki Bloki przechowują ciągły podzbiór wierszy Właściwy rozmiar bloku to 100 200 MB Pojedynczy serwer BT jest odpowiedzialny za ~100 bloków Szybka obsługa awarii 100 maszyn przejmuje po 1 bloku od uszkodzonej maszyny Bloki migrują między maszynami w celu równoważenia obciążenia

Architektura Chubby Master Server (standby) Master Server Tablet Server Tablet Server Tablet Server GFS Chunk Server GFS Chunk Server GFS

Serwery Bloków Tablet Servers Odpowiedzialne za żądania zapisu/odczytu od klientów. Dane nie przechodzą przez serwer główny Jednemu serwerowi może być przypisane kilkaset bloków Nowe serwery bloków mogą być z łatwością dołączane/odłączane do systemu

Serwer Główny Master Server Przydziela bloki do serwerów bloków Wykrywa i obsługuje dołączanie i odłączenie serwerów bloków Wykrywa i obsługuje problemy z maszynami Rozprasza obciążenie między serwery

Lokalizowanie Bloków Bloki migrują między serwerami, jak więc znaleźć maszynę, która obsługuje zadany wiersz? Trzeba znaleźć blok, którego przedział wierszy pokrywa szukany wiersz Jedno podejście: Serwer główny mógłby być za to odpowiedzialny Na pewno okazałby się wąskim gardłem Zamiast tego: Utrzymywać w BT specjalną tabelę zawierającą informacje o lokalizacji bloków

Lokalizowanie Bloków Podejście użyte w BT trzy poziomowa hierarchia wyszukiwania Lokalizacja bloku to ip:port serwera na którym blok się znajduje 1 poziom: Znajdujący się w lock service wskaźnik do lokalizacji META0 2 poziom (META0): Jeden wiersz dla każdego bloku tablicy META1 3 poziom (META1): Jeden wiersz dla każdego bloku w systemie Tablica META1 Wskaźnik Do META0 Tablica META0 Poszukiwany blok

Lokalizowanie Bloków Podejście użyte w BT trzy poziomowa hierarchia wyszukiwania Lokalizacja bloku to ip:port serwera na którym blok się znajduje 1 poziom: Znajdujący się w lock service wskaźnik do lokalizacji META0 2 poziom (META0): Jeden wiersz dla każdego bloku tablicy META1 3 poziom (META1): Jeden wiersz dla każdego bloku w systemie Agresywny prefetching i caching Większość zapytań idzie od razu do dobrej maszyny Tablica META1 Wskaźnik Do META0 Tablica META0 Poszukiwany blok

Blok Organizacja Danych Bufor do zapisywania trzymany w pamięci Write only log na GFS Odczyt Zapis SSTable Na GFS SSTable Na GFS SSTable Na GFS SSTable Na GFS SSTable: Niezmienna posortowana mapa String String leżąca na dysku. Klucze w tej mapie to krotki <wiersz, kolumna, timestamp>

Blok Organizacja Danych Stan bloku reprezentowany jest przez zbiór niezmienny plików SSTable oraz ogona zalogowanych zmian trzymanych w pamięci. Małe przepakowanie Gdy wyczerpie się limit pamięci, wybieramy plik SSTable dla którego zarejestrowano najwięcej zmian, i go przepisujemy. Duże przepakowanie Okresowe przepisywanie wszystkich plików SSTable w ramach bloku, w celu przywrócenia im pożądanych rozmiarów oraz zwolnienia miejsca usuniętych wierszy.

Grupy Dostępu Rodziny kolumn mogą mieć wspólną grupę dostępu (ang. Locality Group) Używane aby optymalizować reprezentację danych na dysku Rodziny kolumn z tą samą grupą dostępu są trzymane razem w plikach SSTable Gdy każda kolumna jest w osobnej grupie dostępu mamy do czynienia z kolumnowo zorientowaną bazą danych Gdy wszystkie kolumny są w jednej grupie dostępu mamy do czynienia z wierszowo zorientowaną bazą danych Warto oddzielać dane które nie będą odczytywane razem

Kompresja Klienci mogą zdefiniować czy i jak dana grupa dostępu (plik SSTable) jest kompresowana. Każdy plik jest kompresowany osobno (powoduje to gorszy współczynnik kompresji, ale odczyty mogą zostać dokonane bez dekompresji całego bloku) Algorytm kompresji jest pomyślany, aby był po pierwsze szybki, a dopiero po drugie wydajny. kompresja dokonuje się z prędkością 100 200 MB/s, a dekompresja 400 1000 MB/s.

Ciekawostki Istnieje open source'owa implementacja zarówno BigTable jak i MapReduce W Google istnieje nakładka na BigTable która zapewnia ograniczoną tranzakcyjność i obsługuje join'y Niektóre projekty w Google używają MySQL (+ Hibernate) do danych które z założenia nie muszą być tak efektywnie obsługiwane

Q & A