Overview
Syllabus
Intro
Recap: Compaction A RocksDB operation that merges SST files
Recap: Compaction Filter A customizable logic to delete key-value pairs during compaction
Lua Compaction Filter You can write Compaction Filters in Lua!
How to Use?
CPU Overhead CPU usage in one Facebook internal use case
Limitations
Time-series data
Writing a key
Insert into memtable
Reduce CPU usage for binary search
Benchmarks
Key Benefit
Usage Open the DB
Design Considerations
Benchmark - (WA)
Future work.
What is SeekForPrev?
Motivation
Basic Logic What you do previously to achieve same functionality
Implementation sketch
Direct 1/0
Write Path - Memtable
Write Path - Flush
Write Path - Compaction
Bulkload-Create SST file
Bulkloading - Level criteria
Bulkload - memtable conflict
Use cases
Shard Migration DB1
Import from Hadoop
Bulkload - Create SST file
Bulkload - Ingest SST file
Cloning a DB
Before WDT...
Facebook internal usage of WDT (cont.) Bytes per minute per use case
Java 8 Streams
Secret Sauce?
Iterlib::dynamic
Iterators
Taught by
Meta Developers