Virtual Machine Pool Management for In-Vehicle Application Startup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In-vehicle devices face challenges in accelerating application startup due to limited resources and the inability to distinguish between sleep and shutdown power-off events, making existing techniques like hibernation and hardware performance improvements ineffective.

Innovation Solution

A virtual machine pool management system that pre-pools virtual machine components before application startup, allocating resources based on a manifest and loading core program packages into base virtual machines, allowing for efficient resource management and application logic shifting to accelerate startup times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional application startup methods are used in in-vehicle devices, then the system maintains simplicity and resource constraints are met, but application startup speed is slow

Engineering Contradiction:
Improveapplication startup speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-pooling virtual machine components (classloaders, bytecodes, core program packages) before application startup. This allows the virtual machine to be partially initialized and resources to be pre-allocated, so that when an application needs to start, the heavy initialization work has already been completed, significantly reducing startup time without requiring permanent complex infrastructure

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The virtual machine startup process is segmented into distinct phases: pool creation phase (pre-initialization of VM components), application assignment phase (loading specific applications), and execution phase. This segmentation allows the system to prepare generic VM infrastructure in advance and only load application-specific components when needed, improving startup speed while managing complexity through phased initialization

Inventive Principle:
Principle #1Segmentation

2Speed

If hibernation technique is used to accelerate startup, then startup time may be reduced, but it requires distinguishing between sleep and shutdown events which in-vehicle devices cannot do

Engineering Contradiction:
Improvestartup speedVSAvoidpower event differentiation capability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The pre-pooled virtual machine pool serves multiple functions: it acts as a hibernation mechanism for sleep events (preserving VM state for quick resumption) and as a cold startup mechanism for shutdown events (having pre-initialized components ready for rapid application loading). This universal approach eliminates the need for separate handling logic for different power events, making the system adaptable to both scenarios without requiring power event differentiation capability

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Speed

If hardware performance improvements are made to accelerate startup, then startup speed may improve, but hardware resources are limited in in-vehicle devices

Engineering Contradiction:
Improvestartup speedVSAvoidhardware resources
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Instead of improving hardware performance, the system creates software copies of virtual machine components in a pooled state. Classloaders, bytecodes, and core program packages are copied and pre-loaded into the virtual machine pool during idle time or system initialization, allowing rapid application deployment without requiring additional hardware resources. The same physical hardware is utilized more efficiently through software-based parallelization

Inventive Principle:
Principle #26Copying

4Productivity

If virtual machine pool management is implemented to improve startup speed, then application loading is accelerated, but resource allocation complexity increases

Engineering Contradiction:
Improveapplication loading efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The virtual machine pool manager implements self-service mechanisms where the pool automatically manages its own components. When applications are assigned to pooled virtual machines, the system automatically handles resource allocation, classloader instantiation, and bytecode loading without requiring complex external orchestration. The pooled components serve themselves by being readily available for immediate assignment, improving productivity while the automation reduces perceived complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11915024B2Pool management for in-vehicle device application startup
Publication Date: 2024.02.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11915024B2 patent drawing
  • US11915024B2 patent drawing
  • US11915024B2 patent drawing

AI summary

A method, a computer program product, and a system for pre-pooling virtual machine components prior to application startup. The method includes reading a virtual machine pool manifest by a virtual machine pool manager. The virtual machine pool manifest includes an initial number of virtual machines to launch, how many virtual machines to allocate resources to, and an amount of resources to allocate based on a virtual machine resource definition. The method also includes launching a plurality of base virtual machines into a virtual machine pool and based on the initial number provided by the virtual machine pool manifest. The base virtual machines lack initial application assignments. The method further includes allocating initial resources to a portion of the base virtual machines based on a virtual machine resource definition in the virtual machine pool manifest. The method includes loading core program packages into the portion of the base virtual machines.