NUMA Garbage Collection via Local Memory Pool Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In non-uniform memory access (NUMA) computing devices, existing garbage collection methods fail to maximize local memory accesses and minimize remote memory accesses efficiently, leading to suboptimal system performance and efficiency.

Innovation Solution

The method involves assigning processing units and memories to locality groups (Igroups) based on access latency, dividing the heap space into pools, and utilizing garbage collector threads with separate queues for local and remote Igroups to process objects, thereby maximizing local memory accesses and minimizing remote ones.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing garbage collection methods are used in NUMA computing devices, then garbage collection can be performed, but local memory accesses are not maximized and remote memory accesses are not minimized efficiently

Engineering Contradiction:
Improvegarbage collection efficiencyVSAvoidmemory access latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The heap space is divided into multiple pools, with each pool assigned to a specific Igroup. This segmentation allows garbage collector threads to process objects in pools based on their Igroup affiliation, maximizing local memory accesses and minimizing remote accesses by keeping objects within their originating Igroup when possible.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different pools are assigned to different Igroups based on memory access latency characteristics. Garbage collector threads are assigned to specific Igroups and preferentially process pools within their assigned Igroup, creating a localized processing quality that optimizes memory access patterns for each thread's operational context.

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If memory is accessed remotely in NUMA computing devices, then more memory pools can be utilized, but system performance and efficiency deteriorate due to increased access latency

Engineering Contradiction:
Improvememory pool availabilityVSAvoidsystem performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Pools are pre-assigned to specific Igroups based on memory access latency characteristics before garbage collection begins. This preliminary assignment ensures that when garbage collection occurs, threads can immediately access pools within their assigned Igroup without incurring remote access latency, while still having the option to access pools in other Igroups when necessary.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If Young objects are kept local in the same Igroup, then memory access latency is reduced, but memory usage balance across Igroups may deteriorate

Engineering Contradiction:
Improveaccess latencyVSAvoidmemory usage balance
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system dynamically manages object placement by Igroup based on the object's age and lifecycle stage. Young objects are kept local to their originating Igroup to minimize access latency, while Old objects are distributed across multiple Igroups to balance memory usage. This dynamic approach allows the system to optimize for different priorities at different stages of object lifecycle.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The garbage collector periodically redistributes Old objects across different Igroups during collection cycles. This periodic action prevents any single Igroup from becoming overloaded with Old objects, thereby maintaining memory usage balance across the system while allowing Young objects to remain local for optimal access performance.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10963376B2NUMA-aware garbage collection
Publication Date: 2021.03.30 ORACLE INT CORP
  • US10963376B2 patent drawing
  • US10963376B2 patent drawing
  • US10963376B2 patent drawing

AI summary

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.