Resilient Distributed Garbage Collection via Per-Node Counters
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


