Shared Memory Garbage Collection via Root Set Segmentation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If existing garbage collection techniques are used for shared data entities, then memory reclamation is achieved, but runtime system operation is disrupted
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.
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.
3Ease of operation
If runtime systems independently manage memory, then operational independence is maintained, but shared entity garbage collection cannot be performed
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.
Data Source
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.


