SSD Controller Key-Value Access via Collision Bitmap
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current SSD technologies face inefficiencies in accessing key-value pairs due to collisions and collisions separation, which affect storage and retrieval operations, leading to increased latency and reduced performance.
Innovation Solution
The proposed method involves using a SSD controller to apply a hash function to an input value, determining a bucket number and slot locator, and then calculating a physical address by counting zero bits and determining colliding keys, allowing for efficient access and retrieval of key-value pairs through a permutation or tree-based collision resolution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional hash table methods are used for SSD key-value access, then storage capacity is maintained, but access latency increases due to collisions and collision separation operations
Solution Approach 1:
The patent extracts the collision resolution mechanism from the traditional hash table structure by introducing a separate collision bitmap and collision handling process. This separation allows the main hash table to remain compact while collision resolution is handled independently through bitmap-based slot identification, reducing access latency without compromising storage capacity.
Solution Approach 2:
The collision bitmap serves as an intermediary structure between the hash table and the collision resolution process. It mediates the collision handling by providing a compact representation of slot occupancy status, enabling efficient identification of available slots without requiring complex collision separation operations that would increase access latency.
2Reliability
If collision separation mechanisms are implemented, then key-value pair accuracy is improved, but device complexity increases due to additional data structures and operations
Solution Approach 1:
The patent changes the parameter representation from traditional pointer-based slot references to bitmap-based slot identification. Each bit in the collision bitmap represents a slot status, transforming the complexity from managing multiple collision separation data structures to managing a single compact bitmap array, thereby maintaining accuracy while reducing structural complexity.
Solution Approach 2:
The collision bitmap uses a uniform bit representation for all slot states across the hash table, creating a homogeneous and consistent data structure. This uniform approach simplifies the collision resolution logic compared to heterogeneous collision handling mechanisms, improving reliability through consistent behavior while reducing device complexity.
3Speed
If bitmap-based slot identification is used, then access speed is improved, but memory usage increases due to additional bitmap storage requirements
Solution Approach 1:
The collision bitmap only tracks slots that are likely to experience collisions based on the hash function distribution, rather than maintaining complete slot information for all hash table entries. This partial tracking approach provides sufficient speed improvement for collision-prone scenarios while minimizing the additional memory storage required compared to comprehensive slot monitoring.
Data Source
AI summary
There may be provided, systems, method and non-transitory computer readable media for accessing a key value pair stored in a solid state drive (SSD) memory, the method may include calculating, by a SSD memory controller and based on an input key, a first bucket identifier and a first inter-bucket value; determining a block cluster that stores the key pair value, based on the first bucket identifier, the first inter-bucket value and first metadata of a first data structure; calculating, based on the input key, a second bucket identifier and a second inter-bucket value; determining at least one of a key pair value retrieval information and a representative key pair value retrieval information, based on the second bucket identifier, the second inter-bucket value and second metadata of a second data structure; wherein the second data structure is allocated to the block cluster; wherein the second metadata comprises second logical slots, a second slot locator and second collision separation metadata; wherein at least the second slot locator comprise metadata only on representative key-pair values that are a subset of multiple key-pair values stored in the block cluster; and retrieving at least the value of the key pair value based on the at least one of the key pair value retrieval information and the representative key pair value retrieval information.


