Virtual Machine Ingress Datapath Using Active-Standby Buffer Rings

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage rings in virtual machines (VMs) face limitations due to their fixed size, leading to memory footprint increases and performance degradation when handling large bursts of data messages, causing dropped messages if not addressed effectively.

Innovation Solution

Implementing an active/standby configuration of buffer data stores, such as storage rings, where one set becomes active when the other reaches a threshold congestion level, allowing seamless switching to manage data message storage without increasing memory footprint.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the size of storage rings is increased to handle larger traffic bursts, then the storage capacity is improved, but the memory footprint and memory consumption increase

Engineering Contradiction:
Improvestorage capacityVSAvoidmemory footprint
Core Design Contradiction:
Quantity of substanceVSWeight of stationary object

Solution Approach 1:

The storage system is divided into multiple storage rings (first storage ring, second storage ring, third storage ring, etc.) instead of using a single large storage ring. Each storage ring has a fixed, smaller size, but collectively they provide the necessary storage capacity to handle traffic bursts without increasing the memory footprint of individual rings.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the size of storage rings is increased to prevent data message drops, then the reliability is improved, but the memory consumption increases

Engineering Contradiction:
Improvedata message deliveryVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSWeight of stationary object

Solution Approach 1:

The system dynamically selects which storage ring to use based on the current state. When the first storage ring becomes full, the system switches to using the second storage ring, and so on. This dynamic switching mechanism ensures reliable data message delivery during traffic bursts without requiring a single large storage ring that would consume excessive memory.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Multiple storage rings are pre-configured and available before traffic bursts occur. When a traffic burst is detected and the current storage ring fills up, the system can immediately switch to a pre-prepared next storage ring without needing to allocate additional memory dynamically, thus maintaining reliability while controlling memory consumption.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a single large storage ring is used to handle bursts of data messages, then the throughput is improved, but the device complexity increases

Engineering Contradiction:
Improvedata message throughputVSAvoidstorage ring management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The high throughput capability is achieved not by creating one large complex storage ring, but by segmenting the storage capacity across multiple smaller, simpler storage rings. The system manages these segmented rings through a switching mechanism that selects the appropriate ring based on current storage status, maintaining high throughput while keeping individual ring complexity low.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12379952B2High throughput ingress datapath for a virtual machine
Publication Date: 2025.08.05 VMWARE INC
  • US12379952B2 patent drawing
  • US12379952B2 patent drawing
  • US12379952B2 patent drawing

AI summary

Some embodiments provide a method of forwarding data messages to a machine that executes on a host computer and has an associated virtual network interface controller (VNIC) also executing on the host computer. The method retrieves data messages from a queue associated with the VNIC and stores these data messages in a first set of buffer data stores associated with the VNIC. When the first buffer set reaches a threshold congestion level, the method stores data messages subsequently retrieved from the VNIC queue in a second set of buffer data stores associated with the VNIC. In some embodiments, a set of one or more processes executing on the machine retrieves the data messages stored in the buffer sets for processing by these processes or other processes.