Expandable Look-Up Table Structure for Uneven Hash Buckets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional hash tables face limitations due to a fixed memory size per hash bucket, leading to an imbalance in the number of key-data value pairs between different hash values, which is undesirable when hash functions generate uneven distributions.
Innovation Solution
A look-up table is designed with a first table containing entries with look-up addresses and expansion pointers, linking to a second table for dynamic expansion, allowing flexible allocation of memory based on hash values, enabling asymmetric expansion and supporting hash algorithms with significant imbalances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a fixed memory size is allocated per hash bucket, then the hash table structure is simple and easy to implement, but the number of key-data value pairs per hash value becomes limited and imbalanced
Solution Approach 1:
The hash table is segmented into a primary hash table with fixed-size buckets and an expansion hash table with dynamically allocated entries. The expansion hash table is further divided into multiple expansion buckets that can be selectively allocated to primary buckets based on their needs. This segmentation allows the system to maintain the simplicity of fixed-size buckets while providing dynamic expansion capabilities for buckets that require more storage space.
Solution Approach 2:
The patent introduces a second dimension of storage by creating an expansion hash table that exists separately from the primary hash table. Instead of expanding the size of individual primary buckets in place, the system allocates additional storage space in the expansion table and uses pointers to link primary bucket entries to their corresponding expansion entries. This dimensional transition from single-table to two-table architecture enables flexible memory allocation while maintaining the original fixed-size bucket structure.
2Adaptability or versatility
If dynamic expansion is implemented for each hash bucket, then the number of key-data value pairs can be flexibly allocated, but the hash table structure becomes more complex
Solution Approach 1:
The expansion hash table serves multiple functions: it provides additional storage space for overflow entries, enables dynamic allocation for buckets with varying needs, and maintains a uniform structure that can be systematically managed. Each expansion bucket can serve multiple primary buckets that have overflow requirements, making the expansion infrastructure universally applicable rather than requiring individual dynamic structures for each primary bucket.
Solution Approach 2:
The patent introduces expansion pointers as intermediary elements that connect the primary hash table to the expansion hash table. These pointers act as mediators that manage the relationship between fixed-size primary buckets and dynamically allocated expansion entries. The intermediary pointer mechanism simplifies the complexity by providing a standardized interface for accessing expansion storage without requiring direct manipulation of dynamic memory structures in the primary table.
3Adaptability or versatility
If asymmetric expansion is allowed for different hash values, then storage optimization is achieved for uneven hash distributions, but the table management becomes more complex
Solution Approach 1:
The patent implements local quality by allowing different primary buckets to have different expansion requirements based on their specific needs. Each primary bucket can independently allocate expansion space in the expansion hash table according to its local demands. This means that buckets with high collision rates or large numbers of key-value pairs can allocate more expansion space, while buckets with low utilization allocate minimal or no expansion space, creating localized optimization rather than uniform treatment.
Solution Approach 2:
The system dynamically changes the parameter of expansion buffer size for different primary buckets based on their actual usage patterns and collision characteristics. The expansion pointer fields in primary bucket entries can be configured to point to expansion buckets of varying sizes, allowing the system to adapt the storage parameters locally rather than using a fixed uniform allocation. This parameter flexibility enables optimization for uneven hash distributions while maintaining manageable complexity through systematic allocation rules.
Data Source
AI summary
A look-up table includes a first table formed using a first portion of the table entries where each table entry is associated with a look-up address and includes one or more key-data value pairs and an expansion pointer field, and a second table formed using a second portion of the table entries where each table entry is associated with an expansion address and includes one or more key-data value pairs. An expansion pointer field in a first table entry in the first table identifies a first expansion address associated with a second table entry in the second table as a first expansion pointer for linking the second table entry to the first table entry, thereby providing expansion of the first table entry. Each table entry in the second table can also include an expansion pointer field to provide table entry expansion through linking of multiple table entries in the second table.


