Patent ID: 8499297

Claim:
A method for providing fault-tolerance protection for a primary virtual machine using a snapshot image of the primary virtual machine that represents a state of the primary virtual machine at a time t 0 , the method comprising: tracking virtual machine instructions executed by the primary virtual machine since time t 0 ; tracking a set of changes made to the state of the primary virtual machine since time t 0 ; merging the set of changes into the snapshot image, thereby creating a new snapshot image for a backup virtual machine; and wherein the method further comprises: storing in a log file information relating to the tracked virtual machine instructions executed by the primary virtual machine, wherein the information relating to the tracked virtual machine instructions executed by the primary virtual machine since time t 0 corresponds to non-deterministic events occurring in the primary virtual machine's instruction stream, the information including timing of the non-deterministic events measured by the placement of the non-deterministic events in the primary virtual machine's instruction stream and further including data corresponding to non-deterministic external inputs to emulated devices of the primary virtual machine; and discarding from the log file any information relating to virtual machine instructions executed by the primary virtual machine prior to time t 0 .