G06F3/064

System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
11556277 · 2023-01-17 · ·

During operation, a key-value storage system can receive a request to write data to a data region in a first non-volatile memory. The system can determine a key associated with the data and the key can correspond to an entry in a data structure maintained by a volatile memory the storage system. In response to determining the key, the system can write the data to the data region in the first non-volatile memory. The system can update in the volatile memory the data structure entry corresponding to the key with a physical location in the data region of the first non-volatile memory to which the data is written. The system can write the data structure update to a second non-volatile memory. The system can then store a snapshot of the data structure in a metadata region associated with the first non-volatile memory, thereby allowing persistent storage of the data structure.

Using erasure coding in a single region to reduce the likelihood of losing objects maintained in cloud object storage
11556423 · 2023-01-17 · ·

Techniques for using erasure coding in a single region to reduce the likelihood of losing objects in a cloud object storage platform are provided. In one set of embodiments, a computer system can upload a plurality of data objects to a region of a cloud object storage platform, where the plurality of data objects including modifications to a data set. The computer system can further compute a parity object based on the plurality of data objects, where the parity object encodes parity information for the plurality of data objects. The computer system can then upload the parity object to the same region where the plurality of data objects was uploaded.

PAGE MAP RENUMBERING TO REDUCE ERROR CORRECTION FAILURES AND IMPROVE PROGRAM TIME UNIFORMITY

Systems, apparatuses and methods may provide for technology that detects a request to program a NAND memory containing a plurality of dies and programs the NAND memory on a stripe-by-stripe basis, wherein each stripe spans the plurality of dies and includes multiple types of pages. The multiple types of pages may reduce program time variability across the stripes and reduce the error susceptibility of the NAND memory.

IN-MEMORY JOURNAL
20230040696 · 2023-02-09 · ·

Various implementations described herein relate to systems and methods for managing metadata using an in-memory journal, including determining metadata for data, storing the metadata in an in-memory journal, detecting an imminent interruption to operations of the storage device, in response to detecting the imminent interruption, program the in-memory journal to a non-volatile memory device of the storage device, detect that the operations of the storage device are being restored, and in response to detecting that the operations of the storage device are being restored, performing metadata update. The first data is read from first original areas of a non-volatile memory. The first metadata includes a first physical address for each of first new areas of the non-volatile memory. The metadata is programmed in a metadata area of the non-volatile memory device.

Dynamic data placement for collision avoidance among concurrent write streams
11573742 · 2023-02-07 · ·

A memory sub-system configured to dynamically generate a media layout to avoid media access collisions in concurrent streams. The memory sub-system can identify plurality of media units that are available to write data concurrently, select commands from the plurality of streams for concurrent execution in the available media units, generate and store a portion of a media layout dynamically in response to the commands being selected for concurrent execution in the plurality of media units, and executing the selected commands concurrently by storing data into the memory units according to physical addresses to which logical addresses used in the selected commands are mapped in the dynamically generated portion of the media layout.

PMEM cache RDMA security

Techniques are described for providing one or more clients with direct access to cached data blocks within a persistent memory cache on a storage server. In an embodiment, a storage server maintains a persistent memory cache comprising a plurality of cache lines, each of which represent an allocation unit of block-based storage. The storage server maintains an RDMA table that include a plurality of table entries, each of which maps a respective client to one or more cache lines and a remote access key. An RDMA access request to access a particular cache line is received from a storage server client. The storage server identifies access credentials for the client and determines whether the client has permission to perform the RDMA access on the particular cache line. Upon determining that the client has permissions, the cache line is accessed from the persistent memory cache and sent to the storage server client.

Managing voltage bin selection for blocks of a memory device

A processing device of a memory sub-system is configured to sort a plurality of blocks of the memory device; divide the sorted plurality of blocks into a plurality of block segments; scan a first block at a first boundary of a first block segment of the plurality of block segments; scan a second block at a second boundary of the first block segment; identify, based on a scanning result of the first block, a first voltage bin associated with the first block; identify, based on a second scanning result of the second block, a second voltage bin associated with the second block; and responsive to determining that the first voltage bin matches the second voltage bin, assign the first voltage bin to each block of a subset of the plurality of blocks assigned to the first block segment.

Data processing method and apparatus

Embodiments relate to the field of storage technologies. The method is applied to a flash device whose first physical storage space stores a data block at a first security level and a data block at a second security level and whose second physical storage space stores a data block at a second security level. The method includes: receiving a data write request used to request to write target data, and obtaining a security level of the target data; and writing the target data into the first physical storage space if the security level of the target data is the first security level; or writing the target data into the second physical storage space or writing the target data into the second physical storage space and the first physical storage space if the security level of the target data is the second security level.

Storage device and operating method thereof
11593009 · 2023-02-28 · ·

A memory controller includes: a block manager for allocating a plurality of partial super blocks each including partial blocks in different memory blocks; and an operation controller for controlling a plurality of memory devices to perform, in parallel, a program operation of sequentially storing data in physical pages in each of the partial blocks in a partial super block selected from the plurality of partial super blocks. Each of the plurality of partial super blocks includes partial blocks in memory blocks having different numbers of physical pages having an erase state.

Memory device with dynamic cache management

A memory system includes a memory array having a plurality of memory cells; and a controller coupled to the memory array, the controller configured to: designate a storage mode for a target set of memory cells based on valid data in a source block, wherein the target set of memory cells are configured with a capacity to store up to a maximum number of bits per cell, and the storage mode is for dynamically configuring the target set of memory cells in as cache memory that stores a number of bits less per cell than the corresponding maximum capacity.