SlideShare a Scribd company logo
1 of 101
Download to read offline
The Story of RocksDB
Embedded Key-Value Store for Flash and RAM

Dhruba Borthakur & Haobo Xu
Database Engineering@Facebook
Monday, December 9, 13
Monday, December 9, 13
Monday, December 9, 13
A Client-Server Architecture with disks

Application Server

Network roundtrip =
50 micro sec

Database
Server
Disk access =
10 milli seconds

Locally attached Disks

Monday, December 9, 13
Client-Server Architecture with fast storage

Application Server

Network roundtrip =
50 micro sec

Database
Server

100

microsecs
SSD
Latency dominated by network

Monday, December 9, 13

100

nanosecs
RAM
Architecture of an Embedded Database

Application
Server

Monday, December 9, 13

Network roundtrip =
50 micro sec

Database
Server
Architecture of an Embedded Database

Application
Server

Monday, December 9, 13

Network roundtrip =
50 micro sec

Database
Server
Architecture of an Embedded Database

Network roundtrip =
50 micro sec

Application
Server

100

microsecs
SSD

Monday, December 9, 13

100

nanosecs
RAM

Database
Server
Architecture of an Embedded Database

Network roundtrip =
50 micro sec

Application
Server

100

microsecs
SSD

100

nanosecs
RAM
Storage attached directly to application servers

Monday, December 9, 13

Database
Server
Any pre-existing embedded databases?

Open
Source

Monday, December 9, 13

FB

Proprietary
Any pre-existing embedded databases?
Key-value stores
1.
2.
3.
4.

Berkeley DB
SQLite
Kyoto TreeDB
LevelDB

Open
Source

Monday, December 9, 13

FB

Proprietary
Any pre-existing embedded databases?
Key-value stores

Open
Source

1. High Performant
2. No transaction log
3. Fixed size keys

FB

Proprietary

Monday, December 9, 13
Comparison of open source databases

Monday, December 9, 13
Comparison of open source databases
Random Reads

Monday, December 9, 13
Comparison of open source databases
Random Reads

Random Writes

Monday, December 9, 13
Comparison of open source databases
Random Reads
LevelDB
Kyoto TreeDB
SQLite3

Random Writes

Monday, December 9, 13

129,000 ops/sec
151,000 ops/sec
134,000 ops/sec
Comparison of open source databases
Random Reads
LevelDB
Kyoto TreeDB
SQLite3

129,000 ops/sec
151,000 ops/sec
134,000 ops/sec

Random Writes
LevelDB
Kyoto TreeDB
SQLite3

Monday, December 9, 13

164,000 ops/sec
88,500 ops/sec
9,860 ops/sec
HBase and HDFS (in April 2012)

Details of this experiment:
http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html

Monday, December 9, 13
HBase and HDFS (in April 2012)
Random Reads

Details of this experiment:
http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html

Monday, December 9, 13
HBase and HDFS (in April 2012)
Random Reads
HDFS (1 node)
HBase (1 node)

93,000 ops/sec
35,000 ops/sec

Details of this experiment:
http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html

Monday, December 9, 13
Log Structured Merge Architecture

Read Write data
in RAM

Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Transaction log
Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Transaction log
Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Transaction log
Monday, December 9, 13
Log Structured Merge Architecture
Write Request from Application

Read Write data
in RAM

Read Only data in RAM on
disk
Monday, December 9, 13

Transaction log
Log Structured Merge Architecture
Write Request from Application

Periodic
Compaction

Read Write data
in RAM

Read Only data in RAM on
disk
Monday, December 9, 13

Transaction log
Log Structured Merge Architecture
Scan Request from Application

Periodic
Compaction

Read Write data
in RAM

Read Only data in RAM on
disk
Monday, December 9, 13

Write Request from Application

Transaction log
Leveldb has low write rates
Facebook Application 1:

• Write rate 2 MB/sec only per machine
• Only one cpu was used

Monday, December 9, 13
Leveldb has low write rates
Facebook Application 1:

• Write rate 2 MB/sec only per machine
• Only one cpu was used
We developed multithreaded compaction

10x

improvement on
write rate

Monday, December 9, 13

+

100%
of cpus are
in use
Leveldb has stalls
Facebook Feed:

• P99 latencies were tens of seconds
• Single-threaded compaction

Monday, December 9, 13
Leveldb has stalls
Facebook Feed:

• P99 latencies were tens of seconds
• Single-threaded compaction
We implemented thread aware compaction

Dedicated thread(s)
to flush memtable

Monday, December 9, 13

Pipelined memtables

P99 reduced to less
than a second
Leveldb has high write amplification
• Facebook Application 2:
• Level Style Compaction
• Write amplification of 70 very high

Monday, December 9, 13
Leveldb has high write amplification
• Facebook Application 2:
• Level Style Compaction
• Write amplification of 70 very high
Level-0

5 bytes

Level-1

6 bytes

11 bytes

Level-2

10 bytes

10 bytes

10 bytes

Stage 1

Stage 2

Stage 3

Two compactions by LevelDB Style Compaction

Monday, December 9, 13
Our solution: lower write amplification
• Facebook Application 2:
• We implemented Universal
Style Compaction
• Start from newest file,
include next file in
candidate set if

• Candidate set size >= size
of next file

