SlideShare a Scribd company logo
1 of 22
Presented by
Manuel Correa
BigTable: A Distributed StorageBigTable: A Distributed Storage
System for Structure DataSystem for Structure Data
Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach
Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber
Google, Inc.Google, Inc.
 Problem in RDBMS & NoSQL Databases
 What is BigTable?
 Data Model
 Implementation
 HBASE – Hadoop project
 Quick Demo
 Performance and Evaluations
 Real Applications
 Questions
AgendaAgenda
 RDBMS do not scale with Large Data Sets – petabytes
 Do not scale horizontally – Replication, and Clustering – RDBMS
were not designed to be distributed
 Schema are rigid
 Joins do not scale well
Problems in RDBMSProblems in RDBMS
 Non-Relational data storage
 No joins, one simple schema that accommodates large
datasets
 NoSQL Data Bases designed to be distributed
 NoSQL is not a replacement for RDBMS!!
 Examples:
– Document DB: Hbase (Hadoop)
– Object DB: MongoDB
– Graph DB: Neo4j
NoSQL Databases –NoSQL Databases – NNoo OOnlynly SQLSQL
Who's using NoSQL?Who's using NoSQL?
 BigTable is a distributed storage system for managing structure
data
 Designed by Google Inc. in 2006
 BigTable was designed to scale to petabytes of data in thousands of
machines
 BigTable has successfully provided a flexible, wide applicability,
scalability, high availability, and high-performance solution for all
Google products
What is BigTable?What is BigTable?

BigTable is sparse, distributed, persistent multidimensional
sorted Map

The map is index by row key, column key, timestamp. The value is an
array of bytes
BigTable Data ModelBigTable Data Model

Rows keys are arbitrary strings (up to 64KB)

Every single Read/Write operation over a row is Atomic

BigTable data is ordered lexicographically by row key

A table is dynamically partitioned in row ranges called TabletTablet

A Tablet is the basic unit of distribution and load balancing
BigTable Model - RowsBigTable Model - Rows

Columns keys are grouped together in a single unit called column families

A column family is the single unit of access control

All data stored in a column family are usually of the same type

A column family contains several column indexes

Access a column index: family:qualifier
BigTable Model – ColumnsBigTable Model – Columns

Each cell in BigTable can contain multiple versions of the same data

Each version is index with a timestamp

The timestamp is an 64-bit Integer

Different versions of a cell are store in decreasing order, so that the most
recent version can be read first

BigTable implements a Garbage Collector to remove unused versions (The
client can specify a expiration policy for each column family)
BigTable Model – TimestampsBigTable Model – Timestamps

Each cell in BigTable are index by timestamp
– Maintain different version of the same data
– The most recent version will be first. The order of the timestamp is decreasing
– The system implements garbage collector. This takes care of unused versions

Example: WebTable
– The contents family column of a Web page has different versions
BigTable Model – TimestampsBigTable Model – Timestamps
BigTable Model – Example: WebTableBigTable Model – Example: WebTable

Row Key is the URL in reverse

Pages in the same domain are group together in contiguous rows = TABLET

Anchor is a family column with two column indexes

Different versions (t3, t5, t6, t8, 9) are keep in family indexes
BigTable ImplementationBigTable Implementation

BigTable uses the distributed Google File System

MapReduce inputs/outputs can be store in BigTable

BigTable uses the Google SSTable file format to internally store the data

SSTable: provide a persistent, ordered immutable map from keys to values
– Internally SSTable contains a sequence of blocks (~64KB)
– SSTable contains a index at the end of the block
– A lookup can be perform with a single disk seek
– SSTable can loaded into memory, so the scans and lookups operation happens in
memory
BigTable ImplementationBigTable Implementation

BigTable relies in a high-available, persistent distributed Lock
service called Chubby

The Chubby services consist in five active replicas. One of them is the
Master. Paxos algorithm is used to keep the replicas in sync

