{
  "slug": "daisy-bloom-filter",
  "term": "Daisy Bloom filter",
  "aliases": [],
  "definition": "A Daisy Bloom filter varies each key's hash-probe count using input and query distributions to reduce space under a query-weighted error bound.",
  "note": "Mechanism: Different keys can use different numbers of bit probes, including zero probes that always answer positive. Insertions and queries use the same per-key rule, preserving positive answers for inserted keys. [daisy-paper]\n\nError denominator: Definition 1 weights absent-key false positives by their probability among all queries. It does not divide by the probability of querying an absent key. Consequently, its bound is neither a per-key error bound nor necessarily the same percentage among negative queries. [daisy-paper]\n\nModel: The input set comes from n independent draws with replacement from P; queries follow Q. Theorem 4 assumes sum(p_x*q_x) <= epsilon/n and holds with high probability over the sampled sets. It bounds Daisy operations by ceil(log2(1/epsilon)); the separate constant-time construction is not the Daisy bit-array design. [daisy-paper]\n\nModel implication: The overlap condition also gives E[Pr(query is present)] <= n*sum(p_x*q_x) <= epsilon, by a union bound over sampled inputs. Hit-heavy synthetic examples illustrate denominator arithmetic, not typical inputs from this low-overlap model.\n\nAccounting: The analysis assumes constant-time access to distribution probabilities and excludes the oracle's storage. Practical comparisons must include that information and its lookup cost. [daisy-paper]",
  "citations": [
    {
      "id": "daisy-paper",
      "title": "Bercea, Houen and Pagh. Daisy Bloom Filters. SWAT 2024. DOI: 10.4230/LIPIcs.SWAT.2024.9. Definition 1, sections 1.1 and 5.",
      "url": "https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.SWAT.2024.9",
      "accessed": "2026-11-12"
    },
    {
      "id": "hesela-daisy",
      "title": "Hesela: Daisy filters and the error denominator",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#daisy-denominator",
      "accessed": "2026-11-12"
    }
  ],
  "related": [
    "bloom-filter",
    "learned-bloom-filter"
  ],
  "status": "research",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-12",
  "provenance": [
    "Primary-source synthesis of the published SWAT 2024 paper, not an implementation benchmark or a claim of production deployment.",
    "The linked worked example is synthetic denominator arithmetic, not execution of the Daisy construction. [hesela-daisy]"
  ]
}
