Bigtable: ¡A ¡Distributed ¡Storage ¡ System ¡for ¡Structured ¡Data ¡ ¡ ¡ Fay ¡Chang, ¡Jeffrey ¡Dean, ¡Sanjay ¡Ghemawat, ¡ Wilson ¡C. ¡Hsieh, ¡Deborah ¡A. ¡Wallach ¡Mike ¡ Burrows, ¡Tushar ¡Chandra, ¡Andrew ¡Fikes, ¡Robert ¡ E. ¡Gruber ¡ ¡ OSDI ¡2006 ¡ ¡ Few ¡slides ¡are ¡taken ¡from ¡Jeff ¡Dean ¡talk ¡@ ¡UoW ¡
Problem ¡ • Google’s ¡main ¡moQvaQon ¡for ¡developing ¡ BigTable ¡is ¡: ¡ – Large ¡Scale ¡Data ¡ ¡ • Billions ¡of ¡URL’s ¡ • Hundreds ¡of ¡millions ¡of ¡users ¡ • 100TB+ ¡of ¡satellite ¡image ¡data ¡ – ¡Need ¡flexible ¡and ¡high ¡performance ¡soluQon ¡to ¡ all ¡Google ¡products ¡like ¡Google ¡Earth ¡, ¡Google ¡ finance ¡etc. ¡which ¡is ¡not ¡possible ¡by ¡using ¡ commercial ¡DBs. ¡
Data ¡model ¡ • “a ¡sparse ¡ ¡, ¡distributed ¡, ¡persistent ¡mulQ ¡ dimensional ¡sorted ¡map” ¡ (row: ¡string ¡, ¡column ¡: ¡string ¡, ¡Qme ¡: ¡int64) ¡-‑> ¡string ¡
Rows/Columns ¡ ROWS ¡ Data ¡is ¡sorted ¡lexicographically ¡by ¡row ¡key. ¡ • Row ¡key ¡is ¡broken ¡into ¡ tablets ¡. ¡ • • A ¡tablet ¡is ¡a ¡unit ¡of ¡distribuQon ¡and ¡load ¡balancing. ¡ COLUMNS ¡ Columns ¡names ¡of ¡the ¡form: ¡ ¡ • family ¡-‑> ¡qualifier ¡ – All ¡columns ¡in ¡a ¡family ¡of ¡typically ¡of ¡same ¡type. ¡ • TIMESTAMP ¡ Each ¡cell ¡can ¡be ¡versioned ¡ • Each ¡new ¡version ¡increments ¡the ¡Qmestamp. ¡ • Policies: ¡ • – “Keep ¡only ¡latest ¡ n ¡versions” ¡ – “Keep ¡only ¡versions ¡since ¡Qmestamp ¡ t ¡ ” ¡ ¡
LocaQng ¡Tablets ¡ Approach-‑1 ¡: ¡Use ¡Bigtable ¡master. ¡ ¡ Approach-‑2 ¡: ¡ 1. Store ¡special ¡tables ¡containing ¡tablet ¡ locaQon ¡info ¡in ¡Bigtable ¡cell. ¡ 2. Three ¡level ¡hierarchy ¡lookup ¡scheme ¡ for ¡tablets. ¡ ¡
Reading/WriQng ¡ Minor ¡CompacQon ¡: ¡write ¡memtable ¡buffer ¡to ¡ a ¡new ¡SSTable ¡ ¡ Recent ¡sequence ¡of ¡ updates ¡in ¡memtable ¡ Major ¡CompacQon: ¡ rewrite ¡all ¡SSTable ¡ into ¡one ¡SSTable ¡ and ¡clean ¡deletes ¡
Performance ¡
Takeaway ¡ • Distributed ¡mulQ-‑level ¡map ¡ – with ¡an ¡interesQng ¡data ¡model ¡ • Fault ¡tolerant ¡, ¡persistent ¡ • ¡Scalable ¡ – Thousands ¡of ¡servers ¡ – Terabytes ¡of ¡in-‑memory ¡data ¡ – Petabytes ¡of ¡disk-‑based ¡data ¡ – Millions ¡of ¡read/writes ¡per ¡second ¡, ¡efficient ¡scans ¡ • Self ¡managing ¡ – Servers ¡can ¡be ¡added ¡and ¡removed ¡dynamically ¡ – Servers ¡adjust ¡to ¡load ¡imbalance ¡
Recommend
More recommend