Resilient Distributed Garbage Collection via Per-Node Counters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current distributed garbage collection in X10 cannot collect objects remotely-referenced from dead places, leading to potential memory leaks due to uncollectable garbage objects.

Innovation Solution

A method for resilient distributed garbage collection that maintains separate count values for remote nodes and uses per-node sending counters to determine when an object can be collected, allowing for garbage collection even from dead nodes without additional synchronous communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If distributed garbage collection is implemented to collect remotely-referenced objects, then memory management capability is improved, but the system cannot collect objects from dead nodes leading to memory leaks

Engineering Contradiction:
Improvefault toleranceVSAvoidmemory leak
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent segments the reference counting mechanism into per-node counters, where each node maintains its own counter for tracking remote references to objects. This segmentation allows the system to independently track and manage references from each node, including dead nodes, enabling garbage collection to proceed even when some nodes are unavailable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (per-node sending counters and home node tracking) that mediates between remote nodes and the garbage collection process. This intermediary allows the system to track references indirectly through home nodes, enabling collection of objects referenced from dead nodes without requiring direct communication with those dead nodes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If separate count values are maintained for each remote node to enable garbage collection from dead nodes, then fault tolerance is improved, but system complexity increases

Engineering Contradiction:
Improvefault toleranceVSAvoidgarbage collection mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent makes the home node and per-node counters serve multiple functions: they track remote references for garbage collection decisions, identify which nodes have references to objects, and enable the system to handle both alive and dead nodes uniformly. This multi-functionality reduces the need for separate specialized mechanisms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The garbage collection mechanism uses existing local garbage collection at each node without modification, allowing each node to independently manage its own references. The per-node counters enable the system to self-service by tracking references locally at each node rather than requiring centralized tracking, reducing overall system complexity.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If per-node sending counters are added to track remote references, then garbage collection accuracy is improved, but overhead in normal execution increases

Engineering Contradiction:
Improvereference counting accuracyVSAvoidexecution overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent implements per-node sending counters only when necessary for remote reference tracking, rather than maintaining full counters for all possible references at all times. The home node tracking mechanism allows the system to focus counting resources on relevant nodes, reducing overall overhead while maintaining accuracy for garbage collection decisions.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11327751B2Resilient distributed garbage collection
Publication Date: 2022.05.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11327751B2 patent drawing
  • US11327751B2 patent drawing
  • US11327751B2 patent drawing

AI summary

In a distributed processing system having multiple processing nodes including alive nodes and dead nodes, a method is provided for collecting an object from the alive nodes. The method includes maintaining a separate count value for each of remote nodes at which the object is remotely-referenced. The method further includes collecting the object for garbage collection when the separate count value for all of the remotes nodes is zero. The method also includes adding at least one per node sending counter responsive to a remote reference of the object being sent from a first remote node to a particular one of the remote nodes. The at least one per node sending counter is added at the first remote node to count a number of remote-references of the object being sent to the particular one of the remote nodes.