{
  "slug": "cuckoo-filter",
  "term": "Cuckoo filter",
  "aliases": [
    "Cuckoo membership filter"
  ],
  "definition": "A cuckoo filter is an approximate-membership structure that stores short fingerprints in candidate buckets and supports insertion, lookup and deletion subject to its update contract.",
  "note": "A positive lookup is not proof that a key has an outstanding insertion: deleting an absent or already-deleted key can remove another key's fingerprint and cause false negatives. [redis-cf-delete] Preserving one fingerprint per successful insertion allows a legitimate deletion to retain a colliding live key. [cuckoo-paper] Positive-only insertion suppression is also unsafe when later deletions must preserve distinct keys. [redis-cf-addnx] Our pinned-library experiment forces collisions; it does not measure their frequency or reproduce the paper's benchmarks. [hesela-cuckoo]",
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "related": [
    "bloom-filter",
    "ribbon-filter",
    "lsm-tree"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-16",
  "citations": [
    {
      "id": "cuckoo-paper",
      "title": "Bin Fan, David G. Andersen, Michael Kaminsky and Michael D. Mitzenmacher. Cuckoo Filter: Practically Better Than Bloom. CoNEXT 2014, section 3. DOI: 10.1145/2674005.2674994.",
      "url": "https://www.cs.cmu.edu/~binfan/papers/conext14_cuckoofilter.pdf",
      "accessed": "2026-10-16"
    },
    {
      "id": "cuckoo-code",
      "title": "efficient/cuckoofilter, commit 917583d6abef692dfa8e14453bd77d6e0b61eef3. CuckooFilter Add, Contain, Delete and victim-cache accounting.",
      "url": "https://github.com/efficient/cuckoofilter/blob/917583d6abef692dfa8e14453bd77d6e0b61eef3/src/cuckoofilter.h",
      "accessed": "2026-10-16"
    },
    {
      "id": "redis-cf-delete",
      "title": "Redis command reference. CF.DEL: deletion precondition and false-negative warning. Documentation review, not a Redis execution test.",
      "url": "https://redis.io/docs/latest/commands/cf.del/",
      "accessed": "2026-10-16"
    },
    {
      "id": "redis-cf-addnx",
      "title": "Redis command reference. CF.ADDNX: fingerprint matches can suppress insertion. Documentation review, not a Redis execution test.",
      "url": "https://redis.io/docs/latest/commands/cf.addnx/",
      "accessed": "2026-10-16"
    },
    {
      "id": "hesela-cuckoo",
      "title": "Hesela. Cuckoo deletion contracts, controlled-collision experiment and reproduction instructions.",
      "url": "https://hesela.com/analyses/bloom-filters-lsm-read-cost/#cuckoo-deletion",
      "accessed": "2026-10-16"
    }
  ]
}
