{
  "slug": "blocked-bloom-filter",
  "term": "Blocked Bloom filter",
  "aliases": [
    "Cache-local Bloom filter"
  ],
  "definition": "A Bloom-filter layout that confines the bit probes for a key to one selected block to improve memory locality.",
  "note": "Uneven block occupancy changes false-positive behavior; total fill alone is insufficient. Multiple-choice variants change both placement and lookup. [choices]\n\nParquet uses a specific split-block design: eight 32-bit words per block, with one selected bit per word. This is not an arbitrary set of independent addresses in a block. [parquet]\n\nHesela's finite examples explicitly model uniform one-block selection, not a production implementation. [hesela]",
  "related": [
    "bloom-filter",
    "partitioned-filter",
    "sstable"
  ],
  "citations": [
    {
      "id": "choices",
      "title": "Johanna Elena Schmitz, Jens Zentgraf and Sven Rahmann. Blocked Bloom Filters with Choices. SEA 2025, article 25, sections 3-4. DOI: 10.4230/LIPIcs.SEA.2025.25.",
      "url": "https://drops.dagstuhl.de/doi/10.4230/LIPIcs.SEA.2025.25",
      "accessed": "2026-10-17"
    },
    {
      "id": "parquet",
      "title": "Apache Parquet: Bloom Filter, Technical Approach.",
      "url": "https://parquet.apache.org/docs/file-format/bloomfilter/",
      "accessed": "2026-10-17"
    },
    {
      "id": "hesela",
      "title": "Hesela: finite Bloom probabilities and block load.",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#finite-probability",
      "accessed": "2026-10-17"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17"
}
