Deterministic Virtual Machine Replication for Low-Latency Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing high-availability computing applications in distributed systems face challenges such as high processing overheads, increased latency, network congestion, and complex design and programming efforts due to stateless applications interacting with stateful databases, requiring snapshotting, read and write locking, and ensuring deterministic operations across multiple nodes.
Innovation Solution
A programming framework and runtime environment that uses deterministic virtual machines replicated across computing nodes, employing the RAFT protocol and transaction logs to ensure consistency and determinism, allowing for efficient snapshotting and bytecode upgrades while minimizing lower-level complexities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If stateless applications interact with stateful databases to achieve high-availability, then application availability is improved, but processing overhead and latency increase
Solution Approach 1:
The patent creates replicated copies of the entire application state across multiple computing nodes using virtual machines. Instead of stateless applications querying stateful databases, each node maintains a complete copy of the application state locally, eliminating database interaction overhead and enabling fast local access to all application data.
Solution Approach 2:
The patent segments the monolithic application state into distributed virtual machine instances across multiple computing nodes. Each node operates independently with its own copy of the application state, allowing parallel processing and eliminating the single-point bottleneck of centralized stateful databases.
2Stability of the object's composition
If snapshotting and locking mechanisms are implemented to ensure consistency across nodes, then data consistency is improved, but system complexity increases
Solution Approach 1:
The deterministic virtual machines are self-contained and self-sufficient, each maintaining its own complete application state and executing transactions independently. The system achieves consistency through deterministic execution guarantees rather than complex inter-node coordination, locking, or snapshotting mechanisms.
Solution Approach 2:
The patent replaces mechanical coordination mechanisms (snapshotting, locking, consensus protocols) with a software-based deterministic execution model. The deterministic virtual machine architecture guarantees that the same input transactions always produce the same output states, eliminating the need for complex coordination infrastructure.
3Reliability
If multiple computing nodes execute replicated virtual machines with full application state, then application availability and fault-tolerance are improved, but network overhead increases
Solution Approach 1:
The patent extracts the application state from centralized databases and embeds it directly within each distributed virtual machine instance. This eliminates the need for continuous network synchronization of state data, as each node operates independently with its own complete state copy, reducing network traffic to only essential coordination messages.
4Stability of the object's composition
If deterministic operations are enforced across all nodes, then application determinism is improved, but programming flexibility decreases
Solution Approach 1:
The patent changes the fundamental parameter of execution determinism at the virtual machine level. By ensuring deterministic execution within each VM instance while allowing flexible programming within that deterministic framework, the system achieves both determinism and flexibility. Developers can write flexible business logic that executes deterministically within each node's isolated environment.
Data Source
AI summary
A method includes executing replicated virtual machines on multiple computing nodes within a cluster in a distributed computing network. Each virtual machine includes an application, and the application includes bytecode. The method also includes sequentially recording, in a replicated transaction log, transactions of the virtual machines and one or more upgrades to the bytecode. The method further includes generating, for each computing node, one or more snapshots and truncating the transaction log. Each snapshot captures an application state and the bytecode of the associated virtual machine. In addition, the method includes, in response to restoration of at least one computing node in the cluster or an addition of at least one additional computing node to the cluster, restoring one or more virtual machines to a current application state of one or more other virtual machines using the transaction log and at least one of the one or more snapshots.


