G06F3/0631

Apparatus and method for scheduling operations performed in plural memory devices included in a memory system
11704068 · 2023-07-18 · ·

A memory system includes a plurality of memory groups capable of performing a data input/output operation, and a controller configured to divide an operation subject to a data input/output command into at least one unit operation corresponding to the plurality of memory groups, and assign the at least one unit operation to plural queues corresponding to the respective memory groups, based on first information regarding operation statuses of the plurality of memory groups and second information regarding available resources.

Elastic persistent memory regions

A system includes a first memory device having a region allocated as a first persistent memory region (PMR) having a first set of pages, a second memory device comprising a non-volatile memory device having a region allocated as a second PMR region having a second set of pages, and at least one processing device, operatively coupled to the first memory device and the second memory device, to implement a PMR mechanism to cause the second PMR region to be accessible through the first PMR region.

Method for processing input/output (I/O) requests of a RAID system having a protection pool of storage units

A method, apparatus, and system for processing Redundant Array of Independent Disks (RAID) Input/Output (I/O) requests for a plurality of nodes in a cluster is disclosed. A file system request including a byte offset is received. Then, a Physical Extent (PE) row that matches the file system request and a RAID stripe within the identified PE row based on the byte offset is identified. Next, a plurality of RAID I/O requests to be routed to a physical disk is generated. Each of the plurality of the RAID I/O requests includes information associated with the PE and a type of operation. Thereafter, each of the RAID I/O requests is processed based on the information associated with the PE and the type of operation.

Storage System, Data Processing Method, Apparatus, Node, and Storage Medium
20230015979 · 2023-01-19 ·

This application discloses a storage system, a data processing method, an apparatus, a node, and a storage medium, and pertains to the field of data storage technologies. In the method, a client determines an address that is in a storage unit and that is used to store to-be-written data, and sends the to-be-written data to a first storage device that is in a storage node and that is corresponding to the storage unit, so that the first storage device stores the to-be-written data while a CPU of the storage node does not need to determine a hard disk LBA corresponding to virtual address space, and a hard disk does not need to determine a corresponding physical address based on the hard disk LBA.

SYSTEMS, METHODS, AND DEVICES FOR UTILIZATION AWARE MEMORY ALLOCATION
20230017019 · 2023-01-19 ·

A method may include receiving, from a process, a memory allocation request for a memory system comprising a first channel having a first channel utilization and a second channel having a second channel utilization, selecting, based on the first channel utilization and the second channel utilization, the first channel, and allocating, to the process, a page of memory from the first channel. The selecting may include selecting the first channel based on a balanced random policy. The selecting may include generating a ticket based on a random number and a number of free pages, comparing the ticket to a number of free pages of the first channel, and selecting the first channel based on the comparing. The selecting may include selecting the first channel based on a least used channel policy.

DYNAMIC STORAGE IN KEY VALUE SOLID STATE DRIVE

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.

SELECTING SURVIVING STORAGE NODE BASED ON ENVIRONMENTAL CONDITIONS
20230019241 · 2023-01-19 · ·

A method may select a surviving storage node based on environmental conditions. A request for exclusive access to a volume is received. A score based on data associated with an environment of the node is determined for each node in a cluster. Based on the scores, a node to grant exclusive access to the volume is identified, and such exclusive access is granted to the identified node.

SYSTEMS, METHODS, AND DEVICES FOR PAGE RELOCATION FOR GARBAGE COLLECTION
20230019878 · 2023-01-19 ·

A method for page management in a memory system may include allocating a page of a mirror memory, copying a valid page from a block of device memory at a device to the page of the mirror memory, remapping the valid page from the block of device memory to the mirror memory, and modifying the block of device memory. The method may further include copying the valid page from the mirror memory to a free page at the device, and remapping the valid page from the mirror memory to the free page at the device. The remapping may be performed using a memory coherent interface. The method may further include deallocating a portion of the mirror memory associated with the valid page based on copying the valid page from the mirror memory.

RESILIENCY AND PERFORMANCE FOR CLUSTER MEMORY

Disclosed are various embodiments for improving resiliency and performance of clustered memory. A computing device can acquire a chunk of byte-addressable memory from a cluster memory host. The computing device can then identify an active set of allocated memory pages and an inactive set of allocated memory pages for a process executing on the computing device. Next, the computing device can store the active set of allocated memory pages for the process in the memory of the computing device. Finally, the computing device can store the inactive set of allocated memory pages for the process in the chunk of byte-addressable memory of the cluster memory host.

SYSTEM AND METHOD FOR FACILITATING EFFICIENT MANAGEMENT OF DATA STRUCTURES STORED IN REMOTE MEMORY

A system and method are provided for facilitating efficient management of data structures stored in remote memory. During operation, the system receives a request to allocate memory for a first part in a data structure stored in a remote memory associated with a compute node in a network. The system pre-allocates a buffer in the remote memory for a plurality of parts in the data structure and stores a first local descriptor associated with the buffer in a local worker table stored in a volatile memory of the compute node. The first local descriptor facilitates servicing future access requests to the first and other parts in the data structure. The system stores a first global descriptor for the buffer in a shared global table stored in the remote memory and generates a first reference corresponding to the first part, thereby facilitating faster traversals of the data structure.