I/O Interceptor Logic for Write Reordering and Intelligent Flush Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The local storage stack in mobile devices becomes a performance bottleneck due to blocked I/Os during flush commands, as processor performance and wireless data speeds improve but storage stack advancements lag, leading to inefficiencies in data consistency and processing.
Innovation Solution
An I/O interceptor logic section with intelligent flush control is implemented, intercepting write I/Os and flush requests, storing them in temporary buffers, reordering, and combining them for efficient writing to non-volatile storage upon predefined conditions, such as a threshold of data accumulation or a specific time period, ensuring data consistency and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If flush requests are used to ensure data consistency, then data reliability is improved, but I/O performance deteriorates because I/Os are blocked during flush commands
Solution Approach 1:
The system performs preliminary actions by storing write I/Os in temporary buffers and reordering them before actual storage operations. The I/O interceptor logic section intercepts write I/Os and flush requests, stores them in temporary write holding buffers, and reorders them to optimize storage efficiency before committing to non-volatile storage, thereby reducing the impact of flush operations on overall I/O performance.
Solution Approach 2:
An I/O interceptor logic section is introduced as an intermediary component between the application and the storage stack. This intermediary manages the conflict between data consistency requirements and performance demands by coordinating flush requests with write operations, using temporary buffers and reordering logic to decouple the timing of flush commands from actual storage commitments.
2Reliability
If individual write operations are performed immediately, then data consistency is maintained, but storage efficiency deteriorates due to overhead of frequent small writes
Solution Approach 1:
The system merges multiple individual write operations into combined storage operations. The re-order logic section combines re-ordered write I/Os into a combined write I/O, which is then written to non-volatile storage in a single operation. This merging reduces the overhead associated with frequent separate write operations while maintaining data consistency through the intermediary buffer management.
Solution Approach 2:
Write operations are performed preliminarily in temporary buffers and reordered to optimize storage patterns before actual commitment to non-volatile storage. This preliminary organization allows multiple small writes to be consolidated into larger, more efficient storage operations, reducing the energy overhead of frequent small writes while preserving data integrity.
3Speed
If processor performance is improved, then computing speed is enhanced, but storage stack becomes a bottleneck due to lack of corresponding advancements
Solution Approach 1:
The system introduces dynamic behavior to the storage stack through the I/O interceptor logic section, which dynamically intercepts, buffers, reorders, and combines write operations based on system conditions. This dynamic approach allows the storage subsystem to adapt to high processor speeds by batching and optimizing write operations, thereby improving storage throughput to match processor performance improvements.
Solution Approach 2:
The I/O interceptor logic section serves as a mediator between the high-speed processor and the relatively slower storage stack. By introducing this intermediary layer with buffering and reordering capabilities, the system can absorb the speed differential, allowing the processor to continue operating at high speeds while the storage operations are optimized and batched efficiently.
Data Source
AI summary
Inventive aspects include an input/output (I/O) interceptor logic section having an I/O interface coupled with a storage stack. The I/O interface can intercept write I/Os, read I/Os, and flush requests from an application. A temporary write holding buffer can store the write I/Os. A re-order logic section can change an order of the write I/Os, and combine the re-ordered write I/Os into a combined write I/O. An intelligent flush control logic section can receive the flush requests from the I/O interface, communicate write I/O completion of the write I/Os to the application without the write I/Os having been written to a non-volatile storage device, and cause the combined write I/O to be written to the non-volatile storage device responsive to at least one of a predefined Nth flush request from among the plurality flush requests, a threshold amount of data being accumulated, or an expiration of a predefined time period.


