Fast and deterministic hash table lookup using discriminative bloom filters

Hash tables are widely used in network applications, as they can achieve O(1) query, insert, and delete operations at moderate loads. However, at high loads, collisions are prevalent in the table, which increases the access time and induces non-deterministic performance. Slow rates and non-determinism can considerably hurt the performance and scalability of hash tables in the multi-threaded parallel systems such as ASIC/FPGA and multi-core. So it is critical to keep the hash operations faster and more deterministic. This paper presents a novel fast collision-free hashing scheme using Discriminative Bloom Filters (DBFs) to achieve fast and deterministic hash table lookup. DBF is a compact summary stored in on-chip memory. It is composed of an array of parallel Bloom filters organized by the discriminator. Each element lookup performs parallel membership checks on the on-chip DBF to produce a possible discriminator value. Then, the element plus the discriminator value is hashed to a possible bucket in an off-chip hash table for validating the match. This DBF-based scheme requires one off-chip memory access per lookup as well as less off-chip memory usage. Experiments show that our scheme achieves up to 8.5-fold reduction in the number of off-chip memory accesses per lookup than previous schemes.

[1]  Haoyu Song,et al.  Fast hash table lookup using extended bloom filter: an aid to network processing , 2005, SIGCOMM '05.

[2]  Sarang Dharmapurikar,et al.  Longest prefix matching using bloom filters , 2006, IEEE/ACM Transactions on Networking.

[3]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

[4]  George Varghese,et al.  Building a better NetFlow , 2004, SIGCOMM 2004.

[5]  Cristian Estan,et al.  New directions in traffic measurement and accounting , 2001, IMW '01.

[6]  Rasmus Pagh,et al.  Cuckoo Hashing , 2001, Encyclopedia of Algorithms.

[7]  Eli Upfal,et al.  Balanced Allocations , 1999, SIAM J. Comput..

[8]  Michael Mitzenmacher,et al.  The Power of One Move: Hashing Schemes for Hardware , 2008, IEEE/ACM Transactions on Networking.

[9]  Bernard Chazelle,et al.  The Bloomier filter: an efficient data structure for static support lookup tables , 2004, SODA '04.

[10]  Rabi N. Mahapatra,et al.  A Memory-Efficient Hashing by Multi-Predicate Bloom Filters for Packet Classification , 2008, IEEE INFOCOM 2008 - The 27th Conference on Computer Communications.

[11]  John W. Lockwood,et al.  Deep packet inspection using parallel Bloom filters , 2003, 11th Symposium on High Performance Interconnects, 2003. Proceedings..

[12]  Nan Hua,et al.  Rank-indexed hashing: A compact construction of Bloom filters and variants , 2008, 2008 IEEE International Conference on Network Protocols.

[13]  Stefano Giordano,et al.  MultiLayer Compressed Counting Bloom Filters , 2008, IEEE INFOCOM 2008 - The 27th Conference on Computer Communications.

[14]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[15]  Michael Mitzenmacher,et al.  Simple Summaries for Hashing With Choices , 2008, IEEE/ACM Transactions on Networking.

[16]  David E. Taylor,et al.  Longest prefix matching using bloom filters , 2006, TNET.

[17]  George Varghese,et al.  An Improved Construction for Counting Bloom Filters , 2006, ESA.

[18]  Alan M. Frieze,et al.  An Analysis of Random-Walk Cuckoo Hashing , 2009, APPROX-RANDOM.

[19]  Stefano Giordano,et al.  Divide and discriminate: algorithm for deterministic and fast hash lookups , 2009, ANCS '09.

[20]  Patrick Crowley,et al.  HEXA: Compact Data Structures for Faster Packet Processing , 2007, 2007 IEEE International Conference on Network Protocols.

[21]  Venkatachary Srinivasan,et al.  Packet classification using tuple space search , 1999, SIGCOMM '99.

[22]  George Varghese,et al.  Scalable packet classification , 2001, SIGCOMM 2001.

[23]  George Varghese,et al.  Beyond bloom filters: from approximate membership checks to approximate state machines , 2006, SIGCOMM.

[24]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.

[25]  Eli Upfal,et al.  Balanced allocations (extended abstract) , 1994, STOC '94.

[26]  Patrick Crowley,et al.  Peacock Hashing: Deterministic and Updatable Hashing for High Performance Networking , 2008, IEEE INFOCOM 2008 - The 27th Conference on Computer Communications.

[27]  Lakhmi C. Jain,et al.  Network and information security: A computational intelligence approach: Special Issue of Journal of Network and Computer Applications , 2007, J. Netw. Comput. Appl..

[28]  B. Vocking How asymmetry helps load balancing , 1999, 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039).

[29]  Andrei Z. Broder,et al.  Using multiple hash functions to improve IP lookups , 2001, Proceedings IEEE INFOCOM 2001. Conference on Computer Communications. Twentieth Annual Joint Conference of the IEEE Computer and Communications Society (Cat. No.01CH37213).

[30]  John W. Lockwood,et al.  Deep packet inspection using parallel bloom filters , 2004, IEEE Micro.