While applications typically perform work only on user requests, storage systems execute additional behind-the-scenes tasks. These include indexing for fast data retrieval, crash recovery, and supporting concurrent transactions. This extra work incurs costs: a simple read might require fetching multiple data blocks, while an update can trigger several writes.
Maintaining high availability also demands more physical storage than the dataset's actual size. These discrepancies are categorized as read amplification, write amplification, and space amplification. This article explores these concepts in depth, covering their manifestations in B-trees and LSM trees, how indexes and filters optimize reads, the role of compression and caching, and the overall impact of these amplifications on database performance.
Source: ByteByteGo · Summarized by HeadlinesBriefing