Hypervisor I/O Request Aggregation for Bandwidth Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, existing methods for handling input/output (I/O) requests are inefficient, leading to high network bandwidth consumption due to the transmission of multiple messages, which can result in suboptimal resource utilization and increased protocol overhead.

Innovation Solution

A method where a hypervisor receives I/O requests from a ring buffer, aggregates them if the total size is less than the maximum transmission unit, and generates a combined message with reduced protocol overhead, thereby minimizing network bandwidth consumption by forwarding a single message to the I/O target.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple I/O requests are transmitted as separate messages, then each request can be processed independently, but network bandwidth consumption increases due to repeated protocol overhead

Engineering Contradiction:
Improverequest processing independenceVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent merges multiple I/O requests into a single aggregated message when the aggregate size is less than the maximum transmission unit. This combines multiple small requests that would otherwise each incur separate protocol overhead, reducing total network bandwidth consumption while maintaining processing integrity through proper request delimitation and parsing

Inventive Principle:
Principle #5Merging (Combining)

2Loss of energy

If I/O requests are aggregated into combined messages, then network bandwidth consumption and protocol overhead are reduced, but the complexity of message handling increases

Engineering Contradiction:
Improveprotocol overheadVSAvoidmessage handling complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent segments the aggregated message into individual I/O requests using delimiters or length fields that allow the hypervisor to parse and process each request independently. This segmentation approach maintains simplicity by providing clear boundaries between requests while still benefiting from the overhead reduction of aggregated transmission

Inventive Principle:
Principle #1Segmentation

3Productivity

If I/O requests are aggregated, then resource utilization improves, but the time to process and aggregate requests increases

Engineering Contradiction:
Improveresource utilizationVSAvoidrequest aggregation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements a timeout mechanism that triggers message aggregation after a predetermined period if requests continue to arrive. This periodic action allows the system to balance aggregation benefits against processing delays, ensuring that aggregated messages are transmitted in a timely manner while still achieving bandwidth optimization

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10613890B2Efficient I/O request handling
Publication Date: 2020.04.07 NUTANIX INC
  • US10613890B2 patent drawing
  • US10613890B2 patent drawing
  • US10613890B2 patent drawing

AI summary

A method of efficient message transmission includes a hypervisor receiving a first input/output (I/O) request from a ring buffer; receiving a second I/O request from the ring buffer; receiving an absence of further I/O requests from the ring buffer; comparing an aggregate size of a first message and the second I/O request to a maximum transmission unit, wherein the first message comprises the first I/O request and a first protocol overhead; generating a combined message, in response to the aggregate size of the first message and the second I/O request being less than the maximum transmission unit. The combined message comprises the first I/O request, the second I/O request, and the first protocol overhead; and forwarding the combined message to an I/O target.