Abstract:
A method includes updating a first metadata log in an NVRAM of a host device corresponding to one or more recent input/output (I/O) operations received by the host device, periodically checking whether the size of the updated first metadata log is greater than a flush limit maintained in the host device, triggering a meta flush thread when the updated first metadata log size exceeds the flush limit maintained in the host device, sending, by a non-volatile memory express (NVMe) driver, a first command for synchronizing the updated first metadata log to one or more solid state drives (SSDs) for updating a second metadata log in the one or SSDs, and discarding, by the host device, metadata of the first metadata log updated in the host device after receiving a second command for acknowledging synchronization completion from the one or more SSDs.
Abstract:
A method includes updating a first metadata log in an NVRAM of a host device corresponding to one or more recent input/output (I/O) operations received by the host device, periodically checking whether the size of the updated first metadata log is greater than a flush limit maintained in the host device, triggering a meta flush thread when the updated first metadata log size exceeds the flush limit maintained in the host device, sending, by a non-volatile memory express (NVMe) driver, a first command for synchronizing the updated first metadata log to one or more solid state drives (SSDs) for updating a second metadata log in the one or SSDs, and discarding, by the host device, metadata of the first metadata log updated in the host device after receiving a second command for acknowledging synchronization completion from the one or more SSDs.
Abstract:
A method for dynamically storing keys and values includes receiving a request for storing one or more keys in a key value Solid State drive (KV-SSD). The method further includes performing a storage operation for storing each key of the one or more keys in a node of a data structure of the KV-SSD. The storage operation includes allocating a first region in the node for storing the key, such that a size of the first region is equal to a size of the key. The storage operation further includes allocating a second region in the node for storing key metadata associated with the key, such that the second region is of a predetermined size. The storage operation further includes storing the key in the first region and the key metadata in the second region of the node.
Abstract:
Methods and systems for managing Key-Value Solid State Drives (KV SSDs). A method includes writing, by a host processor, at least one Key-value pair of at least one write command to at least one KV SSD of a plurality of KV SSDs of at least one RAID group based on at least one of slab information, available space and load. Further, the method includes reading, by the host processor, at least one value from the at least one KV SSD of the plurality of KV SSDs for at least one key of at least one read command using at least one of a consistent hashing function and slab information.
Abstract:
Embodiments herein provide a method for metadata storage management. The method includes receiving a write request having a data. Further, the method includes storing the data in a log entry of a first portion of a metadata log in the Non-volatile memory. Further, the method includes returning an acknowledgement to the write request. Further, the method includes copying the log entry to a second portion of the metadata log. Further, the method includes flushing the data from the second portion to a Solid-state drive (SSD).
Abstract:
A method for offloading a lookup operation to a NAND offload apparatus, including receiving, by the NAND offload apparatus, a NAND read command from a key-value solid-state drive (KV SSD) NAND interface, wherein the NAND offload apparatus is connected between the KV SSD NAND interface and a NAND device using a NAND bus; determining whether the NAND read command includes an information element indicating an indirect read operation; based on the NAND read command including the information element, performing the indirect read operation by the NAND offload apparatus; and based on the NAND read command not including the information element: passing, by the NAND offload apparatus, the NAND read command to the NAND device through the NAND bus, and configuring, by the NAND offload apparatus, a switch an output gate to pass a response message from the NAND device to the KV SSD NAND interface.
Abstract:
Embodiments herein provide a method for controlling operations of a Redundant Array of Independent Disks (RAID) data storage system comprising a host device and a plurality of solid-state drives (SSDs). The method includes performing, by the at least one SSD, recovery of lost data by performing the auto-rebuild operation. The method also includes performing by the at least one SSD, the auto-error correction operation based on the IO error. The method also includes creating a snapshot of an address mapping table by all SSDs of the plurality of SSDs in the RAID data storage system. The auto-rebuild operation, the auto-error correction operation and the creation the snapshot of the address mapping table are all performed without the intervention from the host device.
Abstract:
A storage system for managing an array of SSDs includes the array of SSDs and a host controller. Each of the SSDs is operable to store data. The host controller is configured to manage the array of SSDs as multiple logical volumes. Each of the logical volumes is associated with at least one stream ID. At least one of the SSDs and the host controller stores a system code configured to execute stream ID commands to access each of the logical volumes. Each of the logical volumes is dedicated to a memory region of each of the SSDs. Each of the logical volumes corresponding to the memory region of each of the SSDs are combined to form a logical volume group using the at least one stream ID. The host controller uses the stream ID commands to communicate with logical volumes of the logical volume group.