Class Loading Sequence for GC-Compatible Shared Memory Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection processes in object-oriented computing systems are incompatible with shared data loading techniques like Class Data Sharing (CDS) due to dynamic modifications of references and memory layouts, leading to inconsistencies in memory mapping across instances.

Innovation Solution

A system loads elements on a background data area following a pre-arranged sequence corresponding to a traversal of transitive closure, using background and runtime data threads to manage memory while preserving reference integrity, allowing garbage collection processes to dynamically modify references and memory layouts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared data loading techniques like Class Data Sharing (CDS) are used, then class loading speed is improved and memory footprint is reduced, but compatibility with garbage collection processes deteriorates due to dynamic modifications of references and memory layouts

Engineering Contradiction:
Improveclass loading speedVSAvoidcompatibility with garbage collection
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a class metadata structure that acts as an intermediary between the shared archive and the runtime environment. This metadata contains static references to class elements that are preserved across garbage collection cycles, while dynamic references are handled separately through indirection mechanisms. The metadata structure mediates between the static requirements of CDS and the dynamic requirements of modern GC processes, allowing both to coexist without conflict.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments class data into multiple components: shared static metadata stored in the archive, dynamic runtime data in the heap, and indirection structures that connect them. This segmentation allows the static portions to be shared across instances while dynamic portions can be modified by garbage collection processes. The separation of concerns enables CDS to maintain its benefits while GC processes can operate independently on dynamic segments.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If static memory layout with consistent memory addresses is used, then shared data loading is enabled, but adaptability to dynamic memory modifications deteriorates

Engineering Contradiction:
Improveshared data loading capabilityVSAvoidmemory layout consistency
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent introduces dynamic indirection structures that allow memory layouts to change while maintaining logical consistency. Runtime data areas use dynamic reference updates and indirection tables that can adapt to garbage collection-induced memory movements. The static archive contains only immutable metadata, while the runtime environment dynamically resolves references through indirection structures that adjust to memory layout changes without breaking shared data access.

Inventive Principle:
Principle #15Dynamics

3Reliability

If dynamic reference modification by garbage collection is allowed, then memory management efficiency is improved, but reference integrity in shared data loading deteriorates

Engineering Contradiction:
Improvememory management efficiencyVSAvoidreference integrity
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms through GC-safe reference updates and indirection structures. When garbage collection modifies memory layouts, the system uses update barriers and reference tracking to feed back the new memory locations to the appropriate data structures. This feedback loop ensures that static metadata remains synchronized with dynamic runtime data, preserving reference integrity even as memory management processes actively modify references.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12505038B1Loading elements in a computing environment
Publication Date: 2025.12.23 ORACLE INT CORP
  • US12505038B1 patent drawing
  • US12505038B1 patent drawing
  • US12505038B1 patent drawing

AI summary

A system determines a trigger for loading a set of elements on a background data area. In response to determining the trigger for loading the set of elements on the background data area, the system executes a first thread to load the set of elements on the background data area. The first thread accesses a set of element identifiers that identify the set of elements arranged in a sequence corresponding to a traversal of the set of elements to transitive closure. Based on the set of element identifiers, the first thread accesses a dataset that includes data for loading the set of elements and loads the set of elements on the background data area in the sequence corresponding to the traversal of the set of elements to transitive closure. A second thread maps the set of elements from the background data area to a runtime data area.