Work-Queue Scheduling Engine for Host IO Response Delay
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computational storage systems, the delay in responding to host IO writing operations is significant due to the sequential processing of data within the system, which affects system performance and efficiency.
Innovation Solution
A method and system for high-speed caching of data writing, which involves creating a controlling page table and filling control data blocks sequentially, submitting these blocks to a work-queue scheduling engine for execution, sending a completion response to the host, and releasing resources once tasks are completed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the computational storage system processes data sequentially and waits for complete processing before responding to the host, then data processing reliability is improved, but the response delay to host IO operations increases significantly
Solution Approach 1:
The patent applies preliminary action by creating a controlling page table and submitting control data blocks to the work-queue scheduling engine before the actual data processing is complete. The system sends a completion response to the host in advance, allowing the host to proceed with IO operations while the computational storage system continues processing data in the background. This resolves the contradiction by enabling reliable sequential processing while eliminating response delay through advance notification.
2Speed
If the system uses local DDR as data cache to enable high-speed caching, then the IO operation speed is improved, but the complexity of managing data blocks and controlling page tables increases
Solution Approach 1:
The patent applies segmentation by dividing the data management task into discrete control data blocks that are submitted to the work-queue scheduling engine. Each control data block represents a segment of the data processing task, allowing the system to manage complex operations through modular units. This segmentation reduces the complexity of managing data blocks and controlling page tables while maintaining high-speed caching capabilities.
Solution Approach 2:
The patent introduces a work-queue scheduling engine as an intermediary between the controlling page table and the actual data processing operations. This intermediary component simplifies the management of control data blocks by providing a standardized interface for submitting and tracking tasks, thereby reducing the overall complexity of the system while enabling high-speed caching.
3Loss of time
If the system sends immediate completion response to the host after caching data, then the host IO operation delay is reduced, but the system must ensure data processing is actually completed before disk writing
Solution Approach 1:
The patent implements feedback by using the controlling page table to track the status of control data blocks and by providing a mechanism for the work-queue scheduling engine to manage task completion. The system can verify that data processing is actually completed before disk writing through the feedback loop established by the controlling page table, while still sending immediate completion responses to the host to reduce IO operation delay.
Data Source
AI summary
A method and system for high-speed caching of data writing, a device and a storage medium. The method includes: in response to receiving a data-writing operating instruction emitted by a host, creating a controlling page table and filling sequentially a plurality of control blocks into the controlling page table; submitting an entry pointer of a first instance of the control blocks to a work-queue scheduling engine, to execute tasks corresponding to the plurality of control blocks alternately in the work-queue scheduling engine; sending in advance a completion response to the host and notifying a firmware to perform subsequent processing and falling-into-disk of data; and in response to ending of execution of a task corresponding to a last one instance of the control blocks, releasing a used resource of the controlling page table.


