{
  "slug": "secondary-range-delete",
  "term": "Secondary range delete",
  "aliases": [
    "secondary-attribute range deletion"
  ],
  "definition": "A secondary range delete selects records by an interval on an attribute other than the storage structure's sort key.",
  "note": "Illustration: records sorted by document ID can have timestamps 3, 9 and 4 in ID order. Deleting timestamps below 5 selects the first and third records, not one contiguous ID interval. A small result set can therefore occupy many pages.\n\nRocksDB DeleteRange accepts a range in the column family's key order. It does not turn an arbitrary value predicate into that range; application-side key discovery or a different layout is a separate step. [delete-range]\n\nLethe separates scheduling deletion with FADE from arranging data for secondary predicates with KiWi. Within a delete tile, pages follow the delete attribute while entries inside each page retain sort-key order. Fully qualifying pages can be dropped; mixed boundary pages still require inspection and rewriting. [lethe-project]\n\nThe 2023 Lethe+ extension uses KiWi+ to tune tile size per level. Larger tiles can favor secondary deletion while increasing point or short-range lookup work. This is a workload-dependent layout trade-off, not a general claim that secondary deletes are free. [lethe-plus]",
  "related": [
    "range-tombstone",
    "delete-persistence-latency",
    "lsm-tree",
    "sstable"
  ],
  "citations": [
    {
      "id": "delete-range",
      "title": "Madan and Kryczka. DeleteRange: A New Native RocksDB Operation (2018).",
      "url": "https://rocksdb.org/blog/2018/11/21/delete-range.html",
      "accessed": "2026-10-29"
    },
    {
      "id": "lethe-project",
      "title": "Boston University. Lethe: Enabling Efficient Deletes in LSMs; FADE and KiWi.",
      "url": "https://disc-projects.bu.edu/lethe/",
      "accessed": "2026-10-29"
    },
    {
      "id": "lethe-plus",
      "title": "Sarkar et al. Enabling Timely and Persistent Deletion in LSM-Engines. ACM TODS 48(3), Article 8 (2023), sections 4.2-4.3.",
      "url": "https://doi.org/10.1145/3599724",
      "accessed": "2026-10-29"
    },
    {
      "id": "lethe-plus-text",
      "title": "Sarkar et al. Author-hosted full text of the 2023 Lethe+ article.",
      "url": "https://ssd-brandeis.github.io/assets/pdf/Enabling_Timely_and_Persistent_Deletion_in_LSM-Engines.pdf",
      "accessed": "2026-10-29"
    },
    {
      "id": "hesela",
      "title": "Hesela. LSM tombstones: deleted is not yet reclaimed.",
      "url": "https://hesela.com/analyses/lsm-tombstones-delete-persistence/",
      "accessed": "2026-10-29"
    }
  ],
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "Removing database pages does not certify erasure of replicas, backups or remapped flash.",
      "citationIds": [
        "hesela"
      ]
    }
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-29",
  "provenance": [
    "The three-record example is a constructed illustration, not an engine trace or benchmark.",
    "The 2020 project explains KiWi; the 2023 journal extension adds per-level KiWi+. Their results are not treated as independent replications.",
    "The operation category is broader than either research implementation; the status field describes the layouts discussed here."
  ]
}
