{
  "slug": "proteus-range-filter",
  "term": "Proteus range filter",
  "aliases": [
    "Proteus"
  ],
  "definition": "Proteus is an approximate range-emptiness filter that tunes a uniform-depth trie and a prefix Bloom filter using sampled queries.",
  "note": "Its CPFPR model chooses prefix lengths under a space budget; either component can receive the whole budget. The RocksDB integration selects each SST's design at construction, using a changing query sample. Updating that sample does not retune an already-built filter. [proteus-paper]\n\nThe pinned API uses an inclusive left bound and exclusive right bound. Its string Bloom path can conservatively include the right boundary. The getMemoryUsage method omits the prefix Bloom filter, so it is not total filter memory. [proteus-code]\n\nThe artifact uses RocksDB 6.20.3 and warns that its custom range-FPR statistics apply only to forward iterators. It also contains modeling changes made after the paper. [proteus-artifact]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "The workload-shift experiments interleave writes and filter reconstruction; they do not establish automatic adaptation for unchanged SSTs in a read-only workload.",
      "citationIds": [
        "proteus-paper"
      ]
    }
  ],
  "related": [
    "succinct-range-filter",
    "rosetta-range-filter",
    "grafite-range-filter",
    "prefix-bloom-filter",
    "sstable"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "proteus-paper",
      "title": "Knorr et al. Proteus: A Self-Designing Range Filter. SIGMOD 2022, pp. 1670-1684, sections 4 and 6. DOI: 10.1145/3514221.3526167.",
      "url": "https://people.iiis.tsinghua.edu.cn/~huanchen/publications/proteus-sigmod22.pdf",
      "accessed": "2026-11-10"
    },
    {
      "id": "proteus-code",
      "title": "Proteus author code: Query endpoint contract and getMemoryUsage; commit 7580c5b8d184afd19f3fdaf10f782344bdf552f5.",
      "url": "https://github.com/Erins-Ransom/Proteus/blob/7580c5b8d184afd19f3fdaf10f782344bdf552f5/include/proteus.hpp",
      "accessed": "2026-11-10"
    },
    {
      "id": "proteus-artifact",
      "title": "Proteus artifact README: post-paper modeling changes and forward-iterator FPR instrumentation; pinned commit 7580c5b8d184afd19f3fdaf10f782344bdf552f5.",
      "url": "https://github.com/Erins-Ransom/Proteus/blob/7580c5b8d184afd19f3fdaf10f782344bdf552f5/README.md",
      "accessed": "2026-11-10"
    },
    {
      "id": "hesela-proteus",
      "title": "Hesela: Proteus tuning, rebuilding and measurement boundaries",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#proteus-tuning",
      "accessed": "2026-11-10"
    }
  ],
  "updated": "2026-11-10",
  "provenance": [
    "Primary-source review of the SIGMOD paper and pinned author code; no Proteus execution or benchmark replication."
  ]
}
