SlideShare a Scribd company logo
1 of 43
Google BigTable
DS Seminar
23-05-2016
• A Short history of Google Motivation
• What is GFS ?
• What is Chubby ?
• What is Map Reduce ?
• What is BigTable ?
• Data Model
• API
• Building Blocks
• Implementation
Agenda
Introduction
Even though Google is best known for it’s
reliable and fast services, but what’s there
working behind the scene?
Google Motivation
 Undoubtedly, Google has a lot of data.
 Scale of data is too large
Even for commercial databases.
 GFS
 Chubby
 Map Reduce
 BigTable
Google Motivation
 Undoubtedly, there are number of aspects that matter behind this
(like Hardware, Software, Operating System, Best Staff in the world etc. )
 But, What I am going to explain here is the Software part.
What is GFS?
What is GFS ?
 GFS stands for Google File System.
 It’s a Proprietary(means for their personal use, not open source) distributed file system
developed by Google for their services.
 It is specially designed to provide efficient, reliable access to data using large clusters of
commodity hardware, means they are using low cost hardware, not state-of-the-art
computers. Google uses relatively inexpensive computers running Linux Operating System and
the GFS works just fine with them !
What is GFS?
What is Chubby ?
 Chubby is a Lock Service. (It’s related to gain access of Shared
resources)
 It is used to synchronize accesses to shared resources.
 It is now used as a replacement of Google’s Domain Name System.
 MapReduce is a software framework that process massive amounts of unstructured
data.
 It allows developers to write programs that process data in parallel across a
distributed cluster of processors or stand-alone computers.
 It is now used by Google mainly for their Web Indexing Service, applied since 2004.
 Map() procedure performs all the process related to Filtering and Sorting.
 Reduce() procedure performs all the Summary related operations.
What is Map Reduce?What is Map Reduce ?
What is Google BigTable ?
 BigTable is a distributed storage system for managing structured data built on
Google File System, Chubby Lock Service, SSTable (log-structured storage like LevelDB)
and a few other Google technologies.
 Designed to Scale to a very large size: petabytes of data across thousands of
commodity servers
 Most important point, It’s a Non-Relational Database.
 It uses amazing Load Balancing Structure so that it runs on Commodity Hardware.
 It uses Snappy compression utility for compacting the data.
What is BigTable?
What is Google BigTable ?
 Distributed
 Column – Oriented
 Multidimensional
 High Availability
 High Performance
 Store System
 Self-managing
What is BigTable?
What is Google BigTable ?What is BigTable?
 Used by more than 60 Google products
 Google Analytics
 Google Finance
 Personalized Search
 Google Documents
 Google Earth
 Google Fusion Tables
 …
 Used for variety of demanding workloads
 Throughput oriented batch processing
 Latency sensitive data serving
Structure of BigTableData Model
Structure of BigTable
 Each table is a Multi-Dimensional Sparse Map ( Memory Efficient hash-map implementation).
 The table consists of
(1) Rows,
(2) Columns
(3) Each cell has a Time Version
(Time-Stamp).
 Time Version results in multiple copies
of each cell with different times,
Data Model
Structure of BigTable
 Time Version results in multiple copies of each cell with different times, resulting
Unimaginable Redundancy which is requirement for Google services, so don’t ever think
it as a drawback of this system.
 Google does Web Indexing to get the data of all the websites. They store all the URLs, their
titles, time-stamp and many more required fields
 Web Indexing :- indexing the contents of a website
Data Model
Structure of BigTable
 The row keys in a table are arbitrary strings.
 Data is maintained in lexicographic order by row key
 Each row range is called a tablet, which is the unit of distribution and load balancing.
Data Model-Row
row
Structure of BigTableData Model-Column
 Column keys are grouped into sets called column families.
 Data stored in a column family is usually of the same type
 A column key is named using the syntax: family : qualifier.
 Column family names must be printable , but qualifiers may be arbitrary strings.
