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 - supo...
Sisteme similare
Boxwood
dezvoltat de Microsoft
asemanator cu Bigtable
construirea sistemelor de fisiere sau bazelor de da...
Descrierea sistemului
Modelul de date
Bigtable – map distribuit, multidimensional si sortat.
Mapeaza datele folosind 3 val...
Descrierea sistemului
Liniile
Scrierile si citirile dintr-o singura linie sunt atomice.
Mentine datele in ordine lexicogra...
Descrierea sistemului
Coloanele
Sunt grupate in “familii de coloane”, toate datele dintr-o
familie fiind de acelasi tip.
I...
Descrierea sistemului
Etichetele de timp
Fiecare celula poate avea mai multe versiuni ale datelor
Pot fi asignate automat ...
Descrierea sistemului
Bigtable API
Functii pentru crearea/stergerea tabelelor si familiilor de
coloane
Clientii pot citi/s...
Descrierea sistemului
Bigtable API
Functii pentru crearea/stergerea tabelelor si familiilor de
coloane
Clientii pot citi/s...
Descrierea sistemului
Implementare
Contine - o librarie cu legatura la fiecare client, un server
master si multe servere d...
Descrierea sistemului
Implementare
Fisierul e spart in mai multe tablete – optimizate pentru GFS

Datele recente - stocate...
Descrierea sistemului
Optimizari
Gruparea mai multor familii de coloane in “grupuri de localizare”
Metadatele si continutu...
Evaluarea performantelor
Servere de tablete cu 1 GB memorie
HDD – 1786 masini cu 2 x 400 GB
N servere de tablete si N clie...
Evaluarea performantelor
Sistemul scaleaza foarte bine, insa performantele nu
cresc liniar
Performanta per-server scade cu...
Concluzii
Bigtable – lansat in aprilie 2005. In august 2006 , 60+
proiecte Google foloseau Bigtable.
Interfata neobisnuita...
Bibliografie
Bigtable: A Distributed Storage System for Structured
Data by Fay Chang, Jeffrey Dean, Sanjay Ghemawat,
Wilso...
Upcoming SlideShare
Loading in …5
×

Bigtable - sistem distribuit de stocare a datelor

329 views
196 views

Published on

This presentation is written in Romanian language. It is based on the paper mentioned in the Bibliography chapter.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
329
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Bigtable - sistem distribuit de stocare a datelor

  1. 1. Bigtable A distributed storage system for structured data Autor: Remus Sinorchian
  2. 2. Agenda Prezentare generala Sisteme similare Descrierea sistemului Evaluarea performantelor Concluzii
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×