Memory efficient persistent key-value store for non-volatile memories
AssigneeWestern Digital Technologies, Inc.
InventorArup De
Life of this patent
Estimating the term…
Abstract
Aspects of the disclosure provide for memory efficient persistent key value store for a solid state device (SSD). The methods and apparatus provide a non-volatile memory (NVM) and a key value store (KVS) processor. The non-volatile memory (NVM) is configured to store a key value data structure. The KVS processor is configured to receive a key value store (KVS) command from a host. The KVS processor is also configured to perform a key value store (KVS) operation on the key value data structure based on the received KVS command. The performing of the key value store (KVS) operation may include using an index structure to process the key value data structure based on the received KVS command. The KVS processor is further configured to provide a response to the host based on the KVS operation.
Claims22
A solid state device (SSD) comprising:
- a non-volatile memory (NVM) configured to store a key value data structure;
- a key value store (KVS) processor configured to:
- receive a key value store (KVS) command from a host;
- perform a key value store (KVS) operation on the key value data structure based on the received KVS command;
- and
- provide a response to the host based on the KVS operation;
- and
- a processor configured to (i) process a non-KVS command from the host, on the NVM, and (ii) perform a non-KVS operation on the NVM based on the non-KVS command.
A method for operating a solid state device (SSD), comprising:
- storing, at a non-volatile memory (NVM) of the SSD, a key value data structure;
- receiving a command from a host;
- determining whether the command is a key-value store (KVS) command,
- wherein when the command is determined to be a non-KVS command, sending the command to a processor of the SSD, and
- wherein when the command is determined to be a KVS command;
- sending the command to a KVS processor of the SSD;
- identifying, at the SSD, an entry of an index structure based on the received KVS command;
- identifying a group of key value data from the key value data structure based on the identified entry;
- processing, at the SSD, one or more key value data from the identified group of key value data based on the received KVS command;
- and
- providing a response to the host, based on the processing of the one or more key value data.
An apparatus for operating a solid state device (SSD), comprising:
- means for non-volatile storing of a key value data structure;
- means for key value store (KVS) processing comprising:
- means for receiving a key value store (KVS) command from a host;
- means for performing a key value store (KVS) operation on the key value data structure based on the received KVS command, wherein the means for performing the key value store (KVS) operation comprises generating a hash value based on the received KVS command;
- and
- means for providing a response to the host based on the KVS operation;
- and
- means for non-KVS processing comprising:
- means for receiving a non-KVS command from the host;
- means for performing a non-KVS operation on the means for non-volatile storing based on the non-KVS command;
- and
- means for providing a response to the host based on the non-KVS operation.
Dependencies are inferred from the claim text.