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)\) |