Mu Li [email protected] October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799...

40
Bigtable 15799 - Advanced Topics in DB Mu Li [email protected] October 2, 2013 stolen slides from Jeff Dean (a lot) and Edward Yoon (one)

Transcript of Mu Li [email protected] October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799...

Page 1: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Bigtable15799 - Advanced Topics in DB

Mu [email protected]

October 2, 2013

stolen slides from Jeff Dean (a lot) and Edward Yoon (one)

Page 2: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 3: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 4: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Comparing with Dynamo

I Data Model: Table vs. Key-ValueI Consistency: Atomic row mutation vs. record-at-a-time and

eventual consistencyI How to run: Centralized management vs. each application run

its own instanceI Access control vs. NoI Focus: Easy to use vs. availability

Page 5: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Outline

Topics will be covered today:

I Data Model and APII System OverviewsI Implementation of Tablet ServersI Current State of Bigtable

Things are ignored

I Refinement to improved the performanceI Experiments

Page 6: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 7: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 8: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 9: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 10: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 11: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 12: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 13: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

API

I Atomic single row mutation

RowMutation r1(T, "com.cnn.www");

r1.Set("anchor:www.c-span.org", "CNN");

r1.Delete("anchor:www.abc.com");

Operation op;

Apply (&op, &r1);

I scanning cells by rows, column, and timestamp

Scanner scanner(T);

ScanStream *stream;

stream = scanner.FetchColumnFamily("anchor");

stream ->SetReturnAllVersions ();

scanner.Lookup("com.cnn.www");

for (; !stream ->Done (); stream ->Next ()) {}

I server-side scripts: Sawzall

I integration with other products: Mapreduce, Pregel,Parameter Server, ....

Page 14: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 15: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 16: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 17: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 18: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 19: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 20: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 21: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 22: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 23: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 24: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 25: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 26: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 27: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 28: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 29: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 30: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 31: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Find Tablet Location

I Three-level hierarchy analogous to a B+ treeI 1st level: bootstrapped from chubbyI 2nd level: use META0 tablet to find the owner of appropriate

META 1 tabletsI 3rd level: META1 table holds locations of all other tablets

Page 32: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Tablet Assignment

I Master assigns tablets to tablet servers

Page 33: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Store a tablet

I A tablet is maintained by one tablet server.

I A tablet consists of serveral SSTable blocks with an index tostore the first and last key of the block, and stored in GFS

index

SSTable64Kb

SSTable64Kb

SSTable64Kb

Page 34: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Tablet Serving

I Updates are stored in tablet log andI new ones in memtable (in memory)I old ones in SSTables

I For read, first check memtable, then SSTables

Page 35: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from

Compaction

minor compaction

I convert memtable into an new SSTable and write into diskI save memory

merging(major) compaction

I read several SSTable and memtable and merging into a few(exact one) SSTable

I save disk due to high compression rate, remove deleted entries

Page 36: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 37: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 38: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 39: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from
Page 40: Mu Li muli@cs.cmu.edu October 2, 2013pavlo/courses/fall2013/static/slides/bigtable.pdfBigtable 15799 - Advanced Topics in DB Mu Li muli@cs.cmu.edu October 2, 2013 stolen slides from