JVM Snapshot Handler for Rapid Server Instantiation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for speeding up server instantiation in cloud computing are inefficient due to lengthy startup times, and existing snapshot capabilities require modification of application source code or are limited in flexibility, making them unsuitable for all scenarios.

Innovation Solution

A method that registers a snapshot handler with a process virtual machine's event monitoring subsystem to capture the execution state at specified trigger events, such as method entry or exit, without modifying the application source code, using trace or breakpoint capabilities within the JVM.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a snapshot is performed late in application execution to capture optimized code paths, then application performance is improved, but open resources such as files and network connections are not captured resulting in incorrect restoration

Engineering Contradiction:
Improveapplication performanceVSAvoidsnapshot correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by executing application initialization code and optimizing code paths before the snapshot is taken. The snapshot is captured at a strategically chosen point after common code paths have been executed and optimized, but before resources need to be opened, ensuring both performance optimization and snapshot correctness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If a snapshot is performed early in application execution to avoid open resource issues, then snapshot correctness is improved, but additional code execution time increases reducing productivity

Engineering Contradiction:
Improvesnapshot correctnessVSAvoidinstantiation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs necessary preliminary actions (code execution and optimization) before the snapshot point to ensure the application is in an optimized state. By carefully selecting the snapshot point after optimization but before resource opening, the system minimizes the amount of preliminary action needed while maintaining snapshot correctness.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If snapshot capability is implemented within application source code, then snapshot flexibility is improved, but application development time and complexity increase

Engineering Contradiction:
Improvesnapshot flexibilityVSAvoidapplication development complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary component (snapshot agent) that runs alongside the application but does not require modification of the application source code. This intermediary communicates with the application through standardized interfaces, providing snapshot functionality while maintaining application integrity and reducing development complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The snapshot system uses the application's own execution events and resources to trigger and perform snapshots. By leveraging the application's natural execution flow and existing infrastructure, the system provides snapshot functionality without requiring the application to request or manage snapshot operations directly.

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If snapshot capability is implemented within application source code, then snapshot control is improved, but security requirements restrict access to source code

Engineering Contradiction:
Improvesnapshot controlVSAvoidimplementation ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The snapshot agent acts as an intermediary that provides snapshot control without requiring access to the application's source code. It communicates with the application through external interfaces and uses the application's execution events to trigger snapshots, maintaining security while providing control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11656888B2Performing an application snapshot using process virtual machine resources
Publication Date: 2023.05.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11656888B2 patent drawing
  • US11656888B2 patent drawing
  • US11656888B2 patent drawing

AI summary

A snapshot handler is registered with an event monitoring subsystem of a process virtual machine, the registering specifying a trigger event of the snapshot handler, wherein the trigger event comprises execution of a specified portion of an application executing in the process virtual machine, the trigger event specified externally from a source code of the application. Responsive to the event monitoring subsystem detecting an occurrence of the trigger event, the snapshot handler is executed, storing data of an execution state of the process virtual machine at a time of occurrence of the trigger event.