G06F12/0276

NUMA-aware garbage collection

System and Methods for non-uniform memory (NUMA) garbage collection are provided. Multiple memories and processors are categorized into local groups. A heap space is divided into multiple pools and stored in each of the memories. Garbage collection threads are assigned to each of the local groups. Garbage collection is performed using the garbage collection threads for objects contained in the pools using the garbage collector threads, memory, and processor assigned to each local group, minimizing remote memory accesses.

MEMORY SYSTEM AND METHOD OF CONTROLLING NONVOLATILE MEMORY
20210081327 · 2021-03-18 · ·

According to one embodiment, a memory system includes a nonvolatile memory and a controller. The controller receives a movement request from a host, the movement request designating a logical address of movement target data. When update data corresponding to the designated logical address is not written to the nonvolatile memory by a write request from the host in a period from the reception of the movement request to start of movement of data corresponding to the designated logical address, the controller executes a movement process of moving data corresponding to the designated logical address to a movement destination block in the nonvolatile memory. When the update data is written to the nonvolatile memory in the period, the controller does not execute the movement process.

Data storage device for dynamic garbage collection triggering and operating method thereof
10936485 · 2021-03-02 · ·

A data storage device includes a controller including a flash translation layer (FTL) for controlling an operation of a nonvolatile memory device. The FTL may monitor a first read operation on the plurality of data storage regions, collect first read operation information of a first subset of data storage regions on which the first read operation is performed, the first read operation information including read counts of the first subset of data storage regions on which the first read operation is performed, and information of the first subset of data storage regions on whether soft decision has been performed on the data storage regions, change a garbage collection (GC) threshold value based on the collected first read operation information, and control the nonvolatile memory device to perform GC on the plurality of data storage regions based on the changed GC threshold value.

DATA PROCESSING FOR ALLOCATING MEMORY TO APPLICATION CONTAINERS

A system and related method for managing memory in data processing comprises allocating each of a plurality of application containers a respective portion of a memory communicatively coupled to a plurality of processing units. The method further comprises allocating each of the plurality of application containers a respective group of the plurality of processing units and allocating, to each of the plurality of application containers, nursery and tenured heap spaced in the memory. The method then comprises performing, responsive to a request from an application container, garbage collection from the nursery and tenured heap spaces allocated to the application container.

COORDINATED GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS
20240004790 · 2024-01-04 ·

Fast modern interconnects may be exploited to control when garbage collection is performed on the nodes (e.g., virtual machines, such as JVMs) of a distributed system in which the individual processes communicate with each other and in which the heap memory is not shared. A garbage collection coordination mechanism (a coordinator implemented by a dedicated process on a single node or distributed across the nodes) may obtain or receive state information from each of the nodes and apply one of multiple supported garbage collection coordination policies to reduce the impact of garbage collection pauses, dependent on that information. For example, if the information indicates that a node is about to collect, the coordinator may trigger a collection on all of the other nodes (e.g., synchronizing collection pauses for batch-mode applications where throughput is important) or may steer requests to other nodes (e.g., for interactive applications where request latencies are important).

ARENA-BASED MEMORY MANAGEMENT

An arena-based memory management system is disclosed. In response to a call to reclaim memory storing a group of objects allocated in an arena, an object not in use of the group of objects allocated in the arena is collected. A live object of the plurality of objects is copied from the arena to a heap.

Systems and Methods for Database Management Using Append-Only Storage Devices
20200364197 · 2020-11-19 ·

An apparatus is disclosed. The apparatus may be implemented in a database node or a storage node and includes one or more processors and memory storing instructions for causing the processor to perform a number of operations. Responsive to a page write request, the apparatus determines an identifier corresponding to the requested page, sends component blocks corresponding to the page to a storage node for appending to an append-only storage log of the storage node, receives the physical location of the stored component blocks, and associates the physical storage location of the stored component blocks with the logical identifier corresponding to the page.

Reclamation of in-memory database memory resources
10754772 · 2020-08-25 · ·

A method for reclaiming memory resources may include segmenting a plurality of memory resources in an in-memory database into a first resource partition and a second resource partition; generating, for the first resource partition, a first heap containing a first plurality of memory resources sorted based on an age of data occupying the first plurality of memory resources; generating, for the second resource partition, a second heap containing a second plurality of memory resources sorted based on an age of data occupying the second plurality of memory resources; and when a shortage of memory resources is detected, identifying, from the first heap, a first memory resource containing a least recently used data, identifying, from the second heap, a second memory resource containing a least recently used data, and reclaiming the first memory resource and/or the second memory resource. Related systems and articles of manufacture are also disclosed.

COORDINATED GARBAGE COLLECTION IN DISTRIBUTED SYSTEMS
20200257573 · 2020-08-13 ·

Fast modern interconnects may be exploited to control when garbage collection is performed on the nodes (e.g., virtual machines, such as JVMs) of a distributed system in which the individual processes communicate with each other and in which the heap memory is not shared. A garbage collection coordination mechanism (a coordinator implemented by a dedicated process on a single node or distributed across the nodes) may obtain or receive state information from each of the nodes and apply one of multiple supported garbage collection coordination policies to reduce the impact of garbage collection pauses, dependent on that information. For example, if the information indicates that a node is about to collect, the coordinator may trigger a collection on all of the other nodes (e.g., synchronizing collection pauses for batch-mode applications where throughput is important) or may steer requests to other nodes (e.g., for interactive applications where request latencies are important).

DYNAMIC ALLOCATION OF MEMORY BETWEEN CONTAINERS
20200250087 · 2020-08-06 ·

Techniques are presented for dynamically allocating memory between containers. These techniques include (a) assigning a first portion of memory to a first container and a second portion of memory to a second container, the first and second portions overlapping to form a shared portion of memory assigned to both containers; (b) during a first interval, caching first data in a particular page of the shared portion by first data storage software executing within the first container; (c) during a second interval, caching second data in the particular page of the shared portion by second data storage software executing within the second container; (d) during the first interval, selectively enabling the first data storage software to access the particular page and blocking the second data storage software from accessing the particular page; and (e) during the second interval, selectively enabling the second data storage software to access the particular page and blocking the first data storage software from accessing the particular page.