Data Placement in Linux: Evolving Block and File I/O
summary
Flexible Data Placement (FDP) gives the host explicit placement IDs so Linux can map files/IO to device reclaim units, reducing garbage-collection overhead. Kernel pieces: io_uring passthrough (merged 5.19) and a 6.16 block IO with per-IO write stream path that propagates a 0–255 stream ID through bio→blk→NVMe. Real deployment in Meta's Cachelib shows a device with 8 streams keeps write amplification near 1 (vs >3 when lifetimes mix) and sharply improves P99 latency.
AI-written summary · about
chapters (11)
- 0:00Data placement in Linux
- 1:02SSDs and data placement
- 8:14SSD physical data placement
- 11:07Garbage collection explained
- 17:12Streaming to reduce writes
- 20:06Flexible Data Placement (FDP)
- 24:42Kernel support for FDP
- 31:30Block I/O path in 6.16
- 34:26File I/O and FDP challenges
- 38:14FDP state and future
- 39:17Q&A
related talks
37mLarge Block I/O for Linux
19mI/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux
14mAdvancing Data Integrity in Linux
34mEnhancing Data Integrity in Linux
45mLinux Storage Stack Explained
47mEnabling Large Block Size devices in Linux
23mImproving data placement for Zoned Linux File systems
50mOverview of the Linux Storage Stack
