MySQL + RocksDB For Better Storage Efficiency Than InnoDB

XLDB 2015 Lightning Talk Siying Dong, Software Engineer Engineering Team @ Facebook Website Architecture

Data center Web servers

Caches

MySQL Facebook Website Architecture

Data center Web servers

Caches

MySQL Databases

SSD s Facebook Website Architecture

Data center Web servers

Caches

▪ SSD Capacity is the bottleneck

MySQL ▪ Also want to write fewer Databases bytes to SSDs

SSD s MySQL + RocksDB (MyRocks)

▪ RocksDB

▪ Embedded persistent key-value store

▪ Log-Structure-Merge tree

▪ Open-Sourced

▪ RocksDB Storage Engine in MySQL https://github.com/MySQLOnRocksDB/mysql-5.6 InnoDB vs. RocksDB Storage Engines DB Size (GB) Cumulative GB Written 2500 7000 InnoDB 6000 2000 RocksDB 5000 1500 4000 1000 3000

GB Written GB 2000 500 1000 0 0 InnoDB RocksDB Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 ▪ Workload: Data (Edges + Vertexes)

▪ RocksDB: zlib compression from L3 InnoDB: edges use zlib, vertexes are pre-compressed. Lower Space Amplification

Uncompressed 16KB page Row Row Wasted Row Level 0 Compressed to 5KB

Level 1 Target 1GB Row

Row s

t Wasted a

l

e Level 2 Target 10 GB Row

Using 8KB space s

t a Target 100 GB on storage l Level 3

e

Row

s s s s

Row t t t t Waste a a a a

l l Level 4 l l Wasted e e e e Row Target 1000 GB 4KB 4KB Lower Write Amplification (Worst Case) Write amp 1

f

l

u

s

h Level 0

Row Row Write Amp 10

M

Row e

r Row g Level 1 Target 1GB Modify e Row Row Write Amp 10

Row

Row e

r

g Level 2 Target 10 GB

e Row Row Write Amp 10

M

Read Write e

r Target 100 GB g Level 3

e

Write Amp 10

M

e

Write Amp = Page size / row size r g Level 4

e

Target 1000 GB Conclusion

▪ Current bottlenecks of our MySQL databases:

▪ disk capacity

▪ bytes written

▪ MySQL + RocksDB vs. InnoDB

▪ compresses better

▪ writes less data to storage devices

▪ We anticipate RocksDB will be able to replace many uses of InnoDB after some more work () 2009 Facebook, Inc. or its licensors. "Facebook" is a registered trademark of Facebook, Inc.. All rights reserved. 1.0