Virtual Switch Queue Feedback for Fair Distributed Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual network switching technologies, such as Open vSwitch (OVS), fail to consider resource allocation among applications, leading to performance bottlenecks that hinder the full utilization of NVMe and NVMe over Fabric (NVMe-oF) performance in virtual environments.

Innovation Solution

Implementing a Virtual Switch (VS) controller to manage resource allocation by determining queue occupancy and setting memory request rates for applications, using a VS kernel module to generate flow metadata and adjust resource allocations in the kernel space, with optional hardware offloading by smart NICs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If software switching (e.g., Open vSwitch) is used to reduce packet processing latency, then packet processing latency is reduced, but resource allocation among applications is not considered, leading to performance bottlenecks

Engineering Contradiction:
Improvepacket processing latencyVSAvoidresource allocation efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

A virtual switch controller is introduced as an intermediary component that sits between the software switching layer and the applications. This controller monitors resource usage, determines queue occupancy, and dynamically adjusts memory request rates for different applications, thereby enabling fair resource allocation while maintaining the low-latency benefits of software switching.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If resource allocation is not managed, then system complexity is reduced, but performance bottlenecks occur that prevent full utilization of NVMe and NVMe-oF performance

Engineering Contradiction:
Improvesystem complexityVSAvoidNVMe performance utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system implements self-service mechanisms where the virtual switch controller automatically monitors resource usage patterns, determines queue occupancy levels, and dynamically adjusts memory request rates without requiring manual intervention. This automated resource management enables full NVMe performance utilization while keeping the system architecture relatively simple.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If memory request rates are not controlled, then ease of operation is improved, but fair resource sharing among applications cannot be provided

Engineering Contradiction:
Improveoperation simplicityVSAvoidfair resource sharing capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The virtual switch controller implements a feedback mechanism that continuously monitors resource usage and queue occupancy levels across different applications. Based on this feedback, the controller dynamically adjusts memory request rates to ensure fair resource sharing. This automated feedback-based control maintains operational simplicity while achieving equitable resource distribution.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12386648B2Resource allocation in virtualized environments
Publication Date: 2025.08.12 WESTERN DIGITAL TECHNOLOGIES INC
  • US12386648B2 patent drawing
  • US12386648B2 patent drawing
  • US12386648B2 patent drawing

AI summary

A node includes a shared memory for a distributed memory system. A Virtual Switch (VS) controller establishes different flows of packets between at least one Virtual Machine (VM) running at the node and one or more other VMs running at the node or at another node. Requests to access the shared memory are queued in submission queues in a kernel space and processed requests are queued in completion queues in the kernel space. Indications of queue occupancy are determined for at least one queue and one or more memory request rates are set for at least one application based at least in part on the determined indications of queue occupancy. In another aspect, flow metadata is generated for each flow and at least one of the set one or more respective memory request rates and one or more respective resource allocations is adjusted for the at least one application.