NUMA-Aware Perfect Hash Vector for Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing perfect hash vectors in garbage collection systems face inefficiencies due to high memory access latency in Non-Uniform Memory Access (NUMA) systems, requiring multiple random memory accesses and lengthy enumeration times, especially in large-scale networks.
Innovation Solution
The solution involves splitting the perfect hash vector into multiple vectors aligned with NUMA nodes, directing each hash operation to local memory, and using deterministic fingerprint assignment to reduce remote memory access latency, optimizing memory access through multi-threaded processing and prefetching techniques.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a perfect hash vector is used to track liveness of data segments, then memory efficiency is improved, but memory access latency increases due to multiple random memory accesses
Solution Approach 1:
The patent divides the perfect hash vector into multiple segments or buckets, where each bucket stores a subset of hash values. This segmentation allows the system to access only relevant portions of the hash vector during lookup operations, reducing the effective memory access scope and latency while maintaining the compact structure.
Solution Approach 2:
The patent introduces an additional dimension by organizing the hash vector into a hierarchical structure with multiple levels or stages. Instead of a single flat array requiring random access to any position, the system uses a multi-dimensional organization that enables sequential or localized access patterns, reducing memory latency.
2Measurement precision
If all keys are kept in memory for PHVEC creation, then lookup accuracy is improved, but memory usage during creation increases
Solution Approach 1:
The patent segments the key set into multiple partitions or batches during the PHVEC creation process. Each partition is processed independently to generate corresponding hash buckets, allowing the system to load and process keys in smaller chunks rather than requiring all keys to reside in memory simultaneously, thus reducing peak memory usage while maintaining overall lookup accuracy.
Solution Approach 2:
The patent performs preliminary sorting or pre-processing of keys before hash generation. By organizing keys in advance (e.g., sorting them or grouping them by range), the system can generate hash values more efficiently and allocate memory more effectively, reducing the peak memory requirement during the creation phase while ensuring accurate lookup capability.
3Reliability
If multiple random memory accesses are performed for each PHVEC operation, then collision-free lookup is achieved, but access speed decreases
Solution Approach 1:
The patent performs preliminary computations during the PHVEC construction phase, such as pre-calculating hash values, determining bucket assignments, and storing auxiliary indexing information. This preliminary action enables the lookup phase to require fewer random memory accesses, as some information is already prepared and cached, thereby improving access speed while maintaining collision-free lookup reliability.
Solution Approach 2:
The patent introduces intermediary data structures or auxiliary arrays that serve as mediators between the input key and the final hash vector. These intermediaries cache intermediate computation results or provide direct pointers to relevant hash buckets, reducing the number of random memory accesses needed during lookup operations while ensuring accurate, collision-free results.
Data Source
AI summary
Embodiments are directed to perfect physical garbage collection (PPGC) process that uses a NUMA-aware perfect hash vector. The process splits a perfect hash vector (PHVEC) into a number of perfect hash vectors, wherein the number corresponds to a number of nodes having a processing core and associated local memory, directs each perfect hash to a respective local memory of a node so that each perfect hash vector accesses only a local memory, and assigns fingerprints in the perfect hash vector to a respective node using a mask function. The process also performs a simultaneous creation of perfect hash vectors in a multi-threaded manner by scanning the Index once.