Chubby provides a namespace that consist in Directories/Files. Which can
be used as a Lock. Each Read/Write is atomic

BigTable uses Chubby to:
– To ensure that there is at most one Master node active at any time
– To store the bootstrap location of BigTable data
– To discover Tablet servers and finalize Tablet server deaths
– To Store BigTable schema information

Three Major Components:
– Master Server
• Assigns Tablet to Tablets servers
• Handles schema changes: Tablet and column families creation
– Tablet Servers:
• Manage a set of Tablets (between 10 and 1000 tablets)
• Handles Read/Write requests
– A library, linked to every client
• Clients communicate directly with Tablet Server
• Client cache the tablet location. Worst case must go through the Master to
find out the tablet location and refresh the local cache
BigTable ImplementationBigTable Implementation

Three levels hierarchy to store Tablet location information. (analogous to B+ tree)

Chubby File contains the location to the Root Tablet

Root Tablet contain the location to other Tablets in a special METADATA tablet
BigTable ImplementationBigTable Implementation

Updates are committed to a commit log that stores redo records. The Authorization is
checked in a chubby file

The recently commits are store in memtable (Memory)

To recover a Tablet server read its METADATA and then applies the changes in
MEMTABLE

The read operations read for memtable or SSTable. The authorization is checked in a
Chubby file
BigTable Implementation – Tablet ServingBigTable Implementation – Tablet Serving

This project's goal is the hosting of very large tables -- billions of rows X millions of
columns -- atop clusters of commodity hardware

HBase is an open-source, distributed, versioned, column-oriented store modeled
after Google's BigTable

Hbase includes:
– Convenient base classes for backing Hadoop MapReduce jobs with HBase tables
including cascading, hive and pig source and sink modules
– Query predicate push down via server side scan and get filters
– Optimizations for real time queries
– A Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary
data encoding options
– Extensible jruby-based (JIRB) shell
HBase – The Hadoop DBHBase – The Hadoop DB
DEMO
HBase – The Hadoop DBHBase – The Hadoop DB

dff
BigTable: Performance/EvaluationsBigTable: Performance/Evaluations

dff
BigTable: Real ApplicationsBigTable: Real Applications
Questions ?
BigTableBigTable

More Related Content

What's hot

Db2 blu acceleration and more
Db2 blu acceleration and moreDb2 blu acceleration and more
Db2 blu acceleration and moreIBM Sverige
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)Romain Jacotin
 
Distributed Computing
Distributed Computing Distributed Computing
Distributed Computing Megha yadav
 
NUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioNUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioHajime Tazaki
 
Hadoop And Their Ecosystem ppt
 Hadoop And Their Ecosystem ppt Hadoop And Their Ecosystem ppt
Hadoop And Their Ecosystem pptsunera pathan
 
Hadoop HDFS Architeture and Design
Hadoop HDFS Architeture and DesignHadoop HDFS Architeture and Design
Hadoop HDFS Architeture and Designsudhakara st
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In DepthFabio Fumarola
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practicelarsgeorge
 
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at Rakuten
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at RakutenMongoDB World 2019: The Journey of Migration from Oracle to MongoDB at Rakuten
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at RakutenMongoDB
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017 Karan Singh
 
Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File Systemelliando dias
 
Gluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & TricksGluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & TricksGlusterFS
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storageHimanshu Sahu
 

What's hot (20)

Nosql data models
Nosql data modelsNosql data models
Nosql data models
 
Db2 blu acceleration and more
Db2 blu acceleration and moreDb2 blu acceleration and more
Db2 blu acceleration and more
 
Bigtable and Dynamo
Bigtable and DynamoBigtable and Dynamo
Bigtable and Dynamo
 
The Google File System (GFS)
The Google File System (GFS)The Google File System (GFS)
The Google File System (GFS)
 
Distributed Computing
Distributed Computing Distributed Computing
Distributed Computing
 
NUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osioNUSE (Network Stack in Userspace) at #osio
NUSE (Network Stack in Userspace) at #osio
 
Hadoop And Their Ecosystem ppt
 Hadoop And Their Ecosystem ppt Hadoop And Their Ecosystem ppt
Hadoop And Their Ecosystem ppt
 
Hadoop HDFS Architeture and Design
Hadoop HDFS Architeture and DesignHadoop HDFS Architeture and Design
Hadoop HDFS Architeture and Design
 
Unit-3_BDA.ppt
Unit-3_BDA.pptUnit-3_BDA.ppt
Unit-3_BDA.ppt
 
Google file system
Google file systemGoogle file system
Google file system
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practice
 
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at Rakuten
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at RakutenMongoDB World 2019: The Journey of Migration from Oracle to MongoDB at Rakuten
MongoDB World 2019: The Journey of Migration from Oracle to MongoDB at Rakuten
 
Disaster Recovery Synapse
Disaster Recovery SynapseDisaster Recovery Synapse
Disaster Recovery Synapse
 
Ceph Introduction 2017
Ceph Introduction 2017  Ceph Introduction 2017
Ceph Introduction 2017
 
Hadoop Distributed File System
Hadoop Distributed File SystemHadoop Distributed File System
Hadoop Distributed File System
 
Unit 3
Unit   3Unit   3
Unit 3
 
Key-Value NoSQL Database
Key-Value NoSQL DatabaseKey-Value NoSQL Database
Key-Value NoSQL Database
 
Gluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & TricksGluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & Tricks
 
A complete guide to azure storage
A complete guide to azure storageA complete guide to azure storage
A complete guide to azure storage
 

Viewers also liked

Bigtable: A Distributed Storage System for Structured Data
Bigtable: A Distributed Storage System for Structured DataBigtable: A Distributed Storage System for Structured Data
Bigtable: A Distributed Storage System for Structured Dataelliando dias
 
Google Bigtable paper presentation
Google Bigtable paper presentationGoogle Bigtable paper presentation
Google Bigtable paper presentationvanjakom
 
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEY
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEYROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEY
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEYSupport Driven
 
I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveSimon Willison
 
Big table
Big tableBig table
Big tablePSIT
 
Prezentacja firmowa
Prezentacja firmowaPrezentacja firmowa
Prezentacja firmowaEDORADCA
 
Week 1 documentary
Week 1  documentaryWeek 1  documentary
Week 1 documentaryromanyangel4
 
Mid Year Survey Results PMI SOC 2012 Mentoring Program
Mid Year Survey Results PMI SOC 2012 Mentoring ProgramMid Year Survey Results PMI SOC 2012 Mentoring Program
Mid Year Survey Results PMI SOC 2012 Mentoring ProgramLindsay McLeod
 
Namasmaran And Romance Dr Shriniwas Janardan Kashalikar
Namasmaran And Romance Dr  Shriniwas Janardan  KashalikarNamasmaran And Romance Dr  Shriniwas Janardan  Kashalikar
Namasmaran And Romance Dr Shriniwas Janardan Kashalikarbanothkishan
 
WinterJam_2016
WinterJam_2016WinterJam_2016
WinterJam_2016Dy Lounds
 
EverTrue Near You! Pomfret Fall 2013
EverTrue Near You! Pomfret Fall 2013EverTrue Near You! Pomfret Fall 2013
EverTrue Near You! Pomfret Fall 2013EverTrue
 

Viewers also liked (20)

Bigtable
BigtableBigtable
Bigtable
 
Bigtable: A Distributed Storage System for Structured Data
Bigtable: A Distributed Storage System for Structured DataBigtable: A Distributed Storage System for Structured Data
Bigtable: A Distributed Storage System for Structured Data
 
Google Bigtable paper presentation
Google Bigtable paper presentationGoogle Bigtable paper presentation
Google Bigtable paper presentation
 
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEY
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEYROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEY
ROCKING YOUR SEAT AT THE BIG TABLE - ROB BAILEY
 
