Ring Buffer for Virtual Machine Memory Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems for high availability protection of virtual machines in cloud computing environments face inefficiencies due to local memory buffer overflow issues, leading to suspended VMs and increased network transmission overhead, which are costly and resource-intensive.
Innovation Solution
Implementing a ring buffer system where dirty memory pages are copied and transmitted simultaneously using separate threads, with a notification threshold to manage buffer usage, allowing for smaller buffers and reducing suspension time by enabling data transmission during both suspended and resumed VM states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a fixed capacity local memory buffer is pre-allocated, then the buffer can hold dirty pages for copying, but the buffer may overflow when dirty pages exceed buffer capacity, causing VM suspension and increased network transmission overhead
Solution Approach 1:
The patent implements a dynamic buffer management system where the buffer capacity is not fixed but can expand as needed. The buffer grows dynamically to accommodate varying amounts of dirty pages, eliminating overflow conditions and the associated VM suspensions while maintaining efficient memory replication operations
Solution Approach 2:
The system pre-allocates memory pages in advance to form an expandable buffer structure. By preparing the buffer capacity beforehand in a dynamic manner, the system ensures that dirty pages can be copied without causing overflow, thus preventing VM suspension and reducing time loss
2Reliability
If the local memory buffer is made extremely large to ensure it is never overflowed, then buffer overflow is prevented, but the buffer creates a large memory footprint and consumes significant system resources
Solution Approach 1:
The patent employs a dynamic buffer that adapts its size based on actual workload requirements. Rather than allocating a excessively large fixed buffer, the system expands the buffer only as needed to prevent overflow, thereby preventing resource waste while maintaining reliability
Solution Approach 2:
The system changes the buffer capacity parameter dynamically based on the amount of dirty pages generated. This adaptive parameter adjustment allows the buffer to maintain sufficient capacity for overflow prevention while consuming minimal system resources when not needed
3Productivity
If all data in the local memory buffer is sent to the standby host when overflow occurs, then the buffer is emptied to allow continued copying, but this process adds network transmission overhead proportional to buffer size and extends VM suspension time
Solution Approach 1:
The patent implements continuous memory replication by maintaining an expandable buffer that never overflows. This eliminates the stop-start nature of previous systems where replication had to pause for buffer flushing, enabling continuous copying operations without network transmission overhead and maintaining high productivity
Solution Approach 2:
The system extracts the problematic buffer flushing operation from the memory replication process. By using an expandable buffer that accommodates all dirty pages, the system removes the need for periodic buffer emptying and associated network transmissions, thereby eliminating energy waste from unnecessary data transmission
Data Source
AI summary
High availability (HA) protection is provided for an executing virtual machine. At a checkpoint in the HA process, the active server suspends the virtual machine; and the active server copies dirty memory pages to a buffer. During the suspension of the virtual machine on the active host server, dirty memory pages are copied to a ring buffer. A copy process copies the dirty pages to a first location in the buffer. At a predetermined benchmark or threshold, a transmission process can begin. The transmission process can read data out of the buffer at a second location to send to the standby host. Both the copy and transmission processes can operate substantially simultaneously on the ring buffer. As such, the ring buffer cannot overflow because the transmission process continues to empty the ring buffer as the copy process continues. This arrangement allows for smaller buffers and prevents buffer overflows.


