Virtual Switch Queue Feedback for Fair Distributed Memory Access
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


