Skip to main content

Table 1 Comparative characteristics of Bloom filters and Cuckoo filters (Notation: m≡number of buckets for Cuckoo or size of the array for Bloom; n≡number of items; b≡bucket size for Cuckoo; α≡load factor 0 ≤ α ≤ 1; k≡number of hash functions; f≡fingerprint length in bits for Cuckoo; n/a≡not applicable)

From: Performance evaluation of Cuckoo filters as an enhancement tool for password cracking

 

Standard Bloom filter

Cuckoo filter

Lookup operation

O(k)

O(1)

maximum of two buckets to check

Insert operation

O(k)

O(1)

longer as load factor approaches capacity

Delete operation

N/a

O(1)

maximum of two buckets to inspect

Number of hash functions kopt

\(\left( {\frac{m}{n}} \right) \cdot {\text{ln 2}}\)

to minimize false positive rate

2

to achieve the close-to-best space efficiency for the most common acceptable false positive rate

Minimal fingerprint size (bits)

N/a

\(\left\lceil {\log _{2} \left( {\frac{1}{{\varepsilon _{{Cuckoo\;filter}} }}} \right) + \log _{2} \left( {2b} \right)} \right\rceil\)

Best number of entries per bucket b

N/a

4

to achieve the close-to-best space efficiency for the most common acceptable false positive rate

Bits per item (load factor = 95.5%)

\(1.44\log _{2} \left( {\frac{1}{{\varepsilon _{{Bloom\,filter}} }}} \right)\)

\(1.05\left( {\log _{2} \left( {\frac{1}{{\varepsilon _{{Cuckoo\;filter}} }}} \right) + \log _{2} \left( {2b} \right)} \right)\)