{
  "slug": "succinct-range-filter",
  "term": "Succinct range filter",
  "aliases": [
    "SuRF"
  ],
  "definition": "An approximate point-and-range membership structure based on a truncated order-preserving Fast Succinct Trie.",
  "note": "The SIGMOD 2018 SuRF design is static. Real-key suffix bits assist range filtering, whereas hash suffix bits refine point tests without encoding order. A positive range answer still needs verification against stored keys. [surf]",
  "related": [
    "bloom-filter",
    "prefix-bloom-filter"
  ],
  "citations": [
    {
      "id": "surf",
      "title": "Huanchen Zhang et al. SuRF: Practical Range Query Filtering with Fast Succinct Tries. SIGMOD 2018, 323-336, sections 3, 5 and 6. DOI: 10.1145/3183713.3196931.",
      "url": "https://www.cs.cmu.edu/~huanche1/publications/surf_paper.pdf",
      "accessed": "2026-10-13"
    },
    {
      "id": "hesela",
      "title": "Hesela: filter predicates, prefix correctness and SuRF boundaries",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#predicates",
      "accessed": "2026-10-13"
    }
  ],
  "status": "research",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-13"
}
