US10929235B2ActiveUtilityA1

Application high availability via crash-consistent asynchronous replication of persistent data

61
Assignee: VMWARE INCPriority: Oct 27, 2017Filed: Jan 26, 2018Granted: Feb 23, 2021
Est. expiryOct 27, 2037(~11.3 yrs left)· nominal 20-yr term from priority
G06F 16/27G06F 11/1438G06F 2201/82G06F 2201/85G06F 11/2025G06F 1/263G06F 2201/805G06F 11/2097G06F 2201/84G06F 11/2028G06F 11/1662G06F 2201/855G06F 11/1464G06F 11/1484G06F 11/1471
61
PatentIndex Score
0
Cited by
68
References
22
Claims

Abstract

Techniques for achieving application high availability via crash-consistent asynchronous replication of persistent data are provided. In one set of embodiments, an application running on a computer system can, during runtime of the application: write persistent data to a local nonvolatile data store of the computer system, write one or more log entries comprising the persistent data to a local log region of the computer system, and asynchronously copy the one or more log entries to one or more remote destinations. Then, upon detecting a failure that prevents the application from continuing execution, the computer system can copy the local log region or a remaining portion thereof to the one or more remote destinations, where the copying is performed while the computer system runs on battery power and where the application is restarted on another computer system using a persistent state derived from the copied log entries.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for achieving application high availability via crash-consistent asynchronous replication, the method comprising:
 during runtime of an application executing on a computer system:
 synchronously writing, by the application, persistent data to a local nonvolatile data store of the computer system and one or more log entries comprising the persistent data to a local log region of the computer system; 
 asynchronously copying, by an agent associated with the application, the one or more log entries to one or more remote destinations, such that the application can continue with its execution without waiting for the copying of the one or more log entries to the one or more remote destinations to be successfully completed; and 
 
 upon detecting a failure that prevents the application from continuing execution:
 copying, by the computer system to the one or more remote destinations, a remaining portion of the local log region that was not asynchronously copied during the runtime of the application, 
 
 wherein the copying is performed while the computer system runs on power provided by a battery, and 
 wherein the application is restarted on another computer system using a persistent state derived from the copied log entries. 
 
     
     
       2. The method of  claim 1  wherein the failure is of a type that enables the computer system to execute panic code for a period of time after the failure. 
     
     
       3. The method of  claim 1  wherein the local nonvolatile data store is a local storage of the computer system or a local persistent memory of the computer system. 
     
     
       4. The method of  claim 1  wherein the one or more remote destinations include shared storage, a local storage of another computer system, or a local persistent memory of another computer system. 
     
     
       5. The method of  claim 1  wherein the copying upon detecting the failure is performed by a post-fail agent implemented in an operating system (OS) or Basic Input/Output System (BIOS) of the computer system. 
     
     
       6. The method of  claim 1  further comprising, upon receiving an acknowledgement from the one or more remote destinations that the one or more log entries have been successfully copied, garbage collecting the one or more log entries from the local log region. 
     
     
       7. The method of  claim 6  wherein a size of the local log region is set to a maximum maximum rate of write requests issuable by the application multiplied by a maximum round-trip latency for the one or more remote destinations to acknowledge successful copying of a log entry. 
     
     
       8. The method of  claim 1  wherein if the local log region becomes full upon writing the one or more log entries, the method further comprises:
 stalling, by the agent, execution of the application until the agent has garbage collected a number of log entries from the local log region. 
 
     
     
       9. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code embodying a method for achieving application high availability via crash-consistent asynchronous replication, the method comprising:
 during runtime of an application executing on a computer system:
 synchronously writing, by the application, persistent data to a local nonvolatile data store of the computer system and one or more log entries comprising the persistent data to a local log region of the computer system; 
 asynchronously copying, by an agent associated with the application, the one or more log entries to one or more remote destinations, such that the application can continue with its execution without waiting for the copying of the one or more log entries to the one or more remote destinations to be successfully completed; and 
 
 upon detecting a failure that prevents the application from continuing execution:
 copying, by the computer system to the one or more remote destinations, a remaining portion of the local log region that was not asynchronously copied during the runtime of the application, 
 
 wherein the copying is performed while the computer system runs on power provided by a battery, and 
 wherein the application is restarted on another computer system using a persistent state derived from the copied log entries. 
 
     
     
       10. The non-transitory computer readable storage medium of  claim 9  wherein the failure is of a type that enables the computer system to execute panic code for a period of time after the failure. 
     
     
       11. The non-transitory computer readable storage medium of  claim 9  wherein the local nonvolatile data store is a local storage of the computer system or a local persistent memory of the computer system. 
     
     
       12. The non-transitory computer readable storage medium of  claim 9  wherein the one or more remote destinations include shared storage, a local storage of another computer system, or a local persistent memory of another computer system. 
     
     
       13. The non-transitory computer readable storage medium of  claim 9  wherein the copying upon detecting the failure is performed by a post-fail agent implemented in an operating system (OS) or Basic Input/Output System (BIOS) of the computer system. 
     
     
       14. The non-transitory computer readable storage medium of  claim 9  wherein the method further comprises, upon receiving an acknowledgement from the one or more remote destinations that the one or more log entries have been successfully copied, garbage collecting the one or more log entries from the local log region. 
     
     
       15. The non-transitory computer readable storage medium of  claim 14  wherein a size of the local log region is set to a maximum rate of write requests issuable by the application multiplied by a maximum round-trip latency for the one or more remote destinations to acknowledge successful copying of a log entry. 
     
     
       16. A computer system comprising:
 a battery; 
 a BIOS (Basic Input/Output System); 
 an operating system (OS); 
 a nonvolatile data store; and 
 a non-transitory computer readable medium having stored thereon program code for achieving application high availability via crash-consistent asynchronous replication, the program code causing the computer system to:
 during runtime of an application executing on a computer system:
 synchronously write, via the application, persistent data to the nonvolatile data store and one or more log entries comprising the persistent data to a local log region within the nonvolatile data store; and 
 asynchronously copy, via an agent associated with the application, the one or more log entries to one or more remote destinations, such that the application can continue with its execution without waiting for the copying of the one or more log entries to the one or more remote destinations to be successfully completed; and 
 
 upon detecting a failure that prevents the application from continuing execution:
 copy, to the one or more remote destinations, a remaining portion of the local log region that was not asynchronously copied during the runtime of the application, 
 
 
 wherein the copying is performed while the computer system runs on power provided by the battery, and 
 wherein the application is restarted on another computer system using a persistent state derived from the copied log entries. 
 
     
     
       17. The computer system of  claim 16  wherein the failure is of a type that enables the computer system to execute panic code for a period of time after the failure. 
     
     
       18. The computer system of  claim 16  wherein the nonvolatile data store is a local storage of the computer system or a local persistent memory of the computer system. 
     
     
       19. The computer system of  claim 16  wherein the one or more remote destinations include shared storage, a local storage of another computer system, or a local persistent memory of another computer system. 
     
     
       20. The computer system of  claim 16  wherein the copying upon detecting the failure is performed by a post-fail agent implemented in the OS or BIOS of the computer system. 
     
     
       21. The computer system of  claim 16  wherein the program code further causes the computer system to, upon receiving an acknowledgement from the one or more remote destinations that the one or more log entries have been successfully copied, garbage collecting the one or more log entries from the local log region. 
     
     
       22. The computer system of  claim 21  wherein a size of the local log region is set to a maximum rate of write requests issuable by the application multiplied by a maximum round-trip latency for the one or more remote destinations to acknowledge successful copying of a log entry.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.