Virtual Machine Initialization With Shared Element Mapping for Dynamic GC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection processes in object-oriented computing systems, such as Z-Garbage Collector (ZGC) and Shenandoah GC, are incompatible with existing 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 garbage collection processes dynamically modify references and memory layouts, then memory management efficiency is improved, but compatibility with shared data loading techniques deteriorates

Engineering Contradiction:
Improvememory management efficiencyVSAvoidcompatibility with shared data loading techniques
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a barrier mechanism as an intermediary between the garbage collection process and the shared data loading technique. This barrier intercepts and manages the dynamic modifications made by the garbage collector to references and memory layouts, preventing inconsistencies from propagating to the shared archive. The barrier acts as a mediator that allows both the garbage collector and shared data loading to coexist by translating or buffering their interactions with memory.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent makes the memory layout dynamic by allowing the garbage collector to modify memory layouts during runtime while maintaining compatibility with shared data loading through the barrier mechanism. Instead of relying on static memory layouts, the system dynamically adapts memory organization to garbage collection needs while the barrier ensures shared data integrity.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If static memory layout is used for shared data loading, then compatibility with multiple instances is improved, but flexibility for dynamic memory modification deteriorates

Engineering Contradiction:
Improvecompatibility across multiple instancesVSAvoidmemory layout flexibility
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the memory system into distinct regions: a shared archive with static memory layout for multi-instance compatibility, and a runtime data area with dynamic memory layout for garbage collection flexibility. The barrier mechanism manages the interface between these segments, allowing each to operate with its appropriate level of staticity or dynamics without interfering with the other.

Inventive Principle:
Principle #1Segmentation

3Productivity

If memory addresses are made consistent across instances for shared data loading, then data sharing efficiency is improved, but ability to handle dynamic memory allocation deteriorates

Engineering Contradiction:
Improvedata sharing efficiencyVSAvoiddynamic memory allocation capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent uses copying to resolve the contradiction between consistent memory addresses and dynamic allocation. When instances need to share data from the shared archive, they access it through copied references or pointers that maintain consistency. However, the actual memory allocation and layout can vary dynamically across instances, managed by the barrier mechanism that ensures the copied references remain valid despite underlying memory changes.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20260064449A1Initializing A Virtual Machine
Publication Date: 2026.03.05 ORACLE INT CORP
  • US20260064449A1 patent drawing
  • US20260064449A1 patent drawing
  • US20260064449A1 patent drawing

AI summary

A system executes an initialization process for initializing a virtual machine. To execute the initialization process, the system generates an element loading schedule that includes a set of element identifiers that identify a set of elements for initializing the virtual machine arranged in a sequence corresponding to a traversal of the set of elements to transitive closure. The system initializes a background data area and loads a first subset of elements, of the elements for initializing the virtual machine, on the background data area in accordance with the sequence of the set of element identifiers in the element loading schedule. The system initializes a runtime data area and maps the first subset of elements from the background data area to the runtime data area.