Monday, December 9, 13
Our solution: lower write amplification
• Facebook Application 2:
• We implemented Universal
Style Compaction
• Start from newest file,
include next file in
candidate set if

• Candidate set size >= size
of next file

Level-0

5bytes

Level-1

6 bytes

Level-2

10 bytes

10 bytes

Stage 1

Stage 2

Single compaction by Universal Style Compaction

Write amplification reduced to <10
Monday, December 9, 13
Leveldb has high read amplification

Monday, December 9, 13
Leveldb has high read amplification
• Secondary Index Service:
• Leveldb does not use blooms for scans

Monday, December 9, 13
Leveldb has high read amplification
• Secondary Index Service:
• Leveldb does not use blooms for scans
• We implemented prefix scans
• Range scans within same key prefix
• Blooms created for prefix
• Reduces read amplification

Monday, December 9, 13
Leveldb: read modify write = 2X IOs

Monday, December 9, 13
Leveldb: read modify write = 2X IOs
• Counter increments
• Get value, value++, Put value
• Leveldb uses 2X IOPS

Monday, December 9, 13
Leveldb: read modify write = 2X IOs
• Counter increments
• Get value, value++, Put value
• Leveldb uses 2X IOPS

• We implemented MergeRecord
• Put “++” operation in MergeRecord
• Background compaction merges all MergeRecords
• Uses only 1X IOPS

Monday, December 9, 13
Leveldb has a Rigid Design

Monday, December 9, 13
Leveldb has a Rigid Design
• LevelDB Design
• Cannot tune system, fixed file sizes

Monday, December 9, 13
Leveldb has a Rigid Design
• LevelDB Design
• Cannot tune system, fixed file sizes

• We wanted a pluggable architecture
• Pluggable compaction filter, e.g. TimeToLive
• Pluggable memtable/sstable for RAM/Flash
• Pluggable Compaction Algorithm

Monday, December 9, 13
The Changes we did to LevelDB

Monday, December 9, 13
The Changes we did to LevelDB

Inherited from LevelDB

• Log Structured Merge DB
• Gets/Puts/Scans of keys
• Forward and Reverse Iteration

Monday, December 9, 13
The Changes we did to LevelDB

Inherited from LevelDB

• Log Structured Merge DB
• Gets/Puts/Scans of keys
• Forward and Reverse Iteration

Monday, December 9, 13

RocksDB

• 10X higher write rate
• Fewer stalls
• 7x lower write amplification
• Blooms for range scans
• Ability to avoid read-modify-write
• Optimizations for flash or RAM
• And many more…
RocksDB is born!
• Key-Value persistent store
• Embedded
• Optimized for fast storage
• Server workloads

Monday, December 9, 13
RocksDB is born!
• Key-Value persistent store
• Embedded
• Optimized for fast storage
• Server workloads

Monday, December 9, 13
What is it not?
• Not distributed
• No failover
• Not highly-available,
if machine dies you
lose your data

Monday, December 9, 13
What is it not?
• Not distributed
• No failover
• Not highly-available,
if machine dies you
lose your data

Monday, December 9, 13
RocksDB API
▪

Keys and values are arbitrary byte arrays.

▪

Data is stored sorted by key.

▪

The basic operations are Put(key,value), Get(key),
Delete(key) and Merge(key, delta)

▪

Forward and backward iteration is supported
over the data.

Monday, December 9, 13
RocksDB Architecture
Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
RocksDB Architecture
Write Request

Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
RocksDB Architecture
Write Request

Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
RocksDB Architecture
Memory
Write Request

Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
RocksDB Architecture
Memory
Write Request

Persistent Storage

Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Log Structured Merge Tree -- Writes
▪

Log Structured Merge Tree

▪

New Puts are written to memory and optionally
to transaction log

▪

Also can specify log write sync option for each
individual write

▪

We say RocksDB is optimized for writes, what
does this mean?

Monday, December 9, 13
RocksDB Write Path
Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
RocksDB Write Path
Write Request

Active
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Log Structured Merge Tree -- Reads
▪

Data could be in memory or on disk

▪

Consult multiple files to find the latest
instance of the key

▪

Use bloom filters to reduce IO

Monday, December 9, 13
RocksDB Read Path
Active
MemTable

log

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Memory
Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Memory

Persistent Storage

Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB: Open & Pluggable
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Transaction log
Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Transaction log
Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Transaction log
Monday, December 9, 13
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Memtable
format in RAM

Pluggable sst data format
on storage
Monday, December 9, 13

Transaction log
RocksDB: Open & Pluggable
Write Request from Application
Customizable
WAL
Blooms

Pluggable
Compaction

Pluggable
Memtable
format in RAM

Pluggable sst data format
on storage
Monday, December 9, 13

Transaction log
RocksDB: Open & Pluggable
Get or Scan Request from Application

Write Request from Application
Customizable
WAL

Blooms

Pluggable
Compaction

Pluggable
Memtable
format in RAM

Pluggable sst data format
on storage
Monday, December 9, 13

Transaction log
Example: Customizable WALogging
• In-house Replication solution wants to be able to
embed arbitrary blob in the rocksdb WAL stream for
log annotation
• Use Case: Indicate where a log record came from in
multi-master replication

• Solution:

Monday, December 9, 13

A Put that only speaks to the log
Example: Customizable WALogging
Active
MemTable
k1
Replication Layer
In one write batch:
PutLogData(“I came from Mars”)
Put(k1,v1)