Big table
Big tableBig table
Big table
 
I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you have
 
Google's BigTable
Google's BigTableGoogle's BigTable
Google's BigTable
 
Bigtable
BigtableBigtable
Bigtable
 
google Bigtable
google Bigtablegoogle Bigtable
google Bigtable
 
Big table
Big tableBig table
Big table
 
Bigtable
BigtableBigtable
Bigtable
 
Valuing Health at the End of Life
Valuing Health at the End of LifeValuing Health at the End of Life
Valuing Health at the End of Life
 
Prezentacja firmowa
Prezentacja firmowaPrezentacja firmowa
Prezentacja firmowa
 
Week 1 documentary
Week 1  documentaryWeek 1  documentary
Week 1 documentary
 
Steviose
StevioseSteviose
Steviose
 
Mid Year Survey Results PMI SOC 2012 Mentoring Program
Mid Year Survey Results PMI SOC 2012 Mentoring ProgramMid Year Survey Results PMI SOC 2012 Mentoring Program
Mid Year Survey Results PMI SOC 2012 Mentoring Program
 
Namasmaran And Romance Dr Shriniwas Janardan Kashalikar
Namasmaran And Romance Dr  Shriniwas Janardan  KashalikarNamasmaran And Romance Dr  Shriniwas Janardan  Kashalikar
Namasmaran And Romance Dr Shriniwas Janardan Kashalikar
 
WSGBelieve in bikes
WSGBelieve in bikesWSGBelieve in bikes
WSGBelieve in bikes
 
WinterJam_2016
WinterJam_2016WinterJam_2016
WinterJam_2016
 
EverTrue Near You! Pomfret Fall 2013
EverTrue Near You! Pomfret Fall 2013EverTrue Near You! Pomfret Fall 2013
EverTrue Near You! Pomfret Fall 2013
 

Similar to Big table

Bigtable
BigtableBigtable
Bigtableptdorf
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06temp2004it
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06mrlonganh
 
8. column oriented databases
8. column oriented databases8. column oriented databases
8. column oriented databasesFabio Fumarola
 
MySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
MySQL 8 Tips and Tricks from Symfony USA 2018, San FranciscoMySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
MySQL 8 Tips and Tricks from Symfony USA 2018, San FranciscoDave Stokes
 
MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018Dave Stokes
 
Bigtable and Boxwood
Bigtable and BoxwoodBigtable and Boxwood
Bigtable and BoxwoodEvan Weaver
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGuang Xu
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big DataVipin Batra
 
Data management in cloud study of existing systems and future opportunities
Data management in cloud study of existing systems and future opportunitiesData management in cloud study of existing systems and future opportunities
Data management in cloud study of existing systems and future opportunitiesEditor Jacotech
 
Bigtable
BigtableBigtable
Bigtablenextlib
 
storage-systems.pptx
storage-systems.pptxstorage-systems.pptx
storage-systems.pptxShimoFcis
 
Big Data 2107 for Ribbon
Big Data 2107 for RibbonBig Data 2107 for Ribbon
Big Data 2107 for RibbonSamuel Dratwa
 
Optimization on Key-value Stores in Cloud Environment
Optimization on Key-value Stores in Cloud EnvironmentOptimization on Key-value Stores in Cloud Environment
Optimization on Key-value Stores in Cloud EnvironmentFei Dong
 

Similar to Big table (20)

Bigtable
BigtableBigtable
Bigtable
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
8. column oriented databases
8. column oriented databases8. column oriented databases
8. column oriented databases
 
Bigtable_Paper
Bigtable_PaperBigtable_Paper
Bigtable_Paper
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Bigtable
Bigtable Bigtable
Bigtable
 
Gcp data engineer
Gcp data engineerGcp data engineer
Gcp data engineer
 
MySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
MySQL 8 Tips and Tricks from Symfony USA 2018, San FranciscoMySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
MySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
 
MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018MySQL 8 Server Optimization Swanseacon 2018
MySQL 8 Server Optimization Swanseacon 2018
 
Bigtable and Boxwood
Bigtable and BoxwoodBigtable and Boxwood
Bigtable and Boxwood
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheet
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big Data
 
Data management in cloud study of existing systems and future opportunities
Data management in cloud study of existing systems and future opportunitiesData management in cloud study of existing systems and future opportunities
Data management in cloud study of existing systems and future opportunities
 
Bigtable
BigtableBigtable
Bigtable
 
storage-systems.pptx
storage-systems.pptxstorage-systems.pptx
storage-systems.pptx
 
Big Data 2107 for Ribbon
Big Data 2107 for RibbonBig Data 2107 for Ribbon
Big Data 2107 for Ribbon
 
Google Bigtable
Google BigtableGoogle Bigtable
Google Bigtable
 
Optimization on Key-value Stores in Cloud Environment
Optimization on Key-value Stores in Cloud EnvironmentOptimization on Key-value Stores in Cloud Environment
Optimization on Key-value Stores in Cloud Environment
 

More from Manuel Correa

How Netflix does Microservices
How Netflix does Microservices How Netflix does Microservices
How Netflix does Microservices Manuel Correa
 
RESTFul Web Services - Intro
RESTFul Web Services - IntroRESTFul Web Services - Intro
RESTFul Web Services - IntroManuel Correa
 

More from Manuel Correa (6)

How Netflix does Microservices
How Netflix does Microservices How Netflix does Microservices
How Netflix does Microservices
 
Ads final project
Ads final projectAds final project
Ads final project
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
 
Optimal Adaptation
Optimal Adaptation Optimal Adaptation
Optimal Adaptation
 
RESTFul Web Services - Intro
RESTFul Web Services - IntroRESTFul Web Services - Intro
RESTFul Web Services - Intro
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 

