Mobile Storage Discard Scheduling for Lower App Delay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for dispatching discard commands in mobile devices lead to prolonged response times and Application Not Response (ANR) issues due to inefficient handling of discard commands, particularly in real-time and lazy modes, which do not effectively balance the processing of these commands with foreground application performance.
Innovation Solution
A method and system that dynamically determine the mode of dispatching discard commands based on the status of the mobile device and storage device, using coarse-granularity when garbage collection is urgent and fine-granularity when the device is idle or the storage is full, thereby optimizing the dispatch process to minimize response time and ANR occurrences.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If discard commands are dispatched in real-time mode, then storage device maintenance is improved, but application response time deteriorates
Solution Approach 1:
The system dynamically switches between real-time mode and lazy mode for dispatching discard commands based on the current status of foreground applications. When foreground applications are detected, the system switches to lazy mode to prioritize application response time. When no foreground applications are active, the system switches to real-time mode to maintain storage device performance. This dynamic adaptation resolves the contradiction by making the dispatch mode flexible rather than fixed.
Solution Approach 2:
The system changes the parameter of discard command dispatch timing based on system state. In real-time mode, discard commands are dispatched immediately upon detection. In lazy mode, the system waits until foreground applications are no longer active before dispatching discard commands. This parameter change in dispatch timing resolves the contradiction between immediate storage maintenance and application responsiveness.
2Loss of time
If discard commands are dispatched in lazy mode, then application response time is improved, but storage device performance deteriorates
Solution Approach 1:
The system dynamically transitions from lazy mode to real-time mode when storage device performance degradation is detected or when no foreground applications are active. This ensures that storage maintenance is performed promptly under appropriate conditions, resolving the contradiction by making the system adaptive rather than statically delayed.
Solution Approach 2:
The system monitors the status of foreground applications and storage device conditions, using this feedback to determine when to switch between lazy mode and real-time mode. This feedback mechanism ensures that discard commands are dispatched at optimal times, balancing application response time with storage device performance.
3Reliability
If discard commands are processed immediately, then storage device health is improved, but foreground application performance deteriorates
Solution Approach 1:
The system performs preliminary detection of foreground application status before dispatching discard commands. By checking whether foreground applications are active beforehand, the system可以避免 disrupting application performance while still maintaining storage device health through timely discard command dispatching when appropriate.
Solution Approach 2:
The system dynamically adjusts the discard command dispatch strategy based on real-time detection of foreground application status. When foreground applications are detected, the system delays discard command dispatch to preserve application performance. When no foreground applications are active, the system immediately dispatches discard commands to maintain storage device health. This dynamic adjustment resolves the contradiction between storage health and application performance.
Data Source
AI summary
A method for reducing delay of an application of a mobile device, includes: detecting at least one foreground application and obtaining input/output (I/O) throughput of the at least one foreground application; determining a status of the mobile device, based on the I/O throughput of the at least one foreground application; and determining a mode of dispatching discard commands to a storage device of the mobile device, based on the determined status of the mobile device.


