{
  "slug": "tiered-compaction",
  "term": "Tiered compaction",
  "aliases": [
    "Size-tiered compaction"
  ],
  "definition": "Tiered compaction allows multiple sorted runs to accumulate and merges groups of runs into typically larger runs instead of maintaining one run at every tier.",
  "note": "Policies commonly group similarly sized runs; exact selection rules vary. Tiering generally reduces rewriting relative to leveling while retaining more runs to search and more obsolete data between merges. These are trade-offs, not fixed amplification factors. [rocks-compaction] Universal compaction is RocksDB's implementation in this family, not a synonym for every tiered policy. It selects runs consecutive in age order; one run can span several SST files. Its space trigger is an estimate, not a hard limit on disk use. [rocks-universal]",
  "related": [
    "lsm-tree",
    "compaction",
    "leveled-compaction",
    "read-amplification",
    "space-amplification"
  ],
  "citations": [
    {
      "id": "rocks-compaction",
      "title": "RocksDB project. Compaction: leveled, tiered and hybrid policies.",
      "url": "https://github.com/facebook/rocksdb/wiki/Compaction",
      "accessed": "2026-10-14"
    },
    {
      "id": "rocks-universal",
      "title": "RocksDB project. Universal Compaction: run selection, temporary space and amplification heuristic.",
      "url": "https://github.com/facebook/rocksdb/wiki/Universal-Compaction",
      "accessed": "2026-10-14"
    },
    {
      "id": "hesela",
      "title": "Hesela. Bloom filters: optimize the lookup, not each filter; compaction and measurement boundaries.",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/",
      "accessed": "2026-10-14"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-14"
}
