Shared Memory Garbage Collection via Root Set Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing garbage collection techniques are inadequate for shared data entities in client/server systems, as they often require coordination between multiple runtime systems and can disrupt the operation of runtime systems, leading to inefficiencies and reliability issues.

Innovation Solution

A method for garbage collecting shared data entities involves identifying a root set of shared entities, temporarily disabling new references, and reclaiming memory used by unreachable entities, allowing for concurrent operation of runtime systems and efficient memory management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing garbage collection techniques are used for shared data entities, then memory reclamation is achieved, but coordination between multiple runtime systems is required and operation is disrupted

Engineering Contradiction:
Improvememory reclamation reliabilityVSAvoidcoordination complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the garbage collection process into two distinct phases: a root set identification phase where runtime systems independently identify their root sets, and a garbage collection phase where the shared memory manager performs collection based on aggregated root sets. This segmentation eliminates the need for continuous coordination between runtime systems during garbage collection operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared memory manager acts as an intermediary that aggregates root sets from multiple runtime systems and performs garbage collection independently. This intermediary approach allows runtime systems to operate autonomously while still achieving coordinated garbage collection across the shared memory space.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If existing garbage collection techniques are used for shared data entities, then memory reclamation is achieved, but runtime system operation is disrupted

Engineering Contradiction:
Improvememory reclamation reliabilityVSAvoidruntime system efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary action by having runtime systems identify and report their root sets before the actual garbage collection occurs. This preliminary identification allows the shared memory manager to perform garbage collection without disrupting runtime system operations, as the root sets are already known and can be used to determine which entities should not be collected.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The garbage collection is performed as a periodic background operation rather than continuously interrupting runtime systems. The shared memory manager periodically aggregates root sets and performs collection cycles, allowing runtime systems to maintain high productivity while memory reclamation occurs in scheduled intervals.

Inventive Principle:
Principle #19Periodic action

3Ease of operation

If runtime systems independently manage memory, then operational independence is maintained, but shared entity garbage collection cannot be performed

Engineering Contradiction:
Improveruntime system independenceVSAvoidshared entity memory reclamation
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent merges the independent root set identification capabilities of individual runtime systems with the centralized garbage collection management of the shared memory manager. Each runtime system independently identifies its root sets, and these are combined (aggregated) by the shared memory manager to perform comprehensive garbage collection across all shared entities, achieving both independence and effectiveness.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7788300B2Garbage collection for shared data entities
Publication Date: 2010.08.31 SAP SE
  • US7788300B2 patent drawing
  • US7788300B2 patent drawing
  • US7788300B2 patent drawing

AI summary

Methods and apparatus, including computer systems and program products, for garbage collection of shared data entities. A computer program identifies a set of virtual machines (VMs), each operable to generate references to shared entities stored in shared memory. Each shared entity can include references to one or more of the other shared entities. The program waits for the VMs to independently identify the shared entities that they reference directly, and then initiates a shared garbage collection procedure to identify the shared entities that are not directly or indirectly referenced by any of the VMs and to reclaim the shared memory being used to store those shared entities. The VMs are prevented from generating new references to the shared entities solely during a portion of the shared garbage collection procedure. By minimizing the time during which access to the shared entities is restricted, performance and scalability can be increased.