際際滷

際際滷Share a Scribd company logo
Bigtable
A distributed storage system for structured data

Autor: Remus Sinorchian
Agenda

Prezentare generala
Sisteme similare
Descrierea sistemului
Evaluarea performantelor
Concluzii
Prezentare generala
Sistem distribuit de stocare si management al datelor,
dezvoltat de catre Google
Scop principal - suportarea aplicatiilor client cu stocarea unui
volum mare de date
Proiectat sa scaleze la scara  de ordinul petabytes
Model de date non-relational
Este folosit de multe aplicatii dezvoltate de Google: Google
Earth, Google Maps, Google Analytics etc.
Foloseste tehnologii Google: GFS, Chubby, SSTable
Sisteme similare
Boxwood
dezvoltat de Microsoft
asemanator cu Bigtable
construirea sistemelor de fisiere sau bazelor de date
Real application cluster
dezvoltat de Oracle
foloseste sisteme asemanatoare GFS si Chubby
model relational cu tranzactii
DB2 Parallel
dezvoltat de IBM
similar Bigtable foloseste modelul share nothing
model relational cu tranzactii
C-Store
model relational; foloseste modelul share nothing
asemanator cu Bigtable
Descrierea sistemului
Modelul de date
Bigtable  map distribuit, multidimensional si sortat.
Mapeaza datele folosind 3 valori: linia, coloana si eticheta
de timp.
(row:string, column:string, time:int64)  string
Descrierea sistemului
Liniile
Scrierile si citirile dintr-o singura linie sunt atomice.
Mentine datele in ordine lexicografica dupa cheile liniilor.
Numarul de linii dintr-un tabel este partitionat dinamic si
fiecare partitie se numeste tableta.
Folosirea tabletelor ofera o buna localizare a datelor.
Exemplu  Intr-un tabel ce stocheaza informatii despre pagini web
datele paginilor din acelasi domeniu sunt tinute unele langa altele.
Descrierea sistemului
Coloanele
Sunt grupate in familii de coloane, toate datele dintr-o
familie fiind de acelasi tip.
Inainte de a stoca date intr-o coloana trebuie creata familia
de coloane.
Numarul de familii dintr-un tabel trebuie sa fie mic(cel mult
cateva sute), dar numarul de coloane nu conteaza.
O cheie de coloana este de forma familie:calificator
Exemple: language:id sau anchor:URL
Descrierea sistemului
Etichetele de timp
Fiecare celula poate avea mai multe versiuni ale datelor
Pot fi asignate automat de sistem sau explicit de clienti
Versiunile diferite sunt tinute in ordine descrescatoare
Bigtable pune la dispozitie un sistem ce permite
specificarea numarului de versiuni care trebuie retinut
(restul de versiuni mai vechi vor fi sterse)
Exemple: sunt pastrate ultimele 3 versiuni ale unei pagini web
Descrierea sistemului
Bigtable API
Functii pentru crearea/stergerea tabelelor si familiilor de
coloane
Clientii pot citi/scrie/sterge date din tabel.
Permite executarea atomica a secventei citeste-modificascrie asupra datelor dintr-o singura linie
Permite executarea de script-uri furnizate de clienti
(script-utile sunt scrise in Sawzall)
Permite folosirea Bigtable cu MapReduce

Scrierea intr-o celula

