The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jun. 12, 2012
Filed:
Jun. 15, 2009
Ganesh Venkitachalam, Mountain View, CA (US);
Rohit Jain, Mountain View, CA (US);
Boris Weissman, Mountain View, CA (US);
Daniel J. Scales, Mountain View, CA (US);
Vyacheslav Malyugin, Los Gatos, CA (US);
Jeffrey W. Sheldon, Mountain View, CA (US);
Min Xu, Palo Alto, CA (US);
Ganesh Venkitachalam, Mountain View, CA (US);
Rohit Jain, Mountain View, CA (US);
Boris Weissman, Mountain View, CA (US);
Daniel J. Scales, Mountain View, CA (US);
Vyacheslav Malyugin, Los Gatos, CA (US);
Jeffrey W. Sheldon, Mountain View, CA (US);
Min Xu, Palo Alto, CA (US);
VMware, Inc., Palo Alto, CA (US);
Abstract
In a computer system running a primary virtual machine (VM) on virtualization software on a primary virtualized computer system (VCS) and running a secondary VM on virtualization software on a secondary VCS, a method for the secondary VM to provide quasi-lockstep fault tolerance for the primary VM includes: as the primary VM is executing a workload, virtualization software in the primary VCS is: (a) causing predetermined events to be recorded in an event log, (b) keeping output associated with the predetermined events pending, and (c) sending the log entries to the virtualization software in the secondary VCS; as the secondary VM is replaying the workload, virtualization software in the secondary VCS is: (a) sending acknowledgements indicating that log entries have been received; (b) when the virtualization software encounters one of the predetermined events, searching the log entries to determine whether a log entry corresponding to the same event was received from the primary VCS, and if so, comparing data associated with the predetermined event produced by the secondary VM with that of the primary VM; if there is a match, the virtualization software in the secondary VCS transmitting an acknowledgement to the virtualization software in the primary VCS; one of the virtualization software in the primary or secondary VCS dropping the event and the other dispatching the output; and if there is no match, performing a checkpoint resynchronization.