Remote Virtual Storage Write Pipelining
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In remote computing environments, storage I/O operations between a virtual desktop or remote application and a client device's storage device result in significant network traffic and latency due to inefficient block-level I/O redirection techniques, particularly during write operations, leading to performance issues.
Innovation Solution
Creating a virtual storage device on a remote device corresponding to a physical storage device connected to a client device, allowing applications to submit write requests without waiting for confirmation from the client device, and using a virtual channel for direct block-level I/O redirection to reduce network traffic and delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If block-level I/O redirection is used to access storage device on client device from remote device, then storage I/O operations can be performed, but network traffic increases and latency increases due to confirmation messages
Solution Approach 1:
The system sends write requests to the client device without waiting for confirmation messages before initiating subsequent write requests. The virtual storage device driver on the remote device continues processing write requests in advance, allowing pipelining of I/O operations and reducing the overall delay between write requests.
2Reliability
If confirmation messages are sent for each write request, then data integrity is ensured, but network traffic increases
Solution Approach 1:
The system extracts the confirmation message requirement from each individual write request transaction. Instead of requiring confirmation for every write request, the system processes multiple write requests and uses selective confirmation mechanisms, removing the harmful element of excessive confirmation messages while preserving data integrity through alternative verification methods.
3Adaptability or versatility
If USB I/O maximum transferring unit of 64 KB is used, then data is transmitted in standardized blocks, but the number of URB requests increases significantly
Solution Approach 1:
The system merges multiple small URB requests into fewer, larger block-level I/O operations. By using block-level redirection instead of individual USB I/O transactions, multiple 64 KB URB requests are consolidated into single or fewer block-level write requests, reducing the overall number of requests while maintaining data transmission efficiency.
Data Source
AI summary
The disclosure provides an approach for storage device write performance improvement in a remote computing environment. Embodiments include creating, on a remote device that is remote from a client device, a virtual storage device corresponding to a physical storage device physically connected to the client device. Embodiments include receiving, by a driver on the remote device, a request from an application on the remote device to perform a write operation with respect to the virtual storage device. Embodiments include sending, by the remote device, a write operation to the client device based on the request. Embodiments include prior to receiving a confirmation from the client device that the write operation was received or completed, sending, by the driver, to the application, a message indicating that the write operation is complete. Embodiments include receiving, by the driver, based on the message, an additional request to perform an additional write operation.