columns
Structure of BigTableData Model-Timestamp
 Each cell in a Bigtable can contain multiple versions of the same data
 Versions are indexed by 64-bit integer timestamps
 Timestamps can be assigned:
▪ automatically by Bigtable , or
▪ explicitly by client applications
Timestamp
Structure of BigTableData Model
Structure of BigTableAPI
The Bigtable API provides functions :
• Creating and deleting tables and column families.
• Changing cluster , table and column family metadata.
• Support for single row transactions
• Allows cells to be used as integer counters
• Client supplied scripts can be executed in the address space of
servers
• Input and output of Map/Reduce jobs
Structure of BigTableAPI
Structure of BigTableBuilding Blocks
 BigTable is composed of several other innovative, distribution
oriented components.
 Google File System (GFS)
 SSTable
 Chubby
Structure of BigTableBuilding Blocks
 Google File System (GFS) :
Used to store log and data files
 SSTable (Sorted String Table) :
Used to store table data in GFS
used to store and retrieve the pairs <Key, Value>
Used as pointers to pairs <Key, Value>
Stored in GFS
Structure of BigTableBuilding Blocks
 Google Chubby :
 Chubby is High available and persistent distributes service
▪ Chubby service consists of 5 active replicas with one master to serve
requests
 Each directory or file can be used as a lock
 Reads and writes to a file are atomic
 Chubby client library provides consistent caching of Chubby files
 Each Chubby client maintains a session with a Chubby service
Structure of BigTableBuilding Blocks
 Google Chubby :
 Client’s session expires if is unable to renew its session lease within the
lease expiration time
 When a client’s session expires, it loses any locks and open
handles
 Chubby clients can also register callbacks on Chubby files and
directories for notification of changes or session expiration
Structure of BigTableBuilding Blocks
 BigTable uses Chubby for a variety of tasks
 To ensure there is at most one active master at any time
 To store the bootstrap location of BigTable data (Root tablet)
 To discover tablet servers and finalize tablet server deaths
 To store BigTable schema information (column family
information for each table)
 To store access control lists (ACL)
 Chubby unavailable = BigTable unavailable
Structure of BigTableImplementation
 The implementation has three major components
 One Master server
 Many tablet servers
 A library that is linked into every client
 BigTable runs over Google File System
 BigTable is store in a structure called SSTable.
