Systems and methods for run time migration

US9727375B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9727375-B1
Application numberUS-201615347310-A
CountryUS
Kind codeB1
Filing dateNov 9, 2016
Priority dateJun 19, 2012
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method, system, and non-transitory computer readable medium for safely and efficiently migrating applications from one application server to another is provided. A termination request is received. When an API call has been sent by a first application since a last recurring checkpoint, the sent API call is processed one of several ways. Sometimes the API call is immediately terminated. Alternatively, the first application server waits a waiting period for an answer to the API call, and during the waiting period any new API calls are captured and not sent. Upon completion of the waiting period, if no answer has been returned, the API call is terminated. Then a new checkpoint of the application is taken in order to obtain a new checkpoint data set. The application is then migrated to another application server using the new checkpoint data set.

First claim

Opening claim text (preview).

What is claimed is: 1. An application execution system having a plurality of application servers, wherein a first application server in the plurality of application servers comprises: one or more processors; and memory storing an application programming interface (API) interface module and an application to be executed by the one or more processors, wherein the application is checkpointed in checkpoint data sets on a recurring basis, the checkpoint data sets including a last checkpoint data set from a last checkpoint of the application, the last checkpoint data set including identity information for any terminated API calls captured in an immediately preceding checkpoint, any API call answers transmitted after the immediately preceding checkpoint, and any captured and unsent API calls transmitted after the immediately preceding checkpoint wherein: the API interface module comprises instructions for: receiving a termination request for the application; determining whether a first API call has been sent by the application since the last checkpoint; and when a first API call has been sent since the last checkpoint, the API interface module further comprises instructions for: processing the first API call. 2. The system of claim 1 wherein the API interface module further comprises instructions for: taking a new checkpoint of the application thereby obtaining a new checkpoint data set; and sending the new checkpoint data set to a second application server in the plurality of application servers; terminating or marking as pending a second API call when the second API call is outstanding since the last checkpoint; and recording in the new checkpoint data set identity information for the second API call. 3. The application execution system of claim 1 , wherein the API interface module further comprises instructions for when a first API call has not been sent by the application since the last checkpoint: sending the last checkpoint data set to a second application server in the plurality of application servers. 4. The application execution system of claim 2 , wherein the second API call is marked as pending and wherein the API interface module further comprises instructions for sending a reply to the second API call to the second application server at a time after the new checkpoint data set is sent to the second application server. 5. The application execution system of claim 1 , wherein the first API call has been sent since the last checkpoint and wherein the API interface module further comprises instructions for: waiting a waiting period for an answer to a second API call when the second API call is outstanding since the last checkpoint; wherein when the answer has not been returned upon the completion of the waiting period: terminating or marking as pending the second API call; and recording in a new checkpoint data set identity information for the second API call; and when the answer has been returned upon the completion of the waiting period: recording the second API call answer in the new checkpoint data set. 6. The application execution system of claim 5 , wherein the API interface module further comprises instructions for: during the waiting period, capturing and not sending a third API call; and upon the completion of the waiting period, recording the third API call in the new checkpoint data. 7. The application execution system of claim 1 , wherein the termination request is from an application master. 8. The application execution system of claim 2 , wherein the new checkpoint data set includes an answer to the first API call. 9. The application execution system of claim 2 wherein the application is terminated on the first application server and wherein the second application server executes the application in a state the application was in upon termination on the first application server using: the new checkpoint data set when the new checkpoint data set is sent to the second application server, or the last checkpoint data set when the last checkpoint data set is sent to the second application server. 10. A method of operating an application server in a system having a plurality of application servers, the method comprising: on a first application server having one or more processors and memory storing an application programming interface (API) interface module and an application to be executed by the one or more processors, wherein the application is checkpointed in checkpoint data sets on a recurring basis, the checkpoint data sets including a last checkpoint data set, from a last checkpoint of the application, the last checkpoint data set including identity information for any terminated API calls captured in an immediately preceding checkpoint, any API call answers transmitted after the immediately preceding checkpoint, and any captured and unsent API calls transmitted after the immediately preceding checkpoint: receiving a termination request for the application; determining whether a first API call has been sent by the application since the last checkpoint; and when a first API call has been sent since the last checkpoint, the API interface module further comprises instructions for: processing the first API call. 11. The method of claim 10 wherein the API interface module further comprises instructions for: taking a new checkpoint of the application thereby obtaining a new checkpoint data set; and sending the new checkpoint data set to a second application server in the plurality of application servers; terminating or marking as pending a second API call when the second API call is outstanding since the last checkpoint; and recording in the new checkpoint data set identity information for the second API call. 12. The method of claim 10 , wherein the API interface module further comprises instructions for when a first API call has not been sent by the application since the last checkpoint: sending the last checkpoint data set to a second application server in the plurality of application servers. 13. The application execution system of claim 11 , wherein the second API call is marked as pending and wherein the API interface module further comprises instructions for sending a reply to the second API call to the second application server at a time after the new checkpoint data set is sent to the second application server. 14. The method of claim 10 , wherein the first API call has been sent since the last checkpoint, the method further comprising: waiting a waiting period for an answer to a second API call when the second API call is outstanding since the last checkpoint; when the answer has not been returned upon the completion of the waiting period: terminating or marking as pending the second API call; and recording in a new checkpoint data set identity information for the second API call; and when the answer has been returned upon the completion of the waiting period: recording the second API call answer in the new checkpoint data set. 15. The method of claim 14 , further comprising: during the waiting period, capturing and not sending a third API call; and upon the completion of the waiting period, recording the captured and unsent third API call in the new checkpoint data. 16. The method of claim 10 , wherein the termination request is received from an application master. 17. The method of claim 11 , wherein the new checkpoint data set includes an answer to the first API call. 18. The method of any of claim 11 , wherein the application is terminated on the first applicatio

Assignees

Inventors

Classifications

  • G06F9/4856Primary

    resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title

  • Interprogram communication · CPC title

  • Interfacing with client-server systems or between P2P systems · CPC title

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9727375B1 cover?
A method, system, and non-transitory computer readable medium for safely and efficiently migrating applications from one application server to another is provided. A termination request is received. When an API call has been sent by a first application since a last recurring checkpoint, the sent API call is processed one of several ways. Sometimes the API call is immediately terminated. Alterna…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4856. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).