SlideShare une entreprise Scribd logo
1  sur  17
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

Contenu connexe

En vedette

Prezentare Etapele 4+5
Prezentare Etapele 4+5Prezentare Etapele 4+5
Prezentare Etapele 4+5
guest5d8981aa
 
Sistem distribuit pentru optimizarea simularilor
Sistem distribuit pentru optimizarea simularilorSistem distribuit pentru optimizarea simularilor
Sistem distribuit pentru optimizarea simularilor
Alin Vulparu
 
Andrei Marinescu - OBF Brasov
Andrei Marinescu - OBF BrasovAndrei Marinescu - OBF Brasov
Andrei Marinescu - OBF Brasov
Claudiu Gamulescu
 
Indrumar laborator
Indrumar laboratorIndrumar laborator
Indrumar laborator
seyki
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
ELENA NITA
 

En vedette (19)

2014_Prezentare_PhD_AB_v03
2014_Prezentare_PhD_AB_v032014_Prezentare_PhD_AB_v03
2014_Prezentare_PhD_AB_v03
 
Prezentare Etapele 4+5
Prezentare Etapele 4+5Prezentare Etapele 4+5
Prezentare Etapele 4+5
 
Sistem distribuit pentru optimizarea simularilor
Sistem distribuit pentru optimizarea simularilorSistem distribuit pentru optimizarea simularilor
Sistem distribuit pentru optimizarea simularilor
 
Web in 3 Dimensiuni (Web in 3D)
Web in 3 Dimensiuni (Web in 3D)Web in 3 Dimensiuni (Web in 3D)
Web in 3 Dimensiuni (Web in 3D)
 
Era informationala
Era informationalaEra informationala
Era informationala
 
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansambluCLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
CLIW 2015-2016 (5/13) Vizualizarea datelor – o privire de ansamblu
 
Informe final de servicio comunitario pdf
Informe final de servicio comunitario pdfInforme final de servicio comunitario pdf
Informe final de servicio comunitario pdf
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
Presentation2
Presentation2Presentation2
Presentation2
 
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientCLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
 
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
Dezvoltarea aplicațiilor Web (9/12): Specificarea ontologiilor folosind limba...
 
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
 
Arad - Introducere in resurse educationale deschise
Arad - Introducere in resurse educationale deschiseArad - Introducere in resurse educationale deschise
Arad - Introducere in resurse educationale deschise
 
Game computing: tehnici AI
Game computing: tehnici AIGame computing: tehnici AI
Game computing: tehnici AI
 
Andrei Marinescu - OBF Brasov
Andrei Marinescu - OBF BrasovAndrei Marinescu - OBF Brasov
Andrei Marinescu - OBF Brasov
 
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
 
Indrumar laborator
Indrumar laboratorIndrumar laborator
Indrumar laborator
 
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScriptCLIW 2015-2016 (7/13) Limbajul de programare JavaScript
CLIW 2015-2016 (7/13) Limbajul de programare JavaScript
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
 

Similaire à Bigtable - sistem distribuit de stocare a datelor (14)

Stroia_Laurentiu
Stroia_LaurentiuStroia_Laurentiu
Stroia_Laurentiu
 
Baze de date NoSQL
Baze de date NoSQLBaze de date NoSQL
Baze de date NoSQL
 
Web Storage Performance
Web Storage PerformanceWeb Storage Performance
Web Storage Performance
 
Baza de date
Baza de dateBaza de date
Baza de date
 
Baze de date Access
Baze de date AccessBaze de date Access
Baze de date Access
 
Introducere baza de-date
Introducere baza de-dateIntroducere baza de-date
Introducere baza de-date
 
BAZE_DE_DATE_SQL_de_baza.pdf
BAZE_DE_DATE_SQL_de_baza.pdfBAZE_DE_DATE_SQL_de_baza.pdf
BAZE_DE_DATE_SQL_de_baza.pdf
 
NoSql
NoSqlNoSql
NoSql
 
27ian2011 trend
27ian2011   trend27ian2011   trend
27ian2011 trend
 
Bd curs1 - Introducere
Bd curs1 - IntroducereBd curs1 - Introducere
Bd curs1 - Introducere
 
Prezentare IOC - etapa 3
Prezentare IOC - etapa 3Prezentare IOC - etapa 3
Prezentare IOC - etapa 3
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Nosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra DianaNosql Movement Budai Steliana Gorea Alexandra Diana
Nosql Movement Budai Steliana Gorea Alexandra Diana
 
Prezentare adrianonofrei
Prezentare adrianonofreiPrezentare adrianonofrei
Prezentare adrianonofrei
 

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