Virtual mode execution manager
US-12118376-B2 · Oct 15, 2024 · US
US9727375B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9727375-B1 |
| Application number | US-201615347310-A |
| Country | US |
| Kind code | B1 |
| Filing date | Nov 9, 2016 |
| Priority date | Jun 19, 2012 |
| Publication date | Aug 8, 2017 |
| Grant date | Aug 8, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.