Dynamic Link Library Replacement for Seamless Application Upgrades

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application version upgrading methods often interrupt normal operation, especially for applications accessed by many users, resulting in significant downtime and unpredictable outcomes.

Innovation Solution

The method involves determining the functions invoked by a thread in an application, identifying corresponding functions in a new application version, replacing the dynamic link library, and updating the process to run the new functions without restarting the application, thereby minimizing downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application version upgrading is performed by restarting the application, then the new version functions can be deployed, but normal operation is interrupted and users experience downtime

Engineering Contradiction:
Improveapplication availabilityVSAvoiddowntime during upgrade
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application is segmented into multiple processes (first application process and second application process). The old version runs in the first process while the new version is loaded in the second process. This segmentation allows the upgrade to occur without stopping the original process, thus maintaining availability while enabling version transition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second application process (new version) is started and loaded into memory before the first process (old version) is terminated. By performing the preliminary action of loading the new version in advance, the system ensures that when the switch occurs, the new version is already ready to execute, minimizing transition time and maintaining service continuity.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If the application is restarted for version upgrading, then the dynamic link library can be replaced, but the operation is interrupted and outcomes are unpredictable

Engineering Contradiction:
Improveversion deployment capabilityVSAvoidoperation continuity
Core Design Contradiction:
Ease of manufactureVSEase of operation

Solution Approach 1:

A process switching mechanism acts as an intermediary between the old and new application processes. The switching module coordinates the transition by managing the termination of the first process and the activation of the second process, ensuring a controlled and predictable upgrade without service interruption. This intermediary mechanism enables seamless version deployment while maintaining operational continuity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11281445B2Method, apparatus, device and storage medium for upgrading application
Publication Date: 2022.03.22 BEIJING BAIDU NETCOM SCI & TECH CO LTD
  • US11281445B2 patent drawing
  • US11281445B2 patent drawing
  • US11281445B2 patent drawing

AI summary

Embodiments of the present disclosure relate to the field of cloud computing, and specifically to a method, apparatus, device, and computer storage medium for upgrading an application. The method may include: determining, for a first thread executed by a first process of a first application, a first function invoked by the first thread; determining a second function corresponding to the first function in a second application, the first application to be upgraded to the second application, and the first function to be upgraded to the second function; replacing a first dynamic link library of the first application comprising the first function based on a second dynamic link library of the second application comprising the second function; and updating the first process based on the second dynamic link library, such that the updated first process runs the second function in the second application.