Virtual Machine Ingress Datapath Using Active-Standby Buffer Rings
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If the size of storage rings is increased to prevent data message drops, then the reliability is improved, but the memory consumption increases
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.
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.
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
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.
Data Source
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.


