Write Amplification
In plain English
Plain definition
The multiplier between how much data an application logically writes and how much data physically gets written to disk once you account for compaction, journaling, and flash garbage collection.
Write amplification (WA) arises at multiple layers of the storage stack simultaneously, and the layers compound multiplicatively rather than additively. At the database engine layer, LSM Trees incur WA through compaction: a single logical key update may be rewritten across L0 through Ln during merge cycles, with leveled compaction commonly producing WA factors of 10-30x depending on the size-tier ratio. At the filesystem/block layer, copy-on-write systems and journaling filesystems rewrite metadata blocks on every commit. At the physical media layer, NAND flash SSDs impose their own WA because the erase block granularity (typically 256KB-4MB) is far larger than the write granularity (4KB pages), forcing the Flash Translation Layer (FTL) to perform garbage collection that relocates live pages before erasing a block.
These layers stack: an application write of 1KB might trigger a 4x WA in the LSM engine due to compaction, a further 1.2x from filesystem journaling, and a further 3x from SSD garbage collection under high fill-factor conditions — yielding an aggregate WA well above 10x. This is why capacity planning based purely on logical dataset size chronically underestimates required I/O bandwidth and device endurance (TBW/DWPD ratings). Systems engineers must model WA explicitly when sizing NVMe fleets for write-heavy workloads (e.g., Kafka log segments, Cassandra/ScyllaDB SSTables, RocksDB-backed services).
Mitigation strategies operate at each layer independently. At the engine level, tiered compaction trades higher read amplification and space amplification for lower WA compared to leveled compaction — a classic three-way tradeoff (RUM conjecture: Read, Update, Memory). Techniques like Key-Value Separation (as in WiscKey/Badger) reduce WA by avoiding rewriting large values during compaction of the LSM index. At the SSD layer, over-provisioning spare area, aligning write patterns to erase-block boundaries, and using TRIM/discard to inform the FTL of dead pages all reduce garbage collection overhead. Host-managed SSDs and Zoned Namespace (ZNS) devices push erase-block awareness up to the application, letting an LSM engine write sequentially per-zone and eliminate FTL-level GC entirely, collapsing two layers of amplification into one controllable layer.
The operational failure mode is treating WA as a static constant rather than a function of workload shape, fill factor, and compaction strategy — a system provisioned at 70% capacity with WA=5x can silently degrade to WA=15x once fragmentation and fill factor cross a threshold, producing a write-cliff that manifests as p99 latency collapse under otherwise unchanged logical throughput. Any capacity or endurance model that ignores WA as workload-dependent will fail precisely when the system is under the most pressure.