Auxiliary Key Lookup Table Collision Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network packet processing systems face challenges in managing large and variable-sized keys in exact match keyed lookup tables, leading to difficulties in accessing records due to hash collisions and the lack of fixed keys for management purposes.
Innovation Solution
The introduction of auxiliary keys, which combine a table index and a unique collision index, provides an additional access mechanism that remains valid for as long as records exist in the lookup table, enhancing traditional exact matching methods by offering a fixed-size access mechanism that can efficiently handle collisions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional hash functions are used to generate table indexes from large variable-sized keys, then records can be stored in lookup tables, but hash collisions occur and access complexity increases
Solution Approach 1:
The patent segments the key into multiple parts: a prefix portion and a suffix portion. The prefix is used to generate the table index, while the suffix is stored with the record. This segmentation allows the system to handle large variable-sized keys by dividing them into manageable components, reducing collision impact while maintaining adaptability.
Solution Approach 2:
The patent introduces an intermediary structure (the suffix portion of the key) that mediates between the hash function and the full key. When a collision occurs, the suffix acts as an additional discriminator to resolve the collision without requiring full key comparison, thus reducing access complexity while maintaining versatility.
2Adaptability or versatility
If variable-sized keys are stored in lookup tables, then flexible key management is achieved, but fixed management keys cannot be provided
Solution Approach 1:
By segmenting the variable-sized key into a fixed-size prefix (for indexing) and a variable-size suffix (for storage), the system achieves both flexibility in key size and ease of management. The fixed prefix provides a stable management interface while the variable suffix accommodates different key sizes.
Solution Approach 2:
The patent applies different properties to different parts of the key: the prefix portion has fixed properties (fixed size for indexing) while the suffix portion has variable properties (variable size for flexibility). This local differentiation allows the system to simultaneously provide fixed management interfaces and flexible key storage.
3Measurement precision
If full key comparison is performed to resolve collisions, then accurate record retrieval is achieved, but access time increases
Solution Approach 1:
The patent extracts the suffix portion of the key and stores it separately with the record. During collision resolution, only the suffix needs to be compared rather than the full key, significantly reducing the time required for accurate record retrieval while maintaining precision.
Solution Approach 2:
Instead of performing full key comparison for every collision, the patent performs only partial comparison (suffix portion) to resolve most collisions quickly. This partial action is sufficient for accurate retrieval in most cases, reducing access time while maintaining measurement precision.
Data Source
AI summary
Methods and systems are disclosed to access memory locations using auxiliary keys in addition to primary keys. Commands are received by a memory management unit to insert or access records in an exact match keyed lookup table where records include keys (i.e., primary keys), auxiliary keys, and data. When a command to insert a new record is received along with key and data, the memory management unit generates a new unique auxiliary key. The auxiliary key includes a table index generated from the key and a collision index that is unique for any records having the same table index. The key, the auxiliary key, and the data for the new record are then stored within the lookup table along with a collision pointer that links records having the same table index. Subsequently, commands to access the new record can selectively use either the original key or the auxiliary key.


