A Bloom-style approximate-membership filter that also supports delete โ fingerprints live in one of two buckets and get kicked around when things get tight.
f of a few bits. Two candidate buckets: iโ = h(x) & (m โ 1) and iโ = iโ โ h(f). Note iโ = iโ โ h(f), so from either bucket you can find the other without knowing x โ that's what makes eviction and deletion work. This XOR trick only preserves the round-trip when m is a power of two, which is why the picker snaps to one.MaxKicks; if that fails, the filter is effectively full.2b/2แถ โ bigger fingerprints or fewer slots-per-bucket = fewer false positives. Practical load factor before insert failure hovers around 95 % at b = 4.