Continuous Optimizer for JVM Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Optimizing application performance for JVM-style languages is challenging due to the need for ecosystem-level tuning, especially in environments with multiple JVMs or microservices, where resource constraints and frequent code changes require continuous optimization to maintain performance.

Innovation Solution

A continuous optimizer (CO) monitors the development pipeline, detects code promotions, and uses JVM profiling tools to determine optimal JVM parameters for improved performance, storing these as profiles for future deployment, and applies rules to decide on resource allocation based on performance metrics and cost considerations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If JVM parameters are manually tuned for each application version, then performance can be optimized, but the time and complexity of deployment increases significantly

Engineering Contradiction:
Improveapplication performanceVSAvoiddeployment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system enables self-service by automatically profiling and optimizing JVM parameters without manual intervention. The continuous optimizer autonomously monitors application behavior, analyzes performance metrics, and adjusts JVM settings based on detected code changes and performance requirements.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by proactively detecting code promotions in the development pipeline and instantiating profiling tools before performance degradation occurs. This allows optimization to be prepared in advance rather than reactively after performance issues arise.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If JVM profiling tools are instantiated for every code promotion, then optimal parameters can be determined, but resource consumption and system complexity increase

Engineering Contradiction:
Improveparameter optimization accuracyVSAvoidsystem complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system implements feedback by continuously monitoring application performance metrics and using this information to adjust JVM parameters. The continuous optimizer creates a closed-loop system where performance data feeds back into parameter adjustment decisions, enabling precise optimization without manual intervention.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system applies dynamics by making JVM parameters adaptive rather than static. Parameters are dynamically adjusted based on real-time performance monitoring and detected code changes, allowing the system to respond flexibly to varying application requirements without fixed configuration.

Inventive Principle:
Principle #15Dynamics

3Reliability

If multiple JVMs are run for different microservices, then service isolation is improved, but resource overhead and cost increase

Engineering Contradiction:
Improveservice isolationVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system applies universality by creating a multi-functional JVM infrastructure that can serve multiple microservices. The shared JVM is configured to handle different services with appropriate isolation mechanisms, allowing one JVM to perform multiple functions rather than requiring separate JVMs for each service.

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

Solution Approach 2:

The system merges multiple JVM instances into a single shared JVM environment. By combining resources while maintaining service isolation through configuration and management layers, the system reduces overall resource overhead while preserving the reliability benefits of service isolation.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11972242B2Runtime environment optimizer for JVM-style languages
Publication Date: 2024.04.30 RED HAT LLC
  • US11972242B2 patent drawing
  • US11972242B2 patent drawing
  • US11972242B2 patent drawing

AI summary

A continuous optimizer detects a code promotion of a candidate release of an application. In response to the code promotion, the continuous optimizer instantiates a JVM and profiles the application to obtain a JVM profile. The continuous optimizer benchmarks the candidate release against the JVM and JVM profile. The continuous optimizer further compares the benchmark results with previous benchmark results. Based upon the comparison and a set of rules, the continuous optimizer causes the candidate release to be promoted.