NUMA Garbage Collection via Local Pool Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-uniform memory access (NUMA) computing devices face inefficiencies in memory management due to varying costs of memory access, which existing garbage collection methods fail to optimize effectively, leading to suboptimal system performance and efficiency.

Innovation Solution

The implementation of garbage collector threads that maximize local memory accesses by dividing the heap space into pools and regions, with threads processing objects within local queues and copying Young objects to pools of the same locality group and Old objects to pools associated with the garbage collector thread, thereby minimizing remote memory accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing garbage collection methods are used in NUMA computing devices, then memory management is performed, but memory access efficiency deteriorates due to unoptimized remote memory accesses

Engineering Contradiction:
Improvememory management efficiencyVSAvoidmemory access latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The heap space is divided into multiple pools, with each pool associated with a specific lgroup. This segmentation allows garbage collector threads to organize and process objects based on their local memory regions, reducing cross-lgroup memory accesses and improving memory management efficiency in NUMA systems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local queues within each pool that are optimized for local memory access. Garbage collector threads process objects in these local queues first, ensuring that frequently accessed objects remain in local memory regions. This local optimization reduces remote memory accesses and improves overall memory access efficiency.

Inventive Principle:
Principle #3Local quality

2Reliability

If garbage collector threads access remote memory regions, then comprehensive garbage collection is achieved, but system performance deteriorates due to increased access cost

Engineering Contradiction:
Improvegarbage collection completenessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the heap into multiple pools associated with different lgroups, allowing garbage collector threads to process objects locally within their assigned lgroup first. This segmentation enables comprehensive garbage collection while minimizing remote memory accesses, thus maintaining both reliability and performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary organization of objects into local queues within each pool before garbage collection processing. This preliminary action ensures that objects are pre-positioned in local memory regions, allowing garbage collector threads to perform comprehensive collection while minimizing the need for subsequent remote memory accesses.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11775429B2NUMA-aware garbage collection
Publication Date: 2023.10.03 ORACLE INT CORP
  • US11775429B2 patent drawing
  • US11775429B2 patent drawing
  • US11775429B2 patent drawing

AI summary

Methods and systems for garbage collection are described. In some embodiments, Garbage collector threads may maximize local accesses and minimize remote access by copying Young objects and Old objects differently. When copying a Young object, a garbage collector thread may determine the lgroup of the pool that contains the object and copy the object to a pool of the same lgroup. The garbage collector thread may spread Old objects among lgroups by copying Old objects to pools of the same lgroup as the respective garbage collector thread. Additional methods and systems are disclosed.