USB Read-Ahead Mechanism for Bulk Endpoint Data Timeliness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtual desktop infrastructure (VDI) environments, USB device redirection faces challenges with timely data reading from Bulk-In endpoints due to high latency and low bandwidth network connections, especially when the USB device is redirected from a client to a server, leading to potential data loss and performance degradation.

Innovation Solution

Implementing a read-ahead mechanism where a server-side agent evaluates USB device descriptors to identify Bulk-In endpoints and creates a circular buffer to store data, repeatedly generating and redirecting bulk read requests to ensure timely data reading, even in scenarios with high latency and low bandwidth connections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If USB device redirection is implemented over network connections, then remote access to USB devices is enabled, but data reading timeliness deteriorates due to high latency and low bandwidth

Engineering Contradiction:
ImproveUSB device redirection capabilityVSAvoiddata reading timeliness
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by proactively reading data from the Bulk-In endpoint and storing it in a buffer before actual read requests are made. The agent continuously monitors the endpoint and pre-loads data into memory, ensuring that when applications need data, it is already available locally without waiting for network transmission.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A buffer acts as an intermediary between the remote USB device and the local applications. The buffer decouples the network transmission delay from the data access requirement, allowing applications to read from the local buffer while the agent simultaneously manages data transfer from the remote device in the background.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If data is read from Bulk-In endpoint in real-time over network, then data freshness is maintained, but data loss occurs due to network latency and bandwidth limitations

Engineering Contradiction:
Improvedata completenessVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The agent proactively reads and buffers data before applications request it, ensuring data is captured and stored locally in advance. This preliminary action prevents data loss by having data ready in the buffer before network transmission delays could cause issues.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The buffer serves as a cushion that absorbs network latency and bandwidth variations. By maintaining a local copy of data in the buffer, the system creates a safety margin that protects against data loss during network transmission problems or delays.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Quantity of substance

If buffer size is increased to store more data, then data availability is improved, but memory consumption increases

Engineering Contradiction:
Improvedata buffer capacityVSAvoidmemory usage
Core Design Contradiction:
Quantity of substanceVSVolume of stationary object

Solution Approach 1:

The buffer size is made dynamic rather than static. The system adjusts the buffer size based on actual usage patterns, data flow rates, and available memory resources. This allows the buffer to expand when needed and contract when memory pressure increases, optimizing the balance between data availability and memory consumption.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes buffer parameters (size, allocation strategy) based on runtime conditions. By monitoring memory availability and data access patterns, the agent dynamically adjusts buffer characteristics to maintain optimal performance without excessive memory consumption.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10402364B1Read-ahead mechanism for a redirected bulk endpoint of a USB device
Publication Date: 2019.09.03 DELL PROD LP
  • US10402364B1 patent drawing
  • US10402364B1 patent drawing
  • US10402364B1 patent drawing

AI summary

A read-ahead mechanism is provided for a redirected Bulk-In endpoint of a USB device. When a USB device is redirected to a server, an agent running on the server can evaluate the USB device's descriptors to determine whether it has any Bulk-In endpoints and whether any Bulk-In endpoint is part of a mass storage interface. For any Bulk-In endpoint that is not part of a mass storage interface, the agent can create a circular buffer and commence originating bulk read requests on the server and then redirecting the bulk read requests to a client-side proxy for delivery to the Bulk-In endpoint. The agent can then store the data it obtains from these bulk read requests in the circular buffer. By repeatedly sending the bulk read requests to the Bulk-In endpoint, the agent ensures that data will be read from the Bulk-In endpoint in a timely manner.