IP Library Granted Patent US 12,455,798
Granted Patent B1
US 12,455,798 · App. 18/638,278 · Granted Oct 28, 2025

System and method for event-driven live migration of multi-process applications

Inventor: Allan Havemose (Arroyo Grande, CA)
Assignee: Google LLC
G06F11/1497G06F9/4856G06F9/546G06F11/1438G06F11/1448G06F11/1482G06F11/203G06F11/2041G06F11/2097G06F11/2038G06F2201/805G06F2201/82G06F2209/542
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,455,798
App. No.
18/638,278
Granted
Oct 28, 2025
Kind
B1
Abstract

A system, method, and computer readable medium for asynchronous live migration of applications between two or more servers. The computer readable medium includes computer-executable instructions for execution by a processing system. Primary applications runs on primary hosts and one or more replicated instances of each primary application run on one or more backup hosts. Asynchronous live migration is provided through a combination of process replication, logging, barrier synchronization, checkpointing, reliable messaging and message playback. The live migration is transparent to the application and requires no modification to the application, operating system, networking stack or libraries.

Claims (45)

1. A system, comprising:

a primary host executing a primary application and running a host operating system;

one or more processors associated with the primary host, the one or more processors configured to:

intercept calls from threads of applications to the host operating system;

generate replication messages based on the intercepted calls; and

checkpoint the primary application;

one or more backup hosts executing one or more backup applications, wherein each backup host of the one or more backup hosts has a corresponding host operating system; and

one or more processors associated with the one or more backup hosts and configured to:

detect one or more missing replication messages;

transmit, to the primary host, one or more requests for retransmission of the one or more missing replication messages; and

checkpoint-restore the one or more backup applications,

wherein live migration of the primary application to the one or more backup hosts is performed in response to an event or fault.

2. The system according to claim 1 , wherein the host operating system is one of Linux, UNIX or Windows.

3. The system according to claim 1 , wherein the one or more processors associated with the primary host are further configured to:

transmit, via a first messaging layer, the replication messages to the one or more backup hosts and applications; and

provide, via a second messaging layer, ordered receipt of the replication messages,

wherein the messaging layers transmit the replication messages over one of user datagram

protocol (UDP), transmission control protocol (TCP), UDP using multicast, or UDP using broadcast.

4. The system according to claim 1 , wherein the event is one of an operator generated live migration event, a CPU threshold event, a memory threshold event, a storage threshold event, a SNMP event, or a script generated event.

5. The system according to claim 1 , wherein the fault is one of an application crash, a host crash, an operating system fault, a memory fault, a storage fault, a power supply fault, or a general device fault.

6. The system according to claim 1 , wherein the one or more processors associated with the primary host are further configured to:

halt execution inside one or more interceptors; and

intercept calls from threads of applications.

7. The system according to claim 1 , wherein the one or more processors associated with the primary host are further configured to:

halt execution at an entry or at an exit to one or more interceptors; and

intercept calls from threads of applications.

8. The system according to claim 1 , wherein the one or more processors associated with the primary host are further configured to halt execution outside an intercepted resource.

9. The system according to claim 1 , wherein the system chooses a backup host based on one of a preconfigured backup, an operator-chosen backup, or a dynamically chosen backup based on available resources.

10. The system according to claim 1 , wherein the event is generated external to the primary application.

11. The system according to claim 1 , wherein a logging facility associated with the primary host:

writes each replication message to a log set in a log on shared

storage; writes a checkpoint to the log set in the log on the

shared storage; creates a new log set with a new checkpoint; and

removes old log sets when the new log set is created.

12. The system according to claim 11 , wherein the logging facility associated with the primary host includes a pending acknowledgement queue.

13. The system according to claim 11 , wherein the checkpointing is triggered by one of a certain amount of elapsed time since a last checkpoint, a certain number of replication messages, an operator event, a resource event, or another external event.

14. The system according to claim 11 , wherein the log set is comprised of the checkpoint and the replication messages between the checkpoint and a next checkpoint.

15. The system according to claim 11 , wherein the logging facility associated with the primary host stores two most recent log sets on the shared storage.

16. The system according to claim 1 , wherein the checkpointing is triggered by one of a certain amount of elapsed time since a last checkpoint, a certain number of replication messages, an operator event, a resource event, or another external event.

17. The system according to claim 1 , wherein the checkpointing places checkpoints in the replication messages and assigns message IDs to the checkpoints.

18. The system according to claim 17 , wherein the one or more processors associated with the primary host are further configured to log checkpoint replication messages.

19. The system according to claim 17 , wherein the one or more processors associated with the primary host are configured to store the checkpoint replication messages and to not transmit the checkpoint replication messages to the one or more backup hosts and applications.

20. The system according to claim 17 , wherein the one or more processors associated with the primary host are configured to:

store the checkpoint replication messages; and

transmit the checkpoint replication messages to the one or more backup hosts and applications over messaging layers associated with the one or more backup hosts.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2024
From: OPEN INVENTION NETWORK LLC
To: GOOGLE LLC
Reel/Frame 067167/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2024
From: HAVEMOSE, ALLAN
To: OPEN INVENTION NETWORK LLC
Reel/Frame 067149/0268 →
Continuity (8)
Continuation 17408469 · Aug 22, 2021
Continuation 16405944 · May 7, 2019
Continuation 15284090 · Oct 3, 2016
Continuation 14678991 · Apr 5, 2015
Continuation 14056029 · Oct 17, 2013
Continuation 12957593 · Dec 1, 2010
Continuation 12887144 · Sep 21, 2010
Continuation In Part 12851706 · Aug 6, 2010
References Cited (3)
US 8621275B1 · Havemose · 2013 [cited by applicant]
US 20040098620A1 · Shay · 2004 [cited by applicant]
EP 1784727 B1: Method and System for Providing Transparent Incremental and Multiprocess Check-Pointing to Computer Applications (Year: 2005). [cited by examiner]