Each SSTable is divided into 64KB blocks. A SSTable
can be loaded to Memory
Structure of BigTableImplementation
 One Master server
 Assigning tablets to tablet servers
 Detecting the addition and expiration of tablet servers
 Balancing tablet server load
 Garbage collecting of files in GFS
 Handling schema changes (table creation, column
family creation/deletion
Structure of BigTableImplementation
 Many tablet servers
 Manages a set of tablets
 Handles read and write request to the tablets
 Splits tablets that have grown too large (100-‐200 MB)
Structure of BigTableImplementation
 A library that is linked into every client
 Do not rely on the master for tablet location
information
 Communicates directly with tablet servers for reads
and writes
Structure of BigTableTablet Location
 Chubby File: Provides an namespace to access the root table.
This is the first entry point to locate a user table.
The service is distributed. The cubby service is used for:
 Bootstrap the location of BigTable
 Discover server tablets
 Finalize tablets servers deaths
Structure of BigTableTablet Location
 Three level hierarchy
 Level 1: Chubby file containing location of the root tablet
 Level 2: Root tablet contains the location of METADATA
tablets
 Level 3: Each METADATA tablet contains
the location of user tablets
 Location of tablet is stored under a row key that encodes table
identifier and its end row
Structure of BigTableTablet LookUp
 Lookup is a three-level system.
 Benefit :- NO Big Bottleneck in
the system and it also
make heavy use
of Pre-Fetching and Caching
Tablet Location Hierarchy
Chubby file
contains location
of the root
tablet.
Root tablet
contains all
tablet locations
in Metadata
table.
Metadata table stores
locations of actual
tablets.
Client moves up
the hierarchy
(Metadata -> Root -
> Chubby), if
location of tablet is
unknown or
incorrect.
Structure of BigTableActual Hierarchical Load Balancing Structure
Request arrives at
ROOT (Master
Computer).
ROOT checks its
master record and
sends the request to
the right PC.
SSTable contains
the records of
tablets.
This is how, it works
Via Meta Tablets, request is sent
to tablet containing original data
tablet and the data is fetched
then.
Structure of BigTableTablet Assignment
 Each tablet is assigned to one tablet server at a time
 Master keeps tracks of
– the set of live tablet servers (tracking via Chubby)
– the current assignment of tablet to tablet servers
– the current unassigned tablets
 When a tablet is unassigned, the master assigns the tablet to an
available tablet server by sending a tablet load request to that
tablet server
Structure of BigTableTablet Serving
 Updates committed to a commit log
 Recently committed updates are stored in memory –MEMtable
 Older updates are stored in a sequence of SSTables.
Structure of BigTableTablet Serving
 Write operation:
1. Server checks that the request is well‐formed
2. Server checks that the sender is authorized to write (list of permitted writers in
a Chubby file)
3. A valid mutation is written to the commit log that stores redo records
(group commit to improve throughput)
4. After the mutation has been committed,
its contents are inserted into the
MEMtable (= in memory sorted buffer)
Structure of BigTableTablet Serving
 Read operation:
1. Server checks that the request is well‐formed
2. Server checks that the sender is authorized to read (list of permitted writers in a
Chubby file)
3. Valid read operation is executed on a merged view of the sequence of SSTables
and the MEMtable
Structure of BigTableTablet Serving
 Tablet Recovery
1. Tablet server reads its metadata from the METADATA table (lists of SSTables
that comprise a tablet and a set of a redo points, which are pointers into any
commit logs that may contain data for the tablet)
2. The tablet server reads the indices of the SSTables into memory and
reconstructs the MEMtable by applying all of the updates that
have a commted since the redo points
Structure of BigTableCompaction
 In order to control size of MEMtable, tablet log, and SSTable files,
“compaction” is used.
1. Minor Compaction - Move data from MEMtable to SSTable.
2. Merging Compaction - Merge multiple SSTables and MEMtable to a single
SSTable.
3. Major Compaction - that re-writes all SSTables into exactly one
SSTable
Structure of BigTableCompaction
1. Minor Compaction
– When MEMtable size reaches a threshold, MEMtable is frozen, a new MEMtable is created, and the
frozen MEMtable is converted to a new SSTable and written to GFS
– Two goals: shrinks the memory usage of the tablet server, reduces the amount of data that has to be
read from the commit log during a recovery
Structure of BigTableCompaction
2. Merging Compaction
– Problem: every minor compaction creates a new SSTable (arbitrary number of SSTables !)
– Solution: periodic merging of a few SSTables and the MEMtable
Structure of BigTableCompaction
3. Major Compaction
– It is a merging compaction that rewrites all SSTables into exactly one SSTable that contains no
deletion information or deleted data
– BigTable cycles through all of it tablets and regularly applies major compaction to them (=reclaim
resources used by deleted data in a timely fashion)
Structure of BigTableConclusion
 BigTable has achieved its goals of high performance, data availability and
scalability.
 It has been successfully deployed in real apps (Personalized Search, Orkut,
Google Maps, …)
 Significant advantages of building own storage system like flexibility in
designing data model, control over implementation and other infrastructure on
which Bigtable relies on.
Thanks For Listening

More Related Content

What's hot

Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversApache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversScyllaDB
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions Yugabyte
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkFlink Forward
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsDatabricks
 
A Day in the Life of a ClickHouse Query Webinar Slides
A Day in the Life of a ClickHouse Query Webinar Slides A Day in the Life of a ClickHouse Query Webinar Slides
A Day in the Life of a ClickHouse Query Webinar Slides Altinity Ltd
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2Fabio Fumarola
 
Big data-analytics-cpe8035
Big data-analytics-cpe8035Big data-analytics-cpe8035
Big data-analytics-cpe8035Neelam Rawat
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareAltinity Ltd
 
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdfDeep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdfAltinity Ltd
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Databricks
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGuang Xu
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevAltinity Ltd
 
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBDistributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBYugabyteDB
 
Extending Druid Index File
Extending Druid Index FileExtending Druid Index File
Extending Druid Index FileNavis Ryu
 
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEOClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEOAltinity Ltd
 

What's hot (20)

Megastore by Google
Megastore by GoogleMegastore by Google
Megastore by Google
 
Kudu Deep-Dive
Kudu Deep-DiveKudu Deep-Dive
Kudu Deep-Dive
 
Apache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the CoversApache Iceberg: An Architectural Look Under the Covers
Apache Iceberg: An Architectural Look Under the Covers
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of Flink
 
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and PitfallsRunning Apache Spark on Kubernetes: Best Practices and Pitfalls
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
 
A Day in the Life of a ClickHouse Query Webinar Slides
A Day in the Life of a ClickHouse Query Webinar Slides A Day in the Life of a ClickHouse Query Webinar Slides
A Day in the Life of a ClickHouse Query Webinar Slides
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
 
Big data-analytics-cpe8035
Big data-analytics-cpe8035Big data-analytics-cpe8035
Big data-analytics-cpe8035
 
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlareClickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
Clickhouse Capacity Planning for OLAP Workloads, Mik Kocikowski of CloudFlare
 
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdfDeep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
Deep Dive on ClickHouse Sharding and Replication-2202-09-22.pdf
 
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
Hudi: Large-Scale, Near Real-Time Pipelines at Uber with Nishith Agarwal and ...
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheet
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
 
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBDistributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
 
Google File System
Google File SystemGoogle File System
Google File System
 
Nosql data models
Nosql data modelsNosql data models
Nosql data models
 
Extending Druid Index File
Extending Druid Index FileExtending Druid Index File
Extending Druid Index File
 
Google File System
Google File SystemGoogle File System
Google File System
 
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEOClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
ClickHouse tips and tricks. Webinar slides. By Robert Hodges, Altinity CEO
 

Similar to Google Big Table (20)

Big table
Big tableBig table
Big table
 
Big table
Big tableBig table
Big table
 
Google Bigtable
Google BigtableGoogle Bigtable
Google Bigtable
 
8. column oriented databases
8. column oriented databases8. column oriented databases
8. column oriented databases
 
Bigtable_Paper
Bigtable_PaperBigtable_Paper
Bigtable_Paper
 
Bigtable
BigtableBigtable
Bigtable
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Bigtable osdi06
Bigtable osdi06Bigtable osdi06
Bigtable osdi06
 
Google BigTable
Google BigTableGoogle BigTable
Google BigTable
 
google Bigtable
google Bigtablegoogle Bigtable
google Bigtable
 
Bigtable
BigtableBigtable
Bigtable
 
Bigtable and Boxwood
Bigtable and BoxwoodBigtable and Boxwood
Bigtable and Boxwood
 
Fast Analytics
Fast Analytics Fast Analytics
Fast Analytics
 
Gcp data engineer
Gcp data engineerGcp data engineer
Gcp data engineer
 
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
 
Exploring BigData with Google BigQuery
Exploring BigData with Google BigQueryExploring BigData with Google BigQuery
Exploring BigData with Google BigQuery
 
Summary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in TokyoSummary of "Google's Big Table" at nosql summer reading in Tokyo
Summary of "Google's Big Table" at nosql summer reading in Tokyo
 
Big Data
Big DataBig Data
Big Data
 
Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big Data
 

More from Omar Al-Sabek (17)

Online Certificate Data Mining with Weka
Online Certificate Data Mining with WekaOnline Certificate Data Mining with Weka
Online Certificate Data Mining with Weka
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Git
GitGit
Git
 
E payment Project Demo
E payment Project DemoE payment Project Demo
E payment Project Demo
 
A petri-net
A petri-netA petri-net
A petri-net
 
Sets c1
Sets c1Sets c1
Sets c1
 
Records c2
Records c2Records c2
Records c2
 
Files c3
Files c3Files c3
Files c3
 
Files c4
Files c4Files c4
Files c4
 
Pointers c5
Pointers c5Pointers c5
Pointers c5
 
Stack c6
Stack c6Stack c6
Stack c6
 
Linked lists c7
Linked lists c7Linked lists c7
Linked lists c7
 
Double linked list c8
Double linked list c8Double linked list c8
Double linked list c8
 
Function procedure c6 c7
Function procedure  c6 c7Function procedure  c6 c7
Function procedure c6 c7
 
Control structures c2 c3
Control structures c2 c3Control structures c2 c3
Control structures c2 c3
 
Programming paradigms c1
Programming paradigms c1Programming paradigms c1
Programming paradigms c1
 
Arrays c4 c5
Arrays c4 c5Arrays c4 c5
Arrays c4 c5
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Google Big Table

  • 2. • A Short history of Google Motivation • What is GFS ? • What is Chubby ? • What is Map Reduce ? • What is BigTable ? • Data Model • API • Building Blocks • Implementation Agenda
  • 3. Introduction Even though Google is best known for it’s reliable and fast services, but what’s there working behind the scene? Google Motivation  Undoubtedly, Google has a lot of data.  Scale of data is too large Even for commercial databases.
  • 4.  GFS  Chubby  Map Reduce  BigTable Google Motivation  Undoubtedly, there are number of aspects that matter behind this (like Hardware, Software, Operating System, Best Staff in the world etc. )  But, What I am going to explain here is the Software part.
  • 5. What is GFS? What is GFS ?  GFS stands for Google File System.  It’s a Proprietary(means for their personal use, not open source) distributed file system developed by Google for their services.  It is specially designed to provide efficient, reliable access to data using large clusters of commodity hardware, means they are using low cost hardware, not state-of-the-art computers. Google uses relatively inexpensive computers running Linux Operating System and the GFS works just fine with them !
  • 6. What is GFS? What is Chubby ?  Chubby is a Lock Service. (It’s related to gain access of Shared resources)  It is used to synchronize accesses to shared resources.  It is now used as a replacement of Google’s Domain Name System.
  • 7.  MapReduce is a software framework that process massive amounts of unstructured data.  It allows developers to write programs that process data in parallel across a distributed cluster of processors or stand-alone computers.  It is now used by Google mainly for their Web Indexing Service, applied since 2004.  Map() procedure performs all the process related to Filtering and Sorting.  Reduce() procedure performs all the Summary related operations. What is Map Reduce?What is Map Reduce ?
  • 8. What is Google BigTable ?  BigTable is a distributed storage system for managing structured data built on Google File System, Chubby Lock Service, SSTable (log-structured storage like LevelDB) and a few other Google technologies.  Designed to Scale to a very large size: petabytes of data across thousands of commodity servers  Most important point, It’s a Non-Relational Database.  It uses amazing Load Balancing Structure so that it runs on Commodity Hardware.  It uses Snappy compression utility for compacting the data. What is BigTable?
  • 9. What is Google BigTable ?  Distributed  Column – Oriented  Multidimensional  High Availability  High Performance  Store System  Self-managing What is BigTable?
  • 10. What is Google BigTable ?What is BigTable?  Used by more than 60 Google products  Google Analytics  Google Finance  Personalized Search  Google Documents  Google Earth  Google Fusion Tables  …  Used for variety of demanding workloads  Throughput oriented batch processing  Latency sensitive data serving
  • 12. Structure of BigTable  Each table is a Multi-Dimensional Sparse Map ( Memory Efficient hash-map implementation).  The table consists of (1) Rows, (2) Columns (3) Each cell has a Time Version (Time-Stamp).  Time Version results in multiple copies of each cell with different times, Data Model
  • 13. Structure of BigTable  Time Version results in multiple copies of each cell with different times, resulting Unimaginable Redundancy which is requirement for Google services, so don’t ever think it as a drawback of this system.  Google does Web Indexing to get the data of all the websites. They store all the URLs, their titles, time-stamp and many more required fields  Web Indexing :- indexing the contents of a website Data Model
  • 14. Structure of BigTable  The row keys in a table are arbitrary strings.  Data is maintained in lexicographic order by row key  Each row range is called a tablet, which is the unit of distribution and load balancing. Data Model-Row row
  • 15. Structure of BigTableData Model-Column  Column keys are grouped into sets called column families.  Data stored in a column family is usually of the same type  A column key is named using the syntax: family : qualifier.  Column family names must be printable , but qualifiers may be arbitrary strings. columns
  • 16. Structure of BigTableData Model-Timestamp  Each cell in a Bigtable can contain multiple versions of the same data  Versions are indexed by 64-bit integer timestamps  Timestamps can be assigned: ▪ automatically by Bigtable , or ▪ explicitly by client applications Timestamp
  • 18. Structure of BigTableAPI The Bigtable API provides functions : • Creating and deleting tables and column families. • Changing cluster , table and column family metadata. • Support for single row transactions • Allows cells to be used as integer counters • Client supplied scripts can be executed in the address space of servers • Input and output of Map/Reduce jobs
  • 20. Structure of BigTableBuilding Blocks  BigTable is composed of several other innovative, distribution oriented components.  Google File System (GFS)  SSTable  Chubby
  • 21. Structure of BigTableBuilding Blocks  Google File System (GFS) : Used to store log and data files  SSTable (Sorted String Table) : Used to store table data in GFS used to store and retrieve the pairs <Key, Value> Used as pointers to pairs <Key, Value> Stored in GFS
  • 22. Structure of BigTableBuilding Blocks  Google Chubby :  Chubby is High available and persistent distributes service ▪ Chubby service consists of 5 active replicas with one master to serve requests  Each directory or file can be used as a lock  Reads and writes to a file are atomic  Chubby client library provides consistent caching of Chubby files  Each Chubby client maintains a session with a Chubby service
  • 23. Structure of BigTableBuilding Blocks  Google Chubby :  Client’s session expires if is unable to renew its session lease within the lease expiration time  When a client’s session expires, it loses any locks and open handles  Chubby clients can also register callbacks on Chubby files and directories for notification of changes or session expiration
  • 24. Structure of BigTableBuilding Blocks  BigTable uses Chubby for a variety of tasks  To ensure there is at most one active master at any time  To store the bootstrap location of BigTable data (Root tablet)  To discover tablet servers and finalize tablet server deaths  To store BigTable schema information (column family information for each table)  To store access control lists (ACL)  Chubby unavailable = BigTable unavailable
  • 25. Structure of BigTableImplementation  The implementation has three major components  One Master server  Many tablet servers  A library that is linked into every client  BigTable runs over Google File System  BigTable is store in a structure called SSTable. Each SSTable is divided into 64KB blocks. A SSTable can be loaded to Memory
  • 26. Structure of BigTableImplementation  One Master server  Assigning tablets to tablet servers  Detecting the addition and expiration of tablet servers  Balancing tablet server load  Garbage collecting of files in GFS  Handling schema changes (table creation, column family creation/deletion
  • 27. Structure of BigTableImplementation  Many tablet servers  Manages a set of tablets  Handles read and write request to the tablets  Splits tablets that have grown too large (100-‐200 MB)
  • 28. Structure of BigTableImplementation  A library that is linked into every client  Do not rely on the master for tablet location information  Communicates directly with tablet servers for reads and writes
  • 29. Structure of BigTableTablet Location  Chubby File: Provides an namespace to access the root table. This is the first entry point to locate a user table. The service is distributed. The cubby service is used for:  Bootstrap the location of BigTable  Discover server tablets  Finalize tablets servers deaths
  • 30. Structure of BigTableTablet Location  Three level hierarchy  Level 1: Chubby file containing location of the root tablet  Level 2: Root tablet contains the location of METADATA tablets  Level 3: Each METADATA tablet contains the location of user tablets  Location of tablet is stored under a row key that encodes table identifier and its end row
  • 31. Structure of BigTableTablet LookUp  Lookup is a three-level system.  Benefit :- NO Big Bottleneck in the system and it also make heavy use of Pre-Fetching and Caching Tablet Location Hierarchy Chubby file contains location of the root tablet. Root tablet contains all tablet locations in Metadata table. Metadata table stores locations of actual tablets. Client moves up the hierarchy (Metadata -> Root - > Chubby), if location of tablet is unknown or incorrect.
  • 32. Structure of BigTableActual Hierarchical Load Balancing Structure Request arrives at ROOT (Master Computer). ROOT checks its master record and sends the request to the right PC. SSTable contains the records of tablets. This is how, it works Via Meta Tablets, request is sent to tablet containing original data tablet and the data is fetched then.
  • 33. Structure of BigTableTablet Assignment  Each tablet is assigned to one tablet server at a time  Master keeps tracks of – the set of live tablet servers (tracking via Chubby) – the current assignment of tablet to tablet servers – the current unassigned tablets  When a tablet is unassigned, the master assigns the tablet to an available tablet server by sending a tablet load request to that tablet server
  • 34. Structure of BigTableTablet Serving  Updates committed to a commit log  Recently committed updates are stored in memory –MEMtable  Older updates are stored in a sequence of SSTables.
  • 35. Structure of BigTableTablet Serving  Write operation: 1. Server checks that the request is well‐formed 2. Server checks that the sender is authorized to write (list of permitted writers in a Chubby file) 3. A valid mutation is written to the commit log that stores redo records (group commit to improve throughput) 4. After the mutation has been committed, its contents are inserted into the MEMtable (= in memory sorted buffer)
  • 36. Structure of BigTableTablet Serving  Read operation: 1. Server checks that the request is well‐formed 2. Server checks that the sender is authorized to read (list of permitted writers in a Chubby file) 3. Valid read operation is executed on a merged view of the sequence of SSTables and the MEMtable
  • 37. Structure of BigTableTablet Serving  Tablet Recovery 1. Tablet server reads its metadata from the METADATA table (lists of SSTables that comprise a tablet and a set of a redo points, which are pointers into any commit logs that may contain data for the tablet) 2. The tablet server reads the indices of the SSTables into memory and reconstructs the MEMtable by applying all of the updates that have a commted since the redo points
  • 38. Structure of BigTableCompaction  In order to control size of MEMtable, tablet log, and SSTable files, “compaction” is used. 1. Minor Compaction - Move data from MEMtable to SSTable. 2. Merging Compaction - Merge multiple SSTables and MEMtable to a single SSTable. 3. Major Compaction - that re-writes all SSTables into exactly one SSTable
  • 39. Structure of BigTableCompaction 1. Minor Compaction – When MEMtable size reaches a threshold, MEMtable is frozen, a new MEMtable is created, and the frozen MEMtable is converted to a new SSTable and written to GFS – Two goals: shrinks the memory usage of the tablet server, reduces the amount of data that has to be read from the commit log during a recovery
  • 40. Structure of BigTableCompaction 2. Merging Compaction – Problem: every minor compaction creates a new SSTable (arbitrary number of SSTables !) – Solution: periodic merging of a few SSTables and the MEMtable
  • 41. Structure of BigTableCompaction 3. Major Compaction – It is a merging compaction that rewrites all SSTables into exactly one SSTable that contains no deletion information or deleted data – BigTable cycles through all of it tablets and regularly applies major compaction to them (=reclaim resources used by deleted data in a timely fashion)
  • 42. Structure of BigTableConclusion  BigTable has achieved its goals of high performance, data availability and scalability.  It has been successfully deployed in real apps (Personalized Search, Orkut, Google Maps, …)  Significant advantages of building own storage system like flexibility in designing data model, control over implementation and other infrastructure on which Bigtable relies on.