Balls in bins — where it appears
Named by 2 essays across one field — each of them below, with the objects they name alongside it.
Also named here as blocked filter — the same set of essays touches all of them, so they are one junction rather than several.
Positions confined to one line
A Bloom filter lookup reads 5.55 cache lines because its six positions are scattered across the whole filter. Confining them to a 512-bit block makes it exactly one, and costs 7% more false positives at eight bits a key. At sixteen bits a key the same block costs 91%, and the two-value trick that is free across a whole filter costs another 135% inside one — because a block is a small filter, and small filters are where the penalty lives.
Two blocks and the chances they add
Send each key to the emptier of two 512-bit blocks and the busiest block of a filter at sixteen bits a key holds 38 keys instead of 55. The false-positive rate does not move: 0.100% against 0.095%. At eight bits a key it doubles. A lookup cannot tell which block a key went to, so it has to ask both, and asking twice is two chances to be wrong. The repair that tames a hash table's worst bucket buys a filter nothing that a block twice as wide does not.
Named alongside it
The objects these essays reach for when they reach for this one.
Blocked filterBloom filterCacheDesign parameterFalse-positive rateLocalitySpace time tradeApproximate membershipDouble hashingHash functionHonest limitLoad balancing