PPT

advertisement
Big Table:
Distributed Storage System
For Structured Data
Sergejs Melderis
Dennis Kafura – CS5204 – Operating Systems
11
BigTable
Unstructured Data vs. Structured Data
 Unstructured
data refers to computerized
information that either does not have a data model
 plain
text, audio
 Structured
data can be described by data model
 Flat
 Hierarchical
 Network
 Relational
 Dimensional
 Object-relational
Dennis Kafura – CS5204 – Operating Systems
2
BigTable
Relational Model and RDBMS
 most
popular model of organizing structured data
 model based on first-order predicate logic
 provides a declarative method for specifying data
and queries via SQL
 data is organized in tables of fixed-length records
 variety of open source and commercial
implementations
 provides ACID properties
Dennis Kafura – CS5204 – Operating Systems
33
BigTable
NoSQL
 not
relational database
 no
fixed table schemas
 no join operations
 no sql
 flexible
and/or no data model
 usually do not provide ACID properties
 scale horizontally
Dennis Kafura – CS5204 – Operating Systems
44
BigTable
BigTable
 distributed,
high performance, fault-tolerant, NoSql
storage system build on top of Google File System
 designed to scale to a very large size on low cost
commodity hardware
 it was designed by Google and used in various
projects (web indexing)
 the paper was published in 2006
 related implementations
 HBase
 Hypertable
 Apache
Cassandra
 Neptune
Dennis Kafura – CS5204 – Operating Systems
55
BigTable
BigTable Data Model
 sparse,
distributed, persistent multi-dimensional
sorted map
 map is indexed by a row key, column family,
column key, and a timestamp
{ row : {
column_family : {
column : {
timestamp : value
}
}
}

Dennis Kafura – CS5204 – Operating Systems
66
BigTable
Webtable
“contents”
“anchor:cnnsi.com
t6
“com.cnn.www”
“<html>...”
“CNN”
“anchor:my.look.ca”
t9
Dennis Kafura – CS5204 – Operating Systems
t9
“CNN.com”
77
BigTable
Relational Data Model
Student
StudentCourse
Course
student_id - PK
student_id
crn PK
first_name
crn
course
last_name
title
birthday
type
major
instructor_id
academic_level
seats
Dennis Kafura – CS5204 – Operating Systems
88
BigTable
Student table
Row Key
Column Family
Column Qualifier
student_id
Column Qualifier
info
course
last_name
<crn>
first_name
birthday
major
academic_level
Dennis Kafura – CS5204 – Operating Systems
9
BigTable
Course table
Row Key
Column Family
Column Qualifier
crn
Column Qualifier
info
students
course
<student_id>
title
type
instructor_id
seats
Dennis Kafura – CS5204 – Operating Systems
10
BigTable
Example
info:first_name
“905514”
“Sergejs”
info:course
“96322”
“CS5204”
info:last_name
“Melderis”
info:title
“Operating
Systems”
info:major
courses:96322
“Computer
Science”
info:instructor_id
“YES”
students:905514
“1983943”
Dennis Kafura – CS5204 – Operating Systems
“YES”
courses:96320
“NO”
students:905520
“YES”
11
11
BigTable
Students data view in JSON
{ 905514: {
info : {
first_name : { t1 : Sergejs },
last_name : { t1 : Melderis },
major : { t1 : Comp Science }
},
courses : {
96322: { t1 : “YES” },
96320: { t2 : “NO” }
}
}

Dennis Kafura – CS5204 – Operating Systems
12
12
BigTable
Rows
 row
keys are arbitrary strings up to 64 KB
 read and write of data under a single row is atomic
 ordered in lexicographic order by row key
 row range is dynamically partitioned into blocks
called tablets
 tablets are units of distribution and loadbalancing
Dennis Kafura – CS5204 – Operating Systems
13
13
BigTable
Columns
 Column
keys are grouped by column families
 Column family is a basic unit of access control
 All data stored in a column family is of the same
type
 Number of column families should be small
 There can be unlimited number of columns
 Column key is named using family:qualifier
Dennis Kafura – CS5204 – Operating Systems
14
14
BigTable
Timestamps
 Bigtable
can contain multiple versions of the same
data
 timestamps are 64-bit integers assigned by Bigtable
or client
 client can specify to keep up to n versions of data
Dennis Kafura – CS5204 – Operating Systems
15
15
BigTable
Implementation
 client
library
 one master server
 distributed lock service called Chubby
 many tablet servers containing several tablets
 tablet server
 handles
read and write requests
 automatically splits tablets that have grown too large
(100 - 200 MB)
 client
data directly goes to tablet server
Dennis Kafura – CS5204 – Operating Systems
16
16
BigTable
Tablet Location
 three-level
hierarchy to store tablet location
 first level is stored in lock service
 root tablet contains the location of metadata tables
 metadata tablets contain the location of user tables
UserTable1
METADATA
tablets
Root tablet
Lock Service
UserTable2
Dennis Kafura – CS5204 – Operating Systems
17
BigTable
Distribution of data
 One
master server
 Chubby distributed lock service
 Hundred or thousands of tablet servers
 Each tablet contains a contiguous range of rows
 Master distributes tablets across of servers
 Each tablet server contains tablets with different
ranges
Dennis Kafura – CS5204 – Operating Systems
18
18
BigTable
Tablet Representation
memtable
Read Op
Memory
GFS
tablet log
Write Op
SSTable
Dennis Kafura – CS5204 – Operating Systems
SSTable
19
19
BigTable
Compactions
 compaction
is a process of writing memtable to
SSTable
 minor compaction write memtable to SSTable
 shrinks
the memory usage of the tablet server
 reduces the commit log
 merging
compaction merges several SSTables
 major compaction rewrites all SSTables into exactly
one SSTable
Dennis Kafura – CS5204 – Operating Systems
20
20
BigTable
API
 create,
delete tables and column families
 write or delete values
 look up values from individual rows
 scan over a subset of the data in a table
Dennis Kafura – CS5204 – Operating Systems
21
21
BigTable
Dennis Kafura – CS5204 – Operating Systems
22
22
Download
Study collections