Key-Value Storage Controller Assignment Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage devices lack efficient methods to manage and process large amounts of data using key-value pairs across multiple controllers in a storage system, leading to inefficiencies in data processing and storage.
Innovation Solution
A storage device and system architecture that includes multiple controllers and a nonvolatile memory, where each key-value pair includes processing core information about the controller responsible for the next key-value pair, allowing for efficient data processing and storage by identifying the processing subject based on this information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple controllers are used to process key-value pairs in parallel, then data processing productivity is improved, but device complexity increases due to the need for coordination and assignment mechanisms
Solution Approach 1:
The patent applies preliminary action by embedding next-controller assignment information in the key data before processing. When a controller finishes processing a key-value pair, it can immediately determine which controller should process the next key by reading the embedded assignment information, eliminating the need for complex runtime coordination and controller communication mechanisms.
Solution Approach 2:
The system implements self-service through self-assignment of processing tasks. Each key contains metadata that automatically identifies which controller should process subsequent keys, allowing controllers to independently determine their workload without external arbitration or complex inter-controller communication protocols.
2Speed
If key-value pairs are distributed across multiple controllers, then processing speed is improved, but information loss occurs without proper tracking of processing assignment
Solution Approach 1:
The patent merges the processing assignment information directly with the key data structure. By combining the key, its corresponding controller assignment metadata, and next-controller information into a unified data structure stored in the nonvolatile memory, the system ensures that no assignment information is lost during distribution across multiple controllers.
Solution Approach 2:
The system implements feedback by storing next-controller assignment information in the key data itself. After a controller processes a key-value pair, it can use the embedded next-controller information as feedback to determine which controller should handle subsequent processing, ensuring continuous and accurate task distribution without information loss.
3Ease of operation
If processing assignment information is stored with each key, then ease of operation is improved by automatically identifying the correct controller, but device complexity increases due to additional data storage requirements
Solution Approach 1:
The patent applies universality by designing a multi-functional key data structure that simultaneously serves as: (1) the identification key for data retrieval, (2) the storage container for processing assignment information, and (3) the guide for next-controller determination. This eliminates the need for separate data structures for each function, reducing overall system complexity despite the added capabilities.
Data Source
AI summary
Provided are a storage device storing data on the basis of key-value and an operating method thereof, wherein the storage device separates and manages a plurality of keys and a plurality of values respectively corresponding to the plurality of keys, and includes a first controller processing a first key and a first value corresponding to the first key, a second controller processing a second key and a second value corresponding to the second key, and a nonvolatile memory storing the first key, the second key, the first value, and the second value, wherein the first key includes information about the second controller regarding a processing core for the second value processed next to the first value.


