SlideShare une entreprise Scribd logo
1  sur  101
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...Ontico
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
One sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkOne sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkFlink Forward
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerMongoDB
 
Batch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergBatch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergFlink Forward
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in KafkaJoel Koshy
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...HostedbyConfluent
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
 
Rocks db state store in structured streaming
Rocks db state store in structured streamingRocks db state store in structured streaming
Rocks db state store in structured streamingBalaji Mohanam
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...DataStax
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsAlexander Korotkov
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkFlink Forward
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...confluent
 
Power of the Log: LSM & Append Only Data Structures
Power of the Log: LSM & Append Only Data StructuresPower of the Log: LSM & Append Only Data Structures
Power of the Log: LSM & Append Only Data Structuresconfluent
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 

Tendances (20)

Log Structured Merge Tree
Log Structured Merge TreeLog Structured Merge Tree
Log Structured Merge Tree
 
Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...Understanding and tuning WiredTiger, the new high performance database engine...
Understanding and tuning WiredTiger, the new high performance database engine...
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
LSM Trees
LSM TreesLSM Trees
LSM Trees
 
One sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async SinkOne sink to rule them all: Introducing the new Async Sink
One sink to rule them all: Introducing the new Async Sink
 
Deep Dive on Amazon Aurora
Deep Dive on Amazon AuroraDeep Dive on Amazon Aurora
Deep Dive on Amazon Aurora
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
 
Batch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & IcebergBatch Processing at Scale with Flink & Iceberg
Batch Processing at Scale with Flink & Iceberg
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in Kafka
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptx
 
Rocks db state store in structured streaming
Rocks db state store in structured streamingRocks db state store in structured streaming
Rocks db state store in structured streaming
 
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
The Missing Manual for Leveled Compaction Strategy (Wei Deng & Ryan Svihla, D...
 
Solving PostgreSQL wicked problems
Solving PostgreSQL wicked problemsSolving PostgreSQL wicked problems
Solving PostgreSQL wicked problems
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
Kafka Cluster Federation at Uber (Yupeng Fui & Xiaoman Dong, Uber) Kafka Summ...
 
Power of the Log: LSM & Append Only Data Structures
Power of the Log: LSM & Append Only Data StructuresPower of the Log: LSM & Append Only Data Structures
Power of the Log: LSM & Append Only Data Structures
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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...
 

Dernier

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Dernier (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

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