Dynamic Link Library Replacement for Seamless Application Upgrades
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
Data Source
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.


