On Adding Bloom Filters to Longest Prefix Matching Algorithms Author: Hyesook Lim, Kyuhee Lim, Nara Lee, and Kyong-hye Park Publisher: IEEE TRANSACTIONS ON COMPUTERS Presenter: Yuen-Shuo Li Date: 2012/09/17
Outline Idea Bloom Filter Parallel Multiple-Hashing Binary Search on Trie Levels Performance Conclusion
Idea
Bloom Filter(1/4) used to test whether an element is a member of a set have a strong space and time advantage Elements can be added to the set, but not removed FAST!
Bloom Filter(2/4) positive may be wrong! False positives retrieval results are possible. But false negatives are not. positive may be wrong!
Bloom Filter(3/4) a bit-vector multiple hash function
Bloom Filter(4/4) 𝑘= 𝑚 2 log 2 𝑛 ln 2 k: hash functions m: array size It is important to properly control the rate of the false positive in designing a Bloom filter. k: hash functions m: array size n: element size 𝑘= 𝑚 2 log 2 𝑛 ln 2
Parallel Multiple-Hashing(1/3) parallel hashing for each prefix length use multiple-hash functions to reduce collisions
Parallel Multiple-Hashing(2/3) Adding a Bloom Filter to reduce the implementation complexity
Parallel Multiple-Hashing(3/3) reduce the implementation complexity parallel is not necessary since filter filters out the length of the input
Binary Search on Trie Levels(1/4) separates the binary trie, according to the level of the trie markers are pre-computed in the internal nodes
Binary Search on Trie Levels(2/4) for a 6-bit input 111000 P5 done! not match
Binary Search on Trie Levels(3/4) Bloom filter filters out each input that does not have a node in the binary trie
Binary Search on Trie Levels(4/4) Leaf-Pushed Trie uses leaf-pushing to make every prefix disjoint finishes a search when a match to a prefix occurs
Performance search performance with and without Bloom filter for PMH
Performance search performance with and without Bloom filter for W-BSL
Performance search performance with and without Bloom filter for L-BSL
Conclusion Bloom filter is a simple but extremely powerful data structure that will improve the performance.
Thanks