Fault-Tolerant Virtual Machine Synchronization via Selective Interrupts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional fault-tolerant systems using virtual machines face increased processing loads for synchronization of execution states, leading to reduced resources for original services due to frequent virtual interrupts.
Innovation Solution
A fault-tolerant system that determines whether a virtual interrupt is generated upon receiving an external interrupt, only inputting the virtual interrupt and transmitting timing information to the secondary virtual machine if it is, thereby reducing the processing load for synchronization by adjusting interrupt frequency and timing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If virtual interrupts are frequently generated for synchronization, then synchronization precision is improved, but processing load increases and resources for original services decrease
Solution Approach 1:
The patent applies partial action by selectively generating virtual interrupts only when necessary for synchronization, rather than generating them at every execution point. The determination unit decides whether to generate a virtual interrupt based on whether the primary and secondary virtual machines are at appropriate synchronization points, reducing the frequency of interrupt generation while maintaining synchronization precision where needed.
Solution Approach 2:
The patent changes the parameter of interrupt frequency by introducing a determination mechanism that dynamically decides whether to generate virtual interrupts. Instead of a fixed high-frequency interrupt scheme, the system adjusts interrupt generation based on the synchronization state and execution progress of the virtual machines, optimizing the balance between synchronization precision and processing load.
2Stability of the object's composition
If virtual interrupts are frequently generated for synchronization, then execution state synchronization is improved, but resources for original services decrease
Solution Approach 1:
The system performs partial synchronization actions by generating virtual interrupts only at critical synchronization points determined by the determination unit. This partial action approach maintains execution state synchronization stability while consuming fewer computational resources, allowing more resources to be allocated to original services.
Solution Approach 2:
The determination unit enables the system to self-regulate interrupt generation based on the current execution state. By automatically determining whether synchronization is needed at each step, the system serves its own synchronization needs efficiently without external intervention, optimizing resource usage while maintaining stability.
3Productivity
If virtual interrupt timing is adjusted to reduce processing load, then resource allocation for original services is improved, but synchronization precision may deteriorate
Solution Approach 1:
The patent changes the timing parameter of virtual interrupt generation dynamically. The determination unit adjusts interrupt timing based on the execution progress and synchronization requirements, finding an optimal balance point that maintains sufficient synchronization precision while reducing overall interrupt frequency to improve resource allocation for original services.
Solution Approach 2:
The system introduces dynamic timing adjustment where the virtual interrupt generation timing is not fixed but adapts based on the current state of the virtual machines. The determination unit continuously evaluates whether to generate interrupts at the current execution point, making the timing flexible and responsive to actual synchronization needs, thus balancing precision and resource efficiency.
Data Source
AI summary
A fault tolerant system includes a primary virtual machine formed on a primary machine in which a primary hypervisor runs, and configured to input virtual interrupt based on an external interrupt from the primary hypervisor to a primary guest OS, and a secondary virtual machine formed on a secondary machine in which a secondary hypervisor runs, and configured to input virtual interrupt to a secondary guest OS on the basis of timing information on the virtual interrupt transmitted from the primary virtual machine. The primary virtual machine is configured to determine whether the virtual interrupt is generated, or not, upon receiving the external interrupt from the primary hypervisor, and only if it is determined that the virtual interrupt is generated, the primary virtual machine is configured to input the virtual interrupt to the primary guest OS, and to transmit timing information on the virtual interrupt to the secondary virtual machine.


