Build-Time Portable Extension Processing for Cloud Startup

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processing portable extensions at runtime leads to slower startup times and increased memory usage in cloud environments, as they modify metadata models during application boot, complicating the handling of uber-jars and increasing resource utilization across numerous application instances.

Innovation Solution

Processing portable extensions at build time, updating the metadata model with changes, and encoding the metadata into bytecode to enable direct execution, thereby reducing runtime memory usage and startup times by preloading necessary classes and dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If portable extensions are processed at runtime, then application functionality is complete, but startup time increases and memory usage increases

Engineering Contradiction:
Improvestartup timeVSAvoidruntime processing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by processing portable extensions at build time rather than runtime. The system instantiates extensions, executes their events to collect metadata changes, and encodes everything into bytecode during the build phase. This preliminary processing eliminates runtime overhead, directly improving startup time while maintaining complete application functionality.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If portable extensions are processed at runtime, then application functionality is complete, but memory usage increases

Engineering Contradiction:
Improvememory efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system performs preliminary action by encoding all extension metadata changes into bytecode at build time. This eliminates the need to load and process extension metadata at runtime, significantly reducing memory usage while preserving complete application functionality. The bytecode contains all necessary information for extension execution.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If portable extensions are processed at build time, then startup time decreases, but build process complexity increases

Engineering Contradiction:
Improvestartup timeVSAvoidbuild process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary metadata model that mediates between source code compilation and bytecode generation. The metadata model collects changes from extension events during build time, serves as an intermediate representation, and enables systematic processing of extensions without directly complicating the build process. This intermediary structure manages build complexity while achieving fast startup times.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If portable extensions are processed at build time, then runtime memory usage decreases, but build time increases

Engineering Contradiction:
Improvememory efficiencyVSAvoidbuild time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary action by processing extensions at build time, accepting increased build time as a trade-off for significant runtime memory efficiency improvements. The metadata model efficiently collects and encodes extension changes, and the incremental build approach minimizes the build time penalty while achieving superior runtime memory performance.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3885898A1Processing portable extensions at build time
Publication Date: 2021.09.29 RED HAT LLC
  • EP3885898A1 patent drawingFigure 1
  • EP3885898A1 patent drawingFigure 2
  • EP3885898A1 patent drawingFigure 3

AI summary

A method includes receiving an application, where the application includes an extension and a metadata model. The method also includes instantiating the extension and firing an event. The method also includes upon detecting the event at the instantiated extension, creating metadata associated with the application, collecting the metadata associated with the application, and revising the metadata model based on the collected metadata.