Pre-marking Objects for Concurrent Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrent garbage collection in computer systems faces performance degradation due to the need to stop mutators for reachability graph creation, leading to inaccurate reachability graphs and increased processing time, especially with multi-threaded applications where object references constantly evolve.

Innovation Solution

A pre-marking phase identifies essential objects, marking them as non-recyclable, and activating barriers to ensure accurate garbage collection, allowing the garbage collector to run concurrently with the mutator and dynamically compute recyclable objects, reducing overhead and improving predictability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the garbage collector stops all mutators to build a reachability graph, then the accuracy of identifying reachable objects is improved, but the system performance degradation increases due to significant processing time

Engineering Contradiction:
Improveaccuracy of identifying reachable objectsVSAvoidsystem performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing a pre-marking phase before the main garbage collection cycle. During this phase, the GC pre-identifies and marks objects that are likely to be reachable, so that when the mutator resumes execution, the GC already has a head start on building the reachability graph. This reduces the time the mutator needs to be stopped while maintaining accurate identification of reachable objects.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If concurrent garbage collection is implemented to avoid stopping mutators, then system performance is improved, but the reachability graph becomes inaccurate because the set of reachable objects constantly evolves during mutator execution

Engineering Contradiction:
Improvesystem performanceVSAvoidaccuracy of reachability graph
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent implements continuity of useful action by allowing the garbage collector and mutator to operate concurrently throughout the garbage collection cycle. The GC continuously marks objects as reachable while the mutator continues to execute and potentially create new reachable objects. This is combined with pre-marking to ensure accuracy is maintained despite concurrent execution.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The pre-marking phase performs preliminary identification of reachable objects before the concurrent GC phase begins. This preliminary action establishes a baseline reachability graph that the concurrent GC can then refine, ensuring accuracy is maintained even as objects are constantly being created and referenced during mutator execution.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If recursive scanning of all objects is performed to accurately mark reachable objects during concurrent GC, then the accuracy of reachability graph is improved, but the processing time and complexity increase

Engineering Contradiction:
Improveaccuracy of reachability graphVSAvoidcomplexity of garbage collection process
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The pre-marking phase performs preliminary scanning and marking of objects that are likely to be reachable, based on root objects and recent allocation patterns. This preliminary action reduces the scope of objects that need to be scanned during the main GC phase, thereby reducing both processing time and complexity while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7783681B1Method and system for pre-marking objects for concurrent garbage collection
Publication Date: 2010.08.24 ORACLE AMERICAN INC
  • US7783681B1 patent drawing
  • US7783681B1 patent drawing
  • US7783681B1 patent drawing

AI summary

A method and system for providing an efficient and concurrent garbage collection and mutator execution in a computer system includes identifying an object required by an application running on a mutator during a garbage collection cycle. The identified object is pre-marked by a garbage collector as a non-recyclable object during a pre-marking phase. One or more barriers to be executed by the mutator are then activated. The barriers enable the garbage collector to complete the garbage collection cycle by marking objects essential to the mutator so that unmarked objects may be recycled. The garbage collector is executed concurrently with the mutator so that the garbage collector can dynamically compute a set of recyclable objects in memory at the end of a garbage collection cycle.