Storing a Sparse Table with 0(1) Worst Case Access Time
Journal of the ACM (JACM)
Communications of the ACM
Introduction to algorithms
On efficient unsuccessful search
SODA '92 Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms
An optimal algorithm for generating minimal perfect hash functions
Information Processing Letters
On contention resolution protocols and associated probabilistic phenomena
STOC '94 Proceedings of the twenty-sixth annual ACM symposium on Theory of computing
Balanced allocations (extended abstract)
STOC '94 Proceedings of the twenty-sixth annual ACM symposium on Theory of computing
Parallel randomized load balancing
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
An introduction to genetic algorithms
An introduction to genetic algorithms
Scalable high speed IP routing lookups
SIGCOMM '97 Proceedings of the ACM SIGCOMM '97 conference on Applications, technologies, architectures, and protocols for computer communication
Expected Length of the Longest Probe Sequence in Hash Code Searching
Journal of the ACM (JACM)
Membership in Constant Time and Almost-Minimum Space
SIAM Journal on Computing
Anti-presistence: history independent data structures
STOC '01 Proceedings of the thirty-third annual ACM symposium on Theory of computing
Space Efficient Hash Tables with Worst Case Constant Access Time
STACS '03 Proceedings of the 20th Annual Symposium on Theoretical Aspects of Computer Science
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
How Asymmetry Helps Load Balancing
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
A pipelined memory architecture for high throughput network processors
Proceedings of the 30th annual international symposium on Computer architecture
The power of two choices in randomized load balancing
The power of two choices in randomized load balancing
The Bloomier filter: an efficient data structure for static support lookup tables
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Fast hash table lookup using extended bloom filter: an aid to network processing
Proceedings of the 2005 conference on Applications, technologies, architectures, and protocols for computer communications
Awarded Best Paper! - Venti: A New Approach to Archival Data Storage
FAST '02 Proceedings of the 1st USENIX Conference on File and Storage Technologies
Segmented hash: an efficient hash table implementation for high performance networking subsystems
Proceedings of the 2005 ACM symposium on Architecture for networking and communications systems
Advanced algorithms for fast and scalable deep packet inspection
Proceedings of the 2006 ACM/IEEE symposium on Architecture for networking and communications systems
Efficient implementation of Aho–Corasick pattern matching automata using Unicode
Software—Practice & Experience
Dynamic perfect hashing: upper and lower bounds
SFCS '88 Proceedings of the 29th Annual Symposium on Foundations of Computer Science
Simple and space-efficient minimal perfect hash functions
WADS'07 Proceedings of the 10th international conference on Algorithms and Data Structures
Fast and deterministic hash table lookup using discriminative bloom filters
Journal of Network and Computer Applications
Hi-index | 0.01 |
Exact and approximate membership lookups are among the most widely used primitives in a number of network applications. Hash tables are commonly used to implement these primitive functions as they provide O(1) operations at moderate load (table occupancy). However, at high load, collisions become prevalent in the table, which makes lookup highly non-deterministic and reduces the average performance. Slow and non-deterministic lookups are detrimental to the performance and scalability of modern platforms such as ASIC/FPGA and multi-core that use highly parallel compute and memory structures. To combat non-determinism and achieve high rate lookups, a recent series of papers employ compact on-chip memory that augments the main hash table and stores certain key information. Unfortunately, they require substantial on-chip memory space and bandwidth, and fail to provide 100% guarantee on lookup rate. In this paper, we solve this with a novel construction that requires 10-fold smaller on-chip memory and guarantees that all lookups require a single hash table access at near full load. The on-chip memory uses only between 1- and 2-bit per item and also needs a small number of accesses (between two and four) per lookup. This represents a substantial improvement over previous schemes and therefore can help realize highly scalable and deterministic lookup tables in modern parallel platforms.