Primary-Secondary Object Marking for Concurrent Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing garbage collection methods are inefficient and inefficiently scale with secondary objects, leading to increased execution time and memory usage, particularly when secondary objects are referenced by their primary objects.
Innovation Solution
Implement a system that integrates aliveness marking of referenced and secondary objects using a dedicated space, such as a single bit (IS-PRIMARY bit) to indicate primary objects, and utilizes a hash table to efficiently track primary-secondary relationships, avoiding unnecessary storage and computational overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional garbage collection methods are used with separate marking for referenced objects and secondary objects, then completeness of garbage collection is improved, but execution time and device complexity worsen
Solution Approach 1:
The patent merges the marking of referenced objects and secondary objects into a unified process. The garbage collector uses a single marking mechanism that simultaneously handles both referenced objects (accessed through object references) and secondary objects (accessed through secondary object identifiers), eliminating the need for separate marking passes and reducing execution time while maintaining complete garbage collection coverage
2Measurement precision
If separate storage structures are allocated for referenced objects and secondary objects, then tracking accuracy is improved, but memory usage worsens
Solution Approach 1:
The patent implements a universal storage structure where a single data structure serves multiple purposes: it stores both object references and secondary object identifiers. The garbage collector uses unified marking bits and a single traversal mechanism that can identify and mark both referenced objects and secondary objects, eliminating the need for separate storage structures and reducing overall memory usage while maintaining accurate tracking of all object relationships
Data Source
Figure 1~2
Figure 3~4
Figure 5~7
AI summary
Managing secondary objects efficiently increases garbage collection concurrency and reduces object storage requirements. Aliveness marking of secondary objects is integrated with aliveness marking of referenced objects. Allocation of reference-sized secondary object identifier fields in objects which are not primary objects is avoided; a dedicated bit specifies primary objects, together with an object relationship table. A primary object is one with at least one secondary object which is deemed alive by garbage collection if the primary object is alive, without being a referenced object of the primary object. Any referenced objects of the alive primary object will also still be deemed alive. Code paths for marking referenced objects can be shared to allow more efficient secondary object marking. Primary-secondary object relationships may be represented in dependent handles, and may be specified in a hash table or other data structure.