Monday, December 9, 13

v1

log
“I came from Mars”
k1/v1
Example: Customizable WALogging
Active
MemTable
Write Request
Replication Layer
In one write batch:
PutLogData(“I came from Mars”)
Put(k1,v1)

Monday, December 9, 13

k1

v1

log
“I came from Mars”
k1/v1
Example: Pluggable SST format
• One Facebook use case needs extreme fast response
but could tolerate some loss of durability
• Quick hack: mount sst in tmpfs
• Still not performant:

• existing sst format is block based

• Solution:

A much simpler format that just stores
sorted key/value pairs sequentially

• no blocks, no caching, mmap the whole file
• build efficient lookup index on load
Monday, December 9, 13
Example: Blooms for MemTable
• Same use case, after we optimized sst access, memtable
lookup becomes a major cost in query
• Problem: Get needs to go through the memtable lookups
that eventually return no data

• Solution:

Monday, December 9, 13

Just add a bloom filter to memtable!
RocksDB Read Path
Blooms

Blooms

Active
MemTable

log

ReadOnly
MemTable

log
log
LSM

Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Blooms

Blooms

Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Memory
Blooms

Blooms

Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
RocksDB Read Path
Memory
Blooms

Blooms

Persistent Storage

Active
MemTable

log

ReadOnly
MemTable

log
log

Read Request
LSM
Flush

sst

sst

sst

sst

sst

sst

d

Blooms

Monday, December 9, 13

Compaction
Example: Pluggable memtable format
• Another Facebook use case has a distinct load phase
where no query is issued.
• Problem: write throughput is limited by single writer
thread

• Solution:

A new memtable representation that does
not keep keys sorted

Monday, December 9, 13
Example: Pluggable memtable format
Unsorted
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Sort,
Flush
sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Example: Pluggable memtable format
Write Request

Unsorted
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log
LSM

Sort,
Flush
sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Example: Pluggable memtable format
Write Request

Unsorted
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM

Sort,
Flush
sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Example: Pluggable memtable format
Memory
Write Request

Unsorted
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM

Sort,
Flush
sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Example: Pluggable memtable format
Memory
Write Request

Persistent Storage

Unsorted
MemTable

log

Switch

Switch

ReadOnly
MemTable

log
log

Read Request
LSM

Sort,
Flush
sst

sst

sst

sst

sst

sst

d

Monday, December 9, 13

Compaction
Possible workloads for RocksDB?
▪

Serving data to users via a website

▪

A spam detection backend that needs fast access to data

▪

A graph search query that needs to scan a dataset in realtime

▪

Distributed Configuration Management Systems

▪

Fast serve of Hive Data

▪

A Queue that needs a high rate of inserts and deletes

Monday, December 9, 13
Futures

Monday, December 9, 13
Futures
• Scale linearly with number of cpus
• 32, 64 or higher core machines
• ARM processors

Monday, December 9, 13
Futures
• Scale linearly with number of cpus
• 32, 64 or higher core machines
• ARM processors

• Scale linearly with storage iops
• Striped flash cards
• RAM & NVRAM storage

Monday, December 9, 13
Come Hack with us

Monday, December 9, 13
Come Hack with us
• RocksDB is Open Sourced
• http://rocksdb.org
• Developers group https://www.facebook.com/groups/rocksdb.dev/

Monday, December 9, 13
Come Hack with us
• RocksDB is Open Sourced
• http://rocksdb.org
• Developers group https://www.facebook.com/groups/rocksdb.dev/

• Help us HACK RocksDB

Monday, December 9, 13
Monday, December 9, 13

More Related Content

What's hot

Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Julien Le Dem
 
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark Summit
 
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and Cloud
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and CloudHBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and Cloud
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and CloudMichael Stack
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsAlluxio, Inc.
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafkaconfluent
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsSpark Summit
 
Optimizing Performance in Rust for Low-Latency Database Drivers
Optimizing Performance in Rust for Low-Latency Database DriversOptimizing Performance in Rust for Low-Latency Database Drivers
Optimizing Performance in Rust for Low-Latency Database DriversScyllaDB
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudNoritaka Sekiyama
 
Developing Scylla Applications: Practical Tips
Developing Scylla Applications: Practical TipsDeveloping Scylla Applications: Practical Tips
Developing Scylla Applications: Practical TipsScyllaDB
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
Iceberg: a fast table format for S3
Iceberg: a fast table format for S3Iceberg: a fast table format for S3
Iceberg: a fast table format for S3DataWorks Summit
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesYoshinori Matsunobu
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastDataWorks Summit
 
When is MyRocks good?
When is MyRocks good? When is MyRocks good?
When is MyRocks good? Alkin Tezuysal
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used forAljoscha Krettek
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesDatabricks
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 

What's hot (20)

Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013
 
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
 
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and Cloud
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and CloudHBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and Cloud
HBaseConAsia2018 Keynote 2: Recent Development of HBase in Alibaba and Cloud
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafka
 
Apache flink
Apache flinkApache flink
Apache flink
 
Top 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark ApplicationsTop 5 Mistakes When Writing Spark Applications
Top 5 Mistakes When Writing Spark Applications
 
