Remote Virtual Storage Write Pipelining

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvestorage I/O performanceVSAvoiddelay between write requests
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If confirmation messages are sent for each write request, then data integrity is ensured, but network traffic increases

Engineering Contradiction:
Improvewrite operation completion confirmationVSAvoidnetwork traffic
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
ImproveUSB I/O compatibilityVSAvoidnumber of URB requests
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11989419B2Storage device write performance in remote computing environments
Publication Date: 2024.05.21 OMNISSA LLC
  • US11989419B2 patent drawing
  • US11989419B2 patent drawing
  • US11989419B2 patent drawing

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.