Key-Value Storage Controller Using Random Bit Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing key-value storage devices face challenges in efficiently managing keys with variable sizes and reducing hashing collisions, which can lead to operational inefficiencies and increased storage complexity.
Innovation Solution
A key-value storage system that includes a controller capable of receiving a key encoding rule and generating a mapping index from random bits of a key, allowing for efficient storage and retrieval operations without performing hashing on all key bits, thereby reducing collisions and improving operation speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If hashing is performed on all key bits, then storage capacity is increased, but hashing collisions increase and operation speed decreases
Solution Approach 1:
The patent extracts only the random bits from the key rather than using all key bits for hashing. The controller identifies and extracts random bits that are suitable for mapping index generation, thereby reducing the amount of data processed for hashing while maintaining storage capacity. This extraction principle directly resolves the contradiction by using a subset of key bits for hashing operations.
Solution Approach 2:
The patent applies partial action by performing hashing only on the extracted random bits portion of the key rather than on the entire key. This partial hashing approach reduces computational overhead and collision probability while still providing sufficient storage mapping capability, thus improving operation speed without sacrificing storage capacity.
2Reliability
If hashing is performed on all key bits, then storage mapping is improved, but hashing collisions increase
Solution Approach 1:
The patent extracts random bits from the key that are specifically suitable for mapping index generation. By selecting only the random portion of the key for hashing, the system maintains reliable storage mapping while reducing the probability of collisions, since random bits provide better distribution characteristics for hashing operations.
Solution Approach 2:
The patent applies different processing to different parts of the key: random bits are extracted and used for hashing to generate mapping indices, while non-random bits are preserved for other purposes. This local quality differentiation ensures that the portion of the key used for mapping has optimal collision resistance properties.
3Adaptability or versatility
If variable size keys are managed, then adaptability is improved, but device complexity increases
Solution Approach 1:
The patent segments the key into random bits and non-random bits, with the random bits being used for mapping index generation. This segmentation approach allows the system to handle variable size keys uniformly by always extracting the random portion for hashing, thereby maintaining adaptability while reducing the complexity of variable size key management through a consistent processing approach.
Solution Approach 2:
The patent changes the parameter used for hashing from the entire key to only the random bits portion of the key. This parameter change simplifies the handling of variable size keys by focusing on the consistent random bit portion, reducing device complexity while maintaining the ability to adapt to different key sizes.
Data Source
AI summary
A key-value storage device includes a non-volatile memory and a controller. A method of operating the key-value storage device includes: receiving, from a host, information regarding at least one of a random region, comprising random bits, and a non-random region each included in a key; receiving, from the host, a first command including a first key; generating, based on the received information, a mapping index of a mapping table from first bits, the first bits corresponding to at least some of the random bits included in the first key; and controlling an operation for the non-volatile memory, according to the first command, by using the mapping table.


