Application Startup Acceleration via Login-Phase Pre-fetching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current startup acceleration methods for applications are inefficient due to conflicts between IO requests and inaccurate pre-fetched data, leading to prolonged startup procedures, especially when the pre-fetched data's accuracy is low and the cache does not have the needed data.
Innovation Solution
A method where the login process of an application is first started, and once completed, it enables the main process, allowing pre-fetched data to be loaded into the cache. This prevents conflicts between IO requests by stopping the pre-fetching of data when the main process begins, utilizing the faster cache read speed to accelerate startup, and using historical startup procedures to ensure accurate pre-fetched data is read during the complete startup process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data pre-fetching is performed during the preset period of time, then some data can be loaded into cache, but when the process startup time is less than the preset period, other data is incorrectly pre-fetched, and when the process startup time is greater than the preset period, needed data is not pre-fetched
Solution Approach 1:
The patent performs preliminary analysis of the complete startup procedure to identify all data that will be read during the entire startup process. This preliminary action ensures that the pre-fetching operation targets exactly the needed data without missing any required files or pre-fetching unnecessary data, thereby resolving the accuracy problem while maintaining efficiency.
Solution Approach 2:
The patent uses historical startup procedure data as feedback to continuously optimize the pre-fetching process. By analyzing actual startup behavior and file access patterns from previous runs, the system adjusts the pre-fetching strategy to match real startup time requirements, ensuring both accuracy and efficiency are maintained across different startup scenarios.
2Reliability
If the process is suspended during startup to allow pre-fetching, then data can be loaded into cache, but the process cannot proceed until pre-fetching is complete, prolonging the startup procedure
Solution Approach 1:
The patent performs the pre-fetching operation in advance during the login process startup, before the main process needs to access the data. This preliminary action ensures that all required data is already in the cache when the main process starts, eliminating the need to suspend the main process and thereby reducing startup time while maintaining data availability.
Solution Approach 2:
The patent dynamically adjusts the pre-fetching operation based on the startup stage. During the login process, pre-fetching is actively performed in parallel. When the main process startup begins, the pre-fetching is automatically stopped, allowing the main process to proceed without suspension while still benefiting from the pre-loaded cache data.
3Productivity
If pre-fetching is performed in parallel with the login process, then startup acceleration is achieved, but IO request conflicts may occur
Solution Approach 1:
The patent dynamically controls the pre-fetching operation by starting it during the login process and automatically stopping it when the main process startup is detected. This dynamic control allows parallel execution during the safe window of the login process while preventing IO conflicts during the main process startup, thereby maintaining both acceleration and stability.
Solution Approach 2:
The patent performs pre-fetching as a preliminary action during the login process startup, completing the data loading before the main process begins. This timing strategy achieves startup acceleration by utilizing the login process time, while avoiding IO conflicts by ensuring pre-fetching is complete before the main process starts its own file access operations.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
Described is a startup accelerating method and apparatus. The method includes: obtaining, when it is monitored that a login process of an application is started up, pre-fetched data corresponding to a main process of the application, and loading the obtained pre-fetched data into a cache, the pre-fetched data being obtained according to a historical startup procedure for the main process of the application; stopping, when it is monitored that the startup of the login process is completed or it is monitored that the main process of the application is started up, obtaining the pre-fetched data corresponding to the main process of the application; and completing a startup procedure of the main process according to the pre-fetched data loaded in the cache. The apparatus includes: an obtaining module, a stopping module and a startup module.