Optimizing Performance in Rust for Low-Latency Database Drivers
Optimizing Performance in Rust for Low-Latency Database DriversOptimizing Performance in Rust for Low-Latency Database Drivers
Optimizing Performance in Rust for Low-Latency Database Drivers
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 
Developing Scylla Applications: Practical Tips
Developing Scylla Applications: Practical TipsDeveloping Scylla Applications: Practical Tips
Developing Scylla Applications: Practical Tips
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
Iceberg: a fast table format for S3
Iceberg: a fast table format for S3Iceberg: a fast table format for S3
Iceberg: a fast table format for S3
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
 
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
Flink Forward Berlin 2018: Stefan Richter - "Tuning Flink for Robustness and ...
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the Beast
 
When is MyRocks good?
When is MyRocks good? When is MyRocks good?
When is MyRocks good?
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 

Similar to Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook

How & When to Use NoSQL at Websummit Dublin
How & When to Use NoSQL at Websummit DublinHow & When to Use NoSQL at Websummit Dublin
How & When to Use NoSQL at Websummit DublinAmazon Web Services
 
Data Replication Options in AWS
Data Replication Options in AWSData Replication Options in AWS
Data Replication Options in AWSIrawan Soetomo
 
Mysql features for the enterprise
Mysql features for the enterpriseMysql features for the enterprise
Mysql features for the enterpriseGiuseppe Maxia
 
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...Brian Brazil
 
Ruby meetup 7_years_in_testing
Ruby meetup 7_years_in_testingRuby meetup 7_years_in_testing
Ruby meetup 7_years_in_testingDigital Natives
 
Relational Databases Utilising Amazon RDS - Technical 201
Relational Databases Utilising Amazon RDS - Technical 201Relational Databases Utilising Amazon RDS - Technical 201
Relational Databases Utilising Amazon RDS - Technical 201Amazon Web Services
 
AWS June Webinar Series - Getting Started: Amazon Redshift
AWS June Webinar Series - Getting Started: Amazon RedshiftAWS June Webinar Series - Getting Started: Amazon Redshift
AWS June Webinar Series - Getting Started: Amazon RedshiftAmazon Web Services
 
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB Day
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB DayChoosing the Right Database Service (김상필, 유타카 호시노) - AWS DB Day
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB DayAmazon Web Services Korea
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services 2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services PHP Conference Argentina
 
Escalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceEscalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceMatias Paterlini
 
AWS Summit 2013 | Singapore - Understanding AWS Storage Options
AWS Summit 2013 | Singapore - Understanding AWS Storage OptionsAWS Summit 2013 | Singapore - Understanding AWS Storage Options
AWS Summit 2013 | Singapore - Understanding AWS Storage OptionsAmazon Web Services
 
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Amazon Web Services
 
DAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceDAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceAmazon Web Services
 
The care and feeding of a MySQL database
The care and feeding of a MySQL databaseThe care and feeding of a MySQL database
The care and feeding of a MySQL databaseDave Stokes
 
Tuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy WorkloadTuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy WorkloadMarius Adrian Popa
 
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
2013 CPM Conference, Nov 6th, NoSQL Capacity Planningasya999
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity PlanningMongoDB
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your StartupAmazon Web Services
 

Similar to Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook (20)

How & When to Use NoSQL at Websummit Dublin
How & When to Use NoSQL at Websummit DublinHow & When to Use NoSQL at Websummit Dublin
How & When to Use NoSQL at Websummit Dublin
 
Data Replication Options in AWS
Data Replication Options in AWSData Replication Options in AWS
Data Replication Options in AWS
 
Mysql features for the enterprise
Mysql features for the enterpriseMysql features for the enterprise
Mysql features for the enterprise
 
How and when to use NoSQL
How and when to use NoSQLHow and when to use NoSQL
How and when to use NoSQL
 
