Software fault tolerant computer system
First Claim
1. A fault tolerant computer system comprising a primary virtual machine and a secondary virtual machine, wherein the secondary virtual machine is operable to replicate operations of the primary virtual machine, wherein the primary and the secondary virtual machines are further operable mutually to provide fault tolerance, and wherein a test for liveliness is performed at an epoch boundary, the epoch boundary forming a boundary between sections of code executed by the virtual machines.
2 Assignments
0 Petitions
Accused Products
Abstract
A software fault tolerant computer system includes a primary virtual machine and a secondary virtual machine. The secondary virtual machine is operable to replicate the primary virtual machine by replicating operations performed on the primary virtual machine. The primary and the secondary virtual machines are further operable to test for equivalent operation of the primary and secondary virtual machines at predetermined stages of operation. This provides software fault tolerance wherein both a unit of replication and a component that implements the fault tolerance mechanisms is a virtual machine (VM). Since a VM as used by the invention has full knowledge of the semantics of application-level code, fault tolerance mechanisms can be provided by the VMs without requiring any increase in application complexity. Co-ordination of replicated states and computations is achieved with characteristics of both active and passive replication.
-
Citations
38 Claims
- 1. A fault tolerant computer system comprising a primary virtual machine and a secondary virtual machine, wherein the secondary virtual machine is operable to replicate operations of the primary virtual machine, wherein the primary and the secondary virtual machines are further operable mutually to provide fault tolerance, and wherein a test for liveliness is performed at an epoch boundary, the epoch boundary forming a boundary between sections of code executed by the virtual machines.
- 13. A computer program product operable when run on a computer to provide a virtual machine for a redundant fault tolerant virtual machine architecture including a secondary virtual machine, wherein the secondary virtual machine is operable to form a replica of a primary virtual machine by replicating operations performed on the primary virtual machines, wherein the primary virtual machine is further operable to test for equivalent operation of the secondary virtual machine at predetermined stages of operation, and wherein a test for liveliness is performed at an epoch boundary, the epoch boundary forming a boundary between sections of code executed by the virtual machines.
-
23. A virtual machine for a redundant fault tolerant virtual machine architecture including another virtual machine, wherein the virtual machine comprises means for forming a replica of the other virtual machine by replicating operations performed on the other virtual machine and means for testing for equivalent operation of the other virtual machine at predetermined stages of operation, and wherein a test for liveliness is performed at an epoch boundary the epoch boundary forming a boundary between sections of code executed by the virtual machines.
- 24. A method of providing software fault tolerance comprising the provision of replicated virtual machines including at least a primary and a secondary virtual machine, wherein the secondary virtual machine replicates operations performed on the primary virtual machine, and the primary and the secondary virtual machines co-operate so as mutually to provide fault tolerance, the method further comprising performing a test for liveliness at an epoch boundary, the epoch boundary forming a boundary between sections of code executed by the virtual machines.
-
36. A fault tolerant computer system comprising a primary virtual machine and a secondary virtual machine, wherein the secondary virtual machine is operable to replicate operations of the primary virtual machine, wherein the primary and the secondary virtual machines are further operable mutually to provide fault tolerance, wherein each of the primary and secondary virtual machines is operable to send a heartbeat message to the other of the primary and secondary virtual machines at intervals, and wherein a test for equivalent operation is performed following receipt of a heartbeat message.
-
37. A computer program product operable when run on a computer to provide a virtual machine for a redundant fault tolerant virtual machine architecture including a secondary virtual machine, wherein the secondary virtual machine is operable to form a replica of a primary virtual machine by replicating operations performed on the primary virtual machine, wherein the primary virtual machine is further operable to test for equivalent operation of the secondary virtual machine at predetermined stages of operation, wherein each of the primary and secondary virtual machines is operable to issue a heartbeat message at intervals to indicate that it is alive, and wherein each of the primary and secondary virtual machines is operable to perform a test for equivalent operation following receipt of a heartbeat message.
-
38. A method of providing software fault tolerance comprising the provision of replicated virtual machines including at least a primary and a secondary virtual machine, wherein the secondary virtual machine replicates operations performed on the primary virtual machine, and the primary and the secondary virtual machines co-operate so as mutually to provide fault tolerance, wherein each of the primary and secondary virtual machines sends a heartbeat message to the other of the primary and secondary virtual machines at intervals, and wherein a test for equivalent operation is performed following receipt of a heartbeat message.
Specification