Big table

  • 1. Presented by Manuel Correa BigTable: A Distributed StorageBigTable: A Distributed Storage System for Structure DataSystem for Structure Data Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber Google, Inc.Google, Inc.
  • 2.  Problem in RDBMS & NoSQL Databases  What is BigTable?  Data Model  Implementation  HBASE – Hadoop project  Quick Demo  Performance and Evaluations  Real Applications  Questions AgendaAgenda
  • 3.  RDBMS do not scale with Large Data Sets – petabytes  Do not scale horizontally – Replication, and Clustering – RDBMS were not designed to be distributed  Schema are rigid  Joins do not scale well Problems in RDBMSProblems in RDBMS
  • 4.  Non-Relational data storage  No joins, one simple schema that accommodates large datasets  NoSQL Data Bases designed to be distributed  NoSQL is not a replacement for RDBMS!!  Examples: – Document DB: Hbase (Hadoop) – Object DB: MongoDB – Graph DB: Neo4j NoSQL Databases –NoSQL Databases – NNoo OOnlynly SQLSQL
  • 5. Who's using NoSQL?Who's using NoSQL?
  • 6.  BigTable is a distributed storage system for managing structure data  Designed by Google Inc. in 2006  BigTable was designed to scale to petabytes of data in thousands of machines  BigTable has successfully provided a flexible, wide applicability, scalability, high availability, and high-performance solution for all Google products What is BigTable?What is BigTable?
  • 7.  BigTable is sparse, distributed, persistent multidimensional sorted Map  The map is index by row key, column key, timestamp. The value is an array of bytes BigTable Data ModelBigTable Data Model
  • 8.  Rows keys are arbitrary strings (up to 64KB)  Every single Read/Write operation over a row is Atomic  BigTable data is ordered lexicographically by row key  A table is dynamically partitioned in row ranges called TabletTablet  A Tablet is the basic unit of distribution and load balancing BigTable Model - RowsBigTable Model - Rows
  • 9.  Columns keys are grouped together in a single unit called column families  A column family is the single unit of access control  All data stored in a column family are usually of the same type  A column family contains several column indexes  Access a column index: family:qualifier BigTable Model – ColumnsBigTable Model – Columns
  • 10.  Each cell in BigTable can contain multiple versions of the same data  Each version is index with a timestamp  The timestamp is an 64-bit Integer  Different versions of a cell are store in decreasing order, so that the most recent version can be read first  BigTable implements a Garbage Collector to remove unused versions (The client can specify a expiration policy for each column family) BigTable Model – TimestampsBigTable Model – Timestamps
  • 11.  Each cell in BigTable are index by timestamp – Maintain different version of the same data – The most recent version will be first. The order of the timestamp is decreasing – The system implements garbage collector. This takes care of unused versions  Example: WebTable – The contents family column of a Web page has different versions BigTable Model – TimestampsBigTable Model – Timestamps
  • 12. BigTable Model – Example: WebTableBigTable Model – Example: WebTable  Row Key is the URL in reverse  Pages in the same domain are group together in contiguous rows = TABLET  Anchor is a family column with two column indexes  Different versions (t3, t5, t6, t8, 9) are keep in family indexes
  • 13. BigTable ImplementationBigTable Implementation  BigTable uses the distributed Google File System  MapReduce inputs/outputs can be store in BigTable  BigTable uses the Google SSTable file format to internally store the data  SSTable: provide a persistent, ordered immutable map from keys to values – Internally SSTable contains a sequence of blocks (~64KB) – SSTable contains a index at the end of the block – A lookup can be perform with a single disk seek – SSTable can loaded into memory, so the scans and lookups operation happens in memory
  • 14. BigTable ImplementationBigTable Implementation  BigTable relies in a high-available, persistent distributed Lock service called Chubby  The Chubby services consist in five active replicas. One of them is the Master. Paxos algorithm is used to keep the replicas in sync  Chubby provides a namespace that consist in Directories/Files. Which can be used as a Lock. Each Read/Write is atomic  BigTable uses Chubby to: – To ensure that there is at most one Master node active at any time – To store the bootstrap location of BigTable data – To discover Tablet servers and finalize Tablet server deaths – To Store BigTable schema information
  • 15.  Three Major Components: – Master Server • Assigns Tablet to Tablets servers • Handles schema changes: Tablet and column families creation – Tablet Servers: • Manage a set of Tablets (between 10 and 1000 tablets) • Handles Read/Write requests – A library, linked to every client • Clients communicate directly with Tablet Server • Client cache the tablet location. Worst case must go through the Master to find out the tablet location and refresh the local cache BigTable ImplementationBigTable Implementation
  • 16.  Three levels hierarchy to store Tablet location information. (analogous to B+ tree)  Chubby File contains the location to the Root Tablet  Root Tablet contain the location to other Tablets in a special METADATA tablet BigTable ImplementationBigTable Implementation
  • 17.  Updates are committed to a commit log that stores redo records. The Authorization is checked in a chubby file  The recently commits are store in memtable (Memory)  To recover a Tablet server read its METADATA and then applies the changes in MEMTABLE  The read operations read for memtable or SSTable. The authorization is checked in a Chubby file BigTable Implementation – Tablet ServingBigTable Implementation – Tablet Serving
  • 18.  This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware  HBase is an open-source, distributed, versioned, column-oriented store modeled after Google's BigTable  Hbase includes: – Convenient base classes for backing Hadoop MapReduce jobs with HBase tables including cascading, hive and pig source and sink modules – Query predicate push down via server side scan and get filters – Optimizations for real time queries – A Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options – Extensible jruby-based (JIRB) shell HBase – The Hadoop DBHBase – The Hadoop DB
  • 19. DEMO HBase – The Hadoop DBHBase – The Hadoop DB