Citirea unei linii
Descrierea sistemului
Bigtable API
Functii pentru crearea/stergerea tabelelor si familiilor de
coloane
Clientii pot citi/scrie/sterge date din tabel.
Permite executarea atomica a secventei citeste-modificascrie asupra datelor dintr-o singura linie
Permite executarea de script-uri furnizate de clienti
(script-utile sunt scrise in Sawzall)
Permite folosirea Bigtable cu framework`ul MapReduce

Scrierea intr-o celula

Citirea unei linii
Descrierea sistemului
Implementare
Contine - o librarie cu legatura la fiecare client, un server
master si multe servere de tablete
Masterul:
- asigneaza tablete serverelor de tablete
- detecteaza adaugarea/expirarea unui server de tablete - balansarea incarcarii pe serverele de tablete
- se ocupa de schimbarile schemei de tabel
- face garbage collect in GFS
Serverul de tablete se ocupa de:
- mentinerea evidentei tabletelor
- citiri/scrieri in tablete
- partitionarea tabletelor
Clientii comunica direct cu serverele de tablete
Descrierea sistemului
Implementare
Fisierul e spart in mai multe tablete  optimizate pentru GFS

Datele recente - stocate in memorie - buffer numit memtable
Datele mai vechi  stocate pe disk ca fisiere SSTable
Descrierea sistemului
Optimizari
Gruparea mai multor familii de coloane in grupuri de localizare
Metadatele si continutul paginilor web sunt tinute in grupuri
diferite
Compresia datelor in 2 pasi
Cache cu 2 nivele:
scan cache  stocheaza date returnate de interfata SSTable
catre server-ul de tablete.
Block cache  stocheaza block-uri SSTable citite din GFS
Evaluarea performantelor
Servere de tablete cu 1 GB memorie
HDD  1786 masini cu 2 x 400 GB
N servere de tablete si N clienti  N variabil
Evaluarea performantelor
Sistemul scaleaza foarte bine, insa performantele nu
cresc liniar
Performanta per-server scade cu cat N creste
Balansarea imperfecta a incarcarii
Concluzii
Bigtable  lansat in aprilie 2005. In august 2006 , 60+
proiecte Google foloseau Bigtable.
Interfata neobisnuita si greu de inteles pentru utilizatorii noi.
Bigtable este folosit in proiectele Google  plus de
flexibilitate
Working progress - Bigtable as a service.
Bibliografie
Bigtable: A Distributed Storage System for Structured
Data by Fay Chang, Jeffrey Dean, Sanjay Ghemawat,
Wilson C. Hsieh, Deborah A. Wallach
Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E.
Gruber

More Related Content

Bigtable - sistem distribuit de stocare a datelor

  • 1. Bigtable A distributed storage system for structured data Autor: Remus Sinorchian
  • 2. Agenda Prezentare generala Sisteme similare Descrierea sistemului Evaluarea performantelor Concluzii
  • 3. Prezentare generala Sistem distribuit de stocare si management al datelor, dezvoltat de catre Google Scop principal - suportarea aplicatiilor client cu stocarea unui volum mare de date Proiectat sa scaleze la scara de ordinul petabytes Model de date non-relational Este folosit de multe aplicatii dezvoltate de Google: Google Earth, Google Maps, Google Analytics etc. Foloseste tehnologii Google: GFS, Chubby, SSTable
  • 4. Sisteme similare Boxwood dezvoltat de Microsoft asemanator cu Bigtable construirea sistemelor de fisiere sau bazelor de date Real application cluster dezvoltat de Oracle foloseste sisteme asemanatoare GFS si Chubby model relational cu tranzactii DB2 Parallel dezvoltat de IBM similar Bigtable foloseste modelul share nothing model relational cu tranzactii C-Store model relational; foloseste modelul share nothing asemanator cu Bigtable
  • 5. Descrierea sistemului Modelul de date Bigtable map distribuit, multidimensional si sortat. Mapeaza datele folosind 3 valori: linia, coloana si eticheta de timp. (row:string, column:string, time:int64) string
  • 6. Descrierea sistemului Liniile Scrierile si citirile dintr-o singura linie sunt atomice. Mentine datele in ordine lexicografica dupa cheile liniilor. Numarul de linii dintr-un tabel este partitionat dinamic si fiecare partitie se numeste tableta. Folosirea tabletelor ofera o buna localizare a datelor. Exemplu Intr-un tabel ce stocheaza informatii despre pagini web datele paginilor din acelasi domeniu sunt tinute unele langa altele.
  • 7. Descrierea sistemului Coloanele Sunt grupate in familii de coloane, toate datele dintr-o familie fiind de acelasi tip. Inainte de a stoca date intr-o coloana trebuie creata familia de coloane. Numarul de familii dintr-un tabel trebuie sa fie mic(cel mult cateva sute), dar numarul de coloane nu conteaza. O cheie de coloana este de forma familie:calificator Exemple: language:id sau anchor:URL
  • 8. Descrierea sistemului Etichetele de timp Fiecare celula poate avea mai multe versiuni ale datelor Pot fi asignate automat de sistem sau explicit de clienti Versiunile diferite sunt tinute in ordine descrescatoare Bigtable pune la dispozitie un sistem ce permite specificarea numarului de versiuni care trebuie retinut (restul de versiuni mai vechi vor fi sterse) Exemple: sunt pastrate ultimele 3 versiuni ale unei pagini web
  • 9. Descrierea sistemului Bigtable API Functii pentru crearea/stergerea tabelelor si familiilor de coloane Clientii pot citi/scrie/sterge date din tabel. Permite executarea atomica a secventei citeste-modificascrie asupra datelor dintr-o singura linie Permite executarea de script-uri furnizate de clienti (script-utile sunt scrise in Sawzall) Permite folosirea Bigtable cu MapReduce Scrierea intr-o celula Citirea unei linii
  • 10. Descrierea sistemului Bigtable API Functii pentru crearea/stergerea tabelelor si familiilor de coloane Clientii pot citi/scrie/sterge date din tabel. Permite executarea atomica a secventei citeste-modificascrie asupra datelor dintr-o singura linie Permite executarea de script-uri furnizate de clienti (script-utile sunt scrise in Sawzall) Permite folosirea Bigtable cu framework`ul MapReduce Scrierea intr-o celula Citirea unei linii
  • 11. Descrierea sistemului Implementare Contine - o librarie cu legatura la fiecare client, un server master si multe servere de tablete Masterul: - asigneaza tablete serverelor de tablete - detecteaza adaugarea/expirarea unui server de tablete - balansarea incarcarii pe serverele de tablete - se ocupa de schimbarile schemei de tabel - face garbage collect in GFS Serverul de tablete se ocupa de: - mentinerea evidentei tabletelor - citiri/scrieri in tablete - partitionarea tabletelor Clientii comunica direct cu serverele de tablete
  • 12. Descrierea sistemului Implementare Fisierul e spart in mai multe tablete optimizate pentru GFS Datele recente - stocate in memorie - buffer numit memtable Datele mai vechi stocate pe disk ca fisiere SSTable
  • 13. Descrierea sistemului Optimizari Gruparea mai multor familii de coloane in grupuri de localizare Metadatele si continutul paginilor web sunt tinute in grupuri diferite Compresia datelor in 2 pasi Cache cu 2 nivele: scan cache stocheaza date returnate de interfata SSTable catre server-ul de tablete. Block cache stocheaza block-uri SSTable citite din GFS
  • 14. Evaluarea performantelor Servere de tablete cu 1 GB memorie HDD 1786 masini cu 2 x 400 GB N servere de tablete si N clienti N variabil
  • 15. Evaluarea performantelor Sistemul scaleaza foarte bine, insa performantele nu cresc liniar Performanta per-server scade cu cat N creste Balansarea imperfecta a incarcarii
  • 16. Concluzii Bigtable lansat in aprilie 2005. In august 2006 , 60+ proiecte Google foloseau Bigtable. Interfata neobisnuita si greu de inteles pentru utilizatorii noi. Bigtable este folosit in proiectele Google plus de flexibilitate Working progress - Bigtable as a service.
  • 17. Bibliografie Bigtable: A Distributed Storage System for Structured Data by Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber