G06F3/061

Storage system with multiplane segments and query based cooperative flash management

This disclosure provides for improvements in managing multi-drive, multi-die or multi-plane NAND flash memory. In one embodiment, the host directly assigns physical addresses and performs logical-to-physical address translation in a manner that reduces or eliminates the need for a memory controller to handle these functions, and initiates functions such as wear leveling in a manner that avoids competition with host data accesses. A memory controller optionally educates the host on array composition, capabilities and addressing restrictions. Host software can therefore interleave write and read requests across dies in a manner unencumbered by memory controller address translation. For multi-plane designs, the host writes related data in a manner consistent with multi-plane device addressing limitations. The host is therefore able to “plan ahead” in a manner supporting host issuance of true multi-plane read commands.

SYSTEMS AND METHODS FOR LOAD BALANCING IN A HETEROGENEOUS MEMORY SYSTEM
20230017824 · 2023-01-19 ·

A system is disclosed. The system may include a processor and a memory connected to the processor. A first storage device may be connected to the processor. The first storage device may include a first storage portion, which may include a memory page. The first storage portion may extend the memory. A second storage device may also be connected to the processor. The second storage device may also include a second storage portion. The second storage portion may also extend the memory. A load balancing daemon may migrate the memory page from the first storage portion of the first storage device to the second storage portion of the second storage device based at least in part on a first update count of the first storage device and a second update count of the second storage device.

METHOD, DEVICE, AND PROGRAM PRODUCT FOR EXTENDING STORAGE SYSTEM
20230012813 · 2023-01-19 ·

A technique extends a storage system that includes a first storage resource pool that is generated using a first plurality of storage devices and based on a first storage array standard. Such a technique involves: adding a second plurality of storage devices to the storage system in response to receiving a request to extend the storage system, the number of the second plurality of storage devices being less than the sum of a first stripe width associated with the first storage array standard and the number of backup storage devices in the first storage resource pool; and creating a second storage resource pool using the second plurality of storage devices and based on a second storage array standard, a second stripe width associated with the second storage array standard being less than the first stripe width. Accordingly, storage space can be extended faster and more effectively.

HANDLING PARTITION DATA
20230013048 · 2023-01-19 ·

Determining which data should be located in each partition of a hard disk drive storage device based on growth values and/or data access frequency values.

RESILIENCY AND PERFORMANCE FOR CLUSTER MEMORY

Disclosed are various embodiments for improving the resiliency and performance for clustered memory. A computing device can mark a page of the memory as being reclaimed. The computing device can then set the page of the memory as read-only. Next, the computing device can submit a write request for the contents of the page to individual ones of a plurality of memory hosts. Subsequently, the computing device can receive individual confirmations of a successful write of the page from the individual ones of the plurality of memory hosts. Then, the computing device can mark the page as free in response to receipt of the individual confirmations of the successful write from the individual ones of the plurality of memory hosts.

Load balancing in a storage system

Techniques are used for balancing load on a storage system according to multiple variables. The techniques may be used to provide, among other things, defining, across at least two variables, a balance constraint for a load on a storage system. Among a set of transfers of volumes from one node to another node in the storage system, a transfer of a volume that minimizes the distance between the load and an ideal balanced state of the storage system is identified. The identified transfer of a volume is added to a combination of transfers of volumes. Whether the combination of transfers of volumes meets the balance constraint is determined. If the combination meets the balance constraint, the combination is selected as a solution to balance the load.

Using Replication To Create Storage Service Tiers
20230018773 · 2023-01-19 ·

Using replication to create storage service tiers, including: receiving a request for data stored in a first storage array and not stored in a second storage array associated with a lower latency tier than the first storage array; providing the data from the first storage array in response to the request; and asynchronously replicating the data from the first storage array to the second storage array.

MEMORY SUB-SYSTEM FOR MONITORING MIXED MODE BLOCKS

An apparatus can include a block program erase count (PEC) component. The block PEC component can monitor a quantity of program erase counts (PECs) for each particular type of block of a non-volatile memory array. The block PEC component can further determine which block of the superblock to write host data to next based on the quantity of PECs. The block PEC component can further write host data to the determined block.

MEMORY SYSTEM AND METHOD FOR CONTROLLING NONVOLATILE MEMORY
20230221886 · 2023-07-13 · ·

According to one embodiment, a memory system stores write data received from a host to a shared write buffer for write destination blocks, acquires first write data for plural pages from the shared write buffer, and writes the first write data to a first write destination block by a first-step write operation. When receiving write data from the host in a state in which an empty region does not exist in the shared write buffer, the memory system discards write data in the shared write buffer in which the first-step write operation has been finished. In a case where the first write data do not exist in the shared write buffer when a second-step write operation of the first write data is to be executed, the memory system transmits a request to acquire the first write data to the host.

IMPLEMENTING COHERENCY AND PAGE CACHE SUPPORT FOR A STORAGE SYSTEM SPREAD ACROSS MULTIPLE DATA CENTERS
20230221897 · 2023-07-13 ·

A plurality of computing devices are communicatively coupled to each other via a network, and each of the plurality of computing devices is operably coupled to one or more of a plurality of storage devices. The computing devices may use local caches and storing snapshots in a coherent manner when accessing the plurality of storage devices spread across multiple data centers.