Bloom Filters particularly suit network devices, because of their low theoretical memory-access rates. However, in practice, since memory is often divided into blocks and Bloom Filters hash elements into several arbitrary memory blocks, Bloom Filters actually need high memory-access rates. Unfortunately, a simple solution of hashing all Bloom Filter elements into a single memory block yields high false positive rates. In this paper, we propose to implement load-balancing schemes for the choice of the memory block, along with an optional overflow list, resulting in better false positive rates while keeping a high memory-access efficiency. To study this problem, we define, analyze and solve a fundamental access-constrained balancing problem, where incoming elements need to be optimally balanced across resources while satisfying average and instantaneous constraints on the number of memory accesses associated with checking the current load of the resources. We then use these results and suggest a new access-efficient Bloom Filter scheme in networking devices, called the Balanced Bloom Filter. Finally, we show that with a worst-case operation cost of up to 3 memory accesses for each element and an overflow list size of at most 0.5% of the elements, our scheme can reduce the false positive rate by up to two orders of magnitude compared to a filter that hashes all elements into a single memory block.
Bibliographical noteFunding Information:
The work was partly supported by the European Research Council Starting Grant no 210389 , the European Research Council Starting Grant no 259085 , the Alon Fellowship , the ATS-WD Career Development Chair , the Loewengart Research Fund , the Intel ICRI-CI Center , and the Israeli Centers of Research Excellence (I-CORE) program, (Center No. 4/11).
- Bloom Filters
- High-speed networks