Cassandra at scale
Cassandra at scaleCassandra at scale
Cassandra at scale
 
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
No C-QL (Or how I learned to stop worrying, and love eventual consistency) (N...
 
Ruby meetup 7_years_in_testing
Ruby meetup 7_years_in_testingRuby meetup 7_years_in_testing
Ruby meetup 7_years_in_testing
 
Relational Databases Utilising Amazon RDS - Technical 201
Relational Databases Utilising Amazon RDS - Technical 201Relational Databases Utilising Amazon RDS - Technical 201
Relational Databases Utilising Amazon RDS - Technical 201
 
AWS June Webinar Series - Getting Started: Amazon Redshift
AWS June Webinar Series - Getting Started: Amazon RedshiftAWS June Webinar Series - Getting Started: Amazon Redshift
AWS June Webinar Series - Getting Started: Amazon Redshift
 
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB Day
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB DayChoosing the Right Database Service (김상필, 유타카 호시노) - AWS DB Day
Choosing the Right Database Service (김상필, 유타카 호시노) - AWS DB Day
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services 2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
 
Escalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceEscalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP Conference
 
AWS Summit 2013 | Singapore - Understanding AWS Storage Options
AWS Summit 2013 | Singapore - Understanding AWS Storage OptionsAWS Summit 2013 | Singapore - Understanding AWS Storage Options
AWS Summit 2013 | Singapore - Understanding AWS Storage Options
 
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
Report from the Field on the PostgreSQL-compatible Edition of Amazon Aurora -...
 
DAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL PerformanceDAT316_Report from the field on Aurora PostgreSQL Performance
DAT316_Report from the field on Aurora PostgreSQL Performance
 
The care and feeding of a MySQL database
The care and feeding of a MySQL databaseThe care and feeding of a MySQL database
The care and feeding of a MySQL database
 
Tuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy WorkloadTuning Linux Windows and Firebird for Heavy Workload
Tuning Linux Windows and Firebird for Heavy Workload
 
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
2013 CPM Conference, Nov 6th, NoSQL Capacity Planning
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 

More from The Hive

"Responsible AI", by Charlie Muirhead
"Responsible AI", by Charlie Muirhead"Responsible AI", by Charlie Muirhead
"Responsible AI", by Charlie MuirheadThe Hive
 
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...The Hive
 
Digital Transformation; Digital Twins for Delivering Business Value in IIoT
Digital Transformation; Digital Twins for Delivering Business Value in IIoTDigital Transformation; Digital Twins for Delivering Business Value in IIoT
Digital Transformation; Digital Twins for Delivering Business Value in IIoTThe Hive
 
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18The Hive
 
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...The Hive
 
Data Science in the Enterprise
Data Science in the EnterpriseData Science in the Enterprise
Data Science in the EnterpriseThe Hive
 
AI in Software for Augmenting Intelligence Across the Enterprise
AI in Software for Augmenting Intelligence Across the EnterpriseAI in Software for Augmenting Intelligence Across the Enterprise
AI in Software for Augmenting Intelligence Across the EnterpriseThe Hive
 
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...The Hive
 
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell AutomationThe Hive
 
Social Impact & Ethics of AI by Steve Omohundro
Social Impact & Ethics of AI by Steve OmohundroSocial Impact & Ethics of AI by Steve Omohundro
Social Impact & Ethics of AI by Steve OmohundroThe Hive
 
The Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat SrinivasanThe Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat SrinivasanThe Hive
 
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...The Hive
 
The Hive Think Tank: The Future Of Customer Support - AI Driven Automation
The Hive Think Tank: The Future Of Customer Support - AI Driven AutomationThe Hive Think Tank: The Future Of Customer Support - AI Driven Automation
The Hive Think Tank: The Future Of Customer Support - AI Driven AutomationThe Hive
 
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...The Hive
 
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital Change
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital ChangeThe Hive Think Tank: The Content Trap - Strategist's Guide to Digital Change
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital ChangeThe Hive
 
Deep Visual Understanding from Deep Learning by Prof. Jitendra Malik
Deep Visual Understanding from Deep Learning by Prof. Jitendra MalikDeep Visual Understanding from Deep Learning by Prof. Jitendra Malik
Deep Visual Understanding from Deep Learning by Prof. Jitendra MalikThe Hive
 
The Hive Think Tank: Heron at Twitter
The Hive Think Tank: Heron at TwitterThe Hive Think Tank: Heron at Twitter
The Hive Think Tank: Heron at TwitterThe Hive
 
The Hive Think Tank: Unpacking AI for Healthcare
The Hive Think Tank: Unpacking AI for Healthcare The Hive Think Tank: Unpacking AI for Healthcare
The Hive Think Tank: Unpacking AI for Healthcare The Hive
 
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...The Hive
 
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...The Hive
 

More from The Hive (20)

"Responsible AI", by Charlie Muirhead
"Responsible AI", by Charlie Muirhead"Responsible AI", by Charlie Muirhead
"Responsible AI", by Charlie Muirhead
 
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...
Translating a Trillion Points of Data into Therapies, Diagnostics, and New In...
 
Digital Transformation; Digital Twins for Delivering Business Value in IIoT
Digital Transformation; Digital Twins for Delivering Business Value in IIoTDigital Transformation; Digital Twins for Delivering Business Value in IIoT
Digital Transformation; Digital Twins for Delivering Business Value in IIoT
 
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18
Quantum Computing (IBM Q) - Hive Think Tank Event w/ Dr. Bob Sutor - 02.22.18
 
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...
The Hive Think Tank: Rendezvous Architecture Makes Machine Learning Logistics...
 
Data Science in the Enterprise
Data Science in the EnterpriseData Science in the Enterprise
Data Science in the Enterprise
 
AI in Software for Augmenting Intelligence Across the Enterprise
AI in Software for Augmenting Intelligence Across the EnterpriseAI in Software for Augmenting Intelligence Across the Enterprise
AI in Software for Augmenting Intelligence Across the Enterprise
 
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...
“ High Precision Analytics for Healthcare: Promises and Challenges” by Sriram...
 
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation
"The Future of Manufacturing" by Sujeet Chand, SVP&CTO, Rockwell Automation
 
Social Impact & Ethics of AI by Steve Omohundro
Social Impact & Ethics of AI by Steve OmohundroSocial Impact & Ethics of AI by Steve Omohundro
Social Impact & Ethics of AI by Steve Omohundro
 
The Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat SrinivasanThe Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
The Hive Think Tank: AI in The Enterprise by Venkat Srinivasan
 
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...
The Hive Think Tank: Machine Learning Applications in Genomics by Prof. Jian ...
 
The Hive Think Tank: The Future Of Customer Support - AI Driven Automation
The Hive Think Tank: The Future Of Customer Support - AI Driven AutomationThe Hive Think Tank: The Future Of Customer Support - AI Driven Automation
The Hive Think Tank: The Future Of Customer Support - AI Driven Automation
 
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...
The Hive Think Tank: Talk by Mohandas Pai - India at 2030, How Tech Entrepren...
 
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital Change
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital ChangeThe Hive Think Tank: The Content Trap - Strategist's Guide to Digital Change
The Hive Think Tank: The Content Trap - Strategist's Guide to Digital Change
 
Deep Visual Understanding from Deep Learning by Prof. Jitendra Malik
Deep Visual Understanding from Deep Learning by Prof. Jitendra MalikDeep Visual Understanding from Deep Learning by Prof. Jitendra Malik
Deep Visual Understanding from Deep Learning by Prof. Jitendra Malik
 
The Hive Think Tank: Heron at Twitter
The Hive Think Tank: Heron at TwitterThe Hive Think Tank: Heron at Twitter
The Hive Think Tank: Heron at Twitter
 
The Hive Think Tank: Unpacking AI for Healthcare
The Hive Think Tank: Unpacking AI for Healthcare The Hive Think Tank: Unpacking AI for Healthcare
The Hive Think Tank: Unpacking AI for Healthcare
 
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...
The Hive Think Tank: Translating IoT into Innovation at Every Level by Prith ...
 
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...
The Hive Think Tank - The Microsoft Big Data Stack by Raghu Ramakrishnan, CTO...
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
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
 
🐬 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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook

  • 1. The Story of RocksDB Embedded Key-Value Store for Flash and RAM Dhruba Borthakur & Haobo Xu Database Engineering@Facebook Monday, December 9, 13
  • 4. A Client-Server Architecture with disks Application Server Network roundtrip = 50 micro sec Database Server Disk access = 10 milli seconds Locally attached Disks Monday, December 9, 13
  • 5. Client-Server Architecture with fast storage Application Server Network roundtrip = 50 micro sec Database Server 100 microsecs SSD Latency dominated by network Monday, December 9, 13 100 nanosecs RAM
  • 6. Architecture of an Embedded Database Application Server Monday, December 9, 13 Network roundtrip = 50 micro sec Database Server
  • 7. Architecture of an Embedded Database Application Server Monday, December 9, 13 Network roundtrip = 50 micro sec Database Server
  • 8. Architecture of an Embedded Database Network roundtrip = 50 micro sec Application Server 100 microsecs SSD Monday, December 9, 13 100 nanosecs RAM Database Server
  • 9. Architecture of an Embedded Database Network roundtrip = 50 micro sec Application Server 100 microsecs SSD 100 nanosecs RAM Storage attached directly to application servers Monday, December 9, 13 Database Server
  • 10. Any pre-existing embedded databases? Open Source Monday, December 9, 13 FB Proprietary
  • 11. Any pre-existing embedded databases? Key-value stores 1. 2. 3. 4. Berkeley DB SQLite Kyoto TreeDB LevelDB Open Source Monday, December 9, 13 FB Proprietary
  • 12. Any pre-existing embedded databases? Key-value stores Open Source 1. High Performant 2. No transaction log 3. Fixed size keys FB Proprietary Monday, December 9, 13
  • 13. Comparison of open source databases Monday, December 9, 13
  • 14. Comparison of open source databases Random Reads Monday, December 9, 13
  • 15. Comparison of open source databases Random Reads Random Writes Monday, December 9, 13
  • 16. Comparison of open source databases Random Reads LevelDB Kyoto TreeDB SQLite3 Random Writes Monday, December 9, 13 129,000 ops/sec 151,000 ops/sec 134,000 ops/sec
  • 17. Comparison of open source databases Random Reads LevelDB Kyoto TreeDB SQLite3 129,000 ops/sec 151,000 ops/sec 134,000 ops/sec Random Writes LevelDB Kyoto TreeDB SQLite3 Monday, December 9, 13 164,000 ops/sec 88,500 ops/sec 9,860 ops/sec
  • 18. HBase and HDFS (in April 2012) Details of this experiment: http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html Monday, December 9, 13
  • 19. HBase and HDFS (in April 2012) Random Reads Details of this experiment: http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html Monday, December 9, 13
  • 20. HBase and HDFS (in April 2012) Random Reads HDFS (1 node) HBase (1 node) 93,000 ops/sec 35,000 ops/sec Details of this experiment: http://hadoopblog.blogspot.com/2012/05/hadoop-and-solid-state-drives.html Monday, December 9, 13
  • 21. Log Structured Merge Architecture Read Write data in RAM Monday, December 9, 13
  • 22. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Monday, December 9, 13
  • 23. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Monday, December 9, 13
  • 24. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Monday, December 9, 13
  • 25. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Transaction log Monday, December 9, 13
  • 26. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Transaction log Monday, December 9, 13
  • 27. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Transaction log Monday, December 9, 13
  • 28. Log Structured Merge Architecture Write Request from Application Read Write data in RAM Read Only data in RAM on disk Monday, December 9, 13 Transaction log
  • 29. Log Structured Merge Architecture Write Request from Application Periodic Compaction Read Write data in RAM Read Only data in RAM on disk Monday, December 9, 13 Transaction log
  • 30. Log Structured Merge Architecture Scan Request from Application Periodic Compaction Read Write data in RAM Read Only data in RAM on disk Monday, December 9, 13 Write Request from Application Transaction log
  • 31. Leveldb has low write rates Facebook Application 1: • Write rate 2 MB/sec only per machine • Only one cpu was used Monday, December 9, 13
  • 32. Leveldb has low write rates Facebook Application 1: • Write rate 2 MB/sec only per machine • Only one cpu was used We developed multithreaded compaction 10x improvement on write rate Monday, December 9, 13 + 100% of cpus are in use
  • 33. Leveldb has stalls Facebook Feed: • P99 latencies were tens of seconds • Single-threaded compaction Monday, December 9, 13
  • 34. Leveldb has stalls Facebook Feed: • P99 latencies were tens of seconds • Single-threaded compaction We implemented thread aware compaction Dedicated thread(s) to flush memtable Monday, December 9, 13 Pipelined memtables P99 reduced to less than a second
  • 35. Leveldb has high write amplification • Facebook Application 2: • Level Style Compaction • Write amplification of 70 very high Monday, December 9, 13
  • 36. Leveldb has high write amplification • Facebook Application 2: • Level Style Compaction • Write amplification of 70 very high Level-0 5 bytes Level-1 6 bytes 11 bytes Level-2 10 bytes 10 bytes 10 bytes Stage 1 Stage 2 Stage 3 Two compactions by LevelDB Style Compaction Monday, December 9, 13
  • 37. Our solution: lower write amplification • Facebook Application 2: • We implemented Universal Style Compaction • Start from newest file, include next file in candidate set if • Candidate set size >= size of next file Monday, December 9, 13
  • 38. Our solution: lower write amplification • Facebook Application 2: • We implemented Universal Style Compaction • Start from newest file, include next file in candidate set if • Candidate set size >= size of next file Level-0 5bytes Level-1 6 bytes Level-2 10 bytes 10 bytes Stage 1 Stage 2 Single compaction by Universal Style Compaction Write amplification reduced to <10 Monday, December 9, 13
  • 39. Leveldb has high read amplification Monday, December 9, 13
  • 40. Leveldb has high read amplification • Secondary Index Service: • Leveldb does not use blooms for scans Monday, December 9, 13
  • 41. Leveldb has high read amplification • Secondary Index Service: • Leveldb does not use blooms for scans • We implemented prefix scans • Range scans within same key prefix • Blooms created for prefix • Reduces read amplification Monday, December 9, 13
  • 42. Leveldb: read modify write = 2X IOs Monday, December 9, 13
  • 43. Leveldb: read modify write = 2X IOs • Counter increments • Get value, value++, Put value • Leveldb uses 2X IOPS Monday, December 9, 13
  • 44. Leveldb: read modify write = 2X IOs • Counter increments • Get value, value++, Put value • Leveldb uses 2X IOPS • We implemented MergeRecord • Put “++” operation in MergeRecord • Background compaction merges all MergeRecords • Uses only 1X IOPS Monday, December 9, 13
  • 45. Leveldb has a Rigid Design Monday, December 9, 13
  • 46. Leveldb has a Rigid Design • LevelDB Design • Cannot tune system, fixed file sizes Monday, December 9, 13
  • 47. Leveldb has a Rigid Design • LevelDB Design • Cannot tune system, fixed file sizes • We wanted a pluggable architecture • Pluggable compaction filter, e.g. TimeToLive • Pluggable memtable/sstable for RAM/Flash • Pluggable Compaction Algorithm Monday, December 9, 13
  • 48. The Changes we did to LevelDB Monday, December 9, 13
  • 49. The Changes we did to LevelDB Inherited from LevelDB • Log Structured Merge DB • Gets/Puts/Scans of keys • Forward and Reverse Iteration Monday, December 9, 13
  • 50. The Changes we did to LevelDB Inherited from LevelDB • Log Structured Merge DB • Gets/Puts/Scans of keys • Forward and Reverse Iteration Monday, December 9, 13 RocksDB • 10X higher write rate • Fewer stalls • 7x lower write amplification • Blooms for range scans • Ability to avoid read-modify-write • Optimizations for flash or RAM • And many more…
  • 51. RocksDB is born! • Key-Value persistent store • Embedded • Optimized for fast storage • Server workloads Monday, December 9, 13
  • 52. RocksDB is born! • Key-Value persistent store • Embedded • Optimized for fast storage • Server workloads Monday, December 9, 13
  • 53. What is it not? • Not distributed • No failover • Not highly-available, if machine dies you lose your data Monday, December 9, 13
  • 54. What is it not? • Not distributed • No failover • Not highly-available, if machine dies you lose your data Monday, December 9, 13
  • 55. RocksDB API ▪ Keys and values are arbitrary byte arrays. ▪ Data is stored sorted by key. ▪ The basic operations are Put(key,value), Get(key), Delete(key) and Merge(key, delta) ▪ Forward and backward iteration is supported over the data. Monday, December 9, 13
  • 58. RocksDB Architecture Write Request Active MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 59. RocksDB Architecture Memory Write Request Active MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 60. RocksDB Architecture Memory Write Request Persistent Storage Active MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 61. Log Structured Merge Tree -- Writes ▪ Log Structured Merge Tree ▪ New Puts are written to memory and optionally to transaction log ▪ Also can specify log write sync option for each individual write ▪ We say RocksDB is optimized for writes, what does this mean? Monday, December 9, 13
  • 63. RocksDB Write Path Write Request Active MemTable log Switch Switch ReadOnly MemTable log log LSM Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 64. Log Structured Merge Tree -- Reads ▪ Data could be in memory or on disk ▪ Consult multiple files to find the latest instance of the key ▪ Use bloom filters to reduce IO Monday, December 9, 13
  • 66. RocksDB Read Path Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 67. RocksDB Read Path Memory Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 68. RocksDB Read Path Memory Persistent Storage Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 69. RocksDB: Open & Pluggable Customizable WAL Blooms Pluggable Memtable format in RAM Monday, December 9, 13
  • 70. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Monday, December 9, 13
  • 71. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Monday, December 9, 13
  • 72. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Monday, December 9, 13
  • 73. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Transaction log Monday, December 9, 13
  • 74. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Transaction log Monday, December 9, 13
  • 75. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Transaction log Monday, December 9, 13
  • 76. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Memtable format in RAM Pluggable sst data format on storage Monday, December 9, 13 Transaction log
  • 77. RocksDB: Open & Pluggable Write Request from Application Customizable WAL Blooms Pluggable Compaction Pluggable Memtable format in RAM Pluggable sst data format on storage Monday, December 9, 13 Transaction log
  • 78. RocksDB: Open & Pluggable Get or Scan Request from Application Write Request from Application Customizable WAL Blooms Pluggable Compaction Pluggable Memtable format in RAM Pluggable sst data format on storage Monday, December 9, 13 Transaction log
  • 79. Example: Customizable WALogging • In-house Replication solution wants to be able to embed arbitrary blob in the rocksdb WAL stream for log annotation • Use Case: Indicate where a log record came from in multi-master replication • Solution: Monday, December 9, 13 A Put that only speaks to the log
  • 80. Example: Customizable WALogging Active MemTable k1 Replication Layer In one write batch: PutLogData(“I came from Mars”) Put(k1,v1) Monday, December 9, 13 v1 log “I came from Mars” k1/v1
  • 81. Example: Customizable WALogging Active MemTable Write Request Replication Layer In one write batch: PutLogData(“I came from Mars”) Put(k1,v1) Monday, December 9, 13 k1 v1 log “I came from Mars” k1/v1
  • 82. Example: Pluggable SST format • One Facebook use case needs extreme fast response but could tolerate some loss of durability • Quick hack: mount sst in tmpfs • Still not performant: • existing sst format is block based • Solution: A much simpler format that just stores sorted key/value pairs sequentially • no blocks, no caching, mmap the whole file • build efficient lookup index on load Monday, December 9, 13
  • 83. Example: Blooms for MemTable • Same use case, after we optimized sst access, memtable lookup becomes a major cost in query • Problem: Get needs to go through the memtable lookups that eventually return no data • Solution: Monday, December 9, 13 Just add a bloom filter to memtable!
  • 85. RocksDB Read Path Blooms Blooms Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 86. RocksDB Read Path Memory Blooms Blooms Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 87. RocksDB Read Path Memory Blooms Blooms Persistent Storage Active MemTable log ReadOnly MemTable log log Read Request LSM Flush sst sst sst sst sst sst d Blooms Monday, December 9, 13 Compaction
  • 88. Example: Pluggable memtable format • Another Facebook use case has a distinct load phase where no query is issued. • Problem: write throughput is limited by single writer thread • Solution: A new memtable representation that does not keep keys sorted Monday, December 9, 13
  • 89. Example: Pluggable memtable format Unsorted MemTable log Switch Switch ReadOnly MemTable log log LSM Sort, Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 90. Example: Pluggable memtable format Write Request Unsorted MemTable log Switch Switch ReadOnly MemTable log log LSM Sort, Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 91. Example: Pluggable memtable format Write Request Unsorted MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Sort, Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 92. Example: Pluggable memtable format Memory Write Request Unsorted MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Sort, Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 93. Example: Pluggable memtable format Memory Write Request Persistent Storage Unsorted MemTable log Switch Switch ReadOnly MemTable log log Read Request LSM Sort, Flush sst sst sst sst sst sst d Monday, December 9, 13 Compaction
  • 94. Possible workloads for RocksDB? ▪ Serving data to users via a website ▪ A spam detection backend that needs fast access to data ▪ A graph search query that needs to scan a dataset in realtime ▪ Distributed Configuration Management Systems ▪ Fast serve of Hive Data ▪ A Queue that needs a high rate of inserts and deletes Monday, December 9, 13
  • 96. Futures • Scale linearly with number of cpus • 32, 64 or higher core machines • ARM processors Monday, December 9, 13
  • 97. Futures • Scale linearly with number of cpus • 32, 64 or higher core machines • ARM processors • Scale linearly with storage iops • Striped flash cards • RAM & NVRAM storage Monday, December 9, 13
  • 98. Come Hack with us Monday, December 9, 13
  • 99. Come Hack with us • RocksDB is Open Sourced • http://rocksdb.org • Developers group https://www.facebook.com/groups/rocksdb.dev/ Monday, December 9, 13
  • 100. Come Hack with us • RocksDB is Open Sourced • http://rocksdb.org • Developers group https://www.facebook.com/groups/rocksdb.dev/ • Help us HACK RocksDB Monday, December 9, 13