IP Library Granted Patent US 10,754,686
Granted Patent B2
US 10,754,686 · App. 16/162,487 · Granted Aug 25, 2020

Method and electronic device for application migration

Inventors: Fan Guo (Shanghai, CN); Junping Zhao (Beijing, CN); Kun Wang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F9/4856G06F9/45558G06F9/5027G06F2009/4557G06F2009/45583
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 10,754,686
App. No.
16/162,487
Granted
Aug 25, 2020
Kind
B2
Abstract

The present disclosure relate to a method and an electronic device for application migration. The method includes: in response to a migration request for migrating, from a source machine to a target machine, an application executed at a source processing unit on the source machine, establishing a connection between the source machine and the target machine, the request indicating the application to be migrated, the target machine and a target processing unit to operate the application on the target machine; synchronizing a plurality of threads related to the application executed on the source processing unit; determining a resource descriptor and allocation and use conditions of a memory related to the application at the source processing unit; transmitting, via the connection, the determined resource descriptor and the allocation and use conditions of the memory to the target memory, for migration preparation performed by the target machine; and determining, based on the allocation and use conditions of the memory, the data to be migrated, for migration via the connection to the target machine.

Claims (53)

1. A method of application migration, comprising:

receiving a request to migrate an application operating at a source processing unit on a source machine to a target machine, the migration request specifying the application to be migrated, the target machine, and a target processing unit for operating the application at the target machine;

in response to receiving the migration request, establishing a connection between the source machine and the target machine;

identifying a plurality of threads related to operation of the application at the source processing unit;

synchronizing the plurality of threads at the source machine;

determining a resource descriptor and allocation and use conditions of two or more portions of a memory of the source machine related to operation of the application at the source processing unit;

transmitting, via the connection between the source machine and the target machine, the determined resource descriptor and allocation and use conditions of the two or more portions of the memory of the source machine to the target machine for migration preparation performed by the target machine;

determining application data to be migrated to the target machine based at least in part on the allocation and use conditions of the two or more portions of the memory of the source machine;

determining whether an amount of the application data to be migrated to the target machine exceeds a designated threshold;

in response to determining that the amount of the application data to be migrated to the target machine exceeds the designated threshold, transmitting one or more portions of the application data to be migrated sufficient to begin execution of the application on the target machine; and

at least one of: performing batch transmission of one or more remaining portions of the application data to be migrated to the target machine using a backstage process;

and performing on-demand asynchronous transmission of one or more remaining portions of the application data to be migrated to the target machine.

2. The method according to claim 1 , wherein the source processing unit and the target processing unit are Graphic Processing Units (GPUs) or Field-Programmable Gate Arrays (FPGAs).

3. The method according to claim 1 , further comprising, in response to migrating the application data to the target machine, transmitting requests for the application, which are received after receiving the migration request, to the target machine via a First-in First-out (FIFO) queue.

4. The method according to claim 1 , further comprising, in response to receiving from the target machine an indication that the application has been executed on the target machine, transmitting addressing information of the target machine to a client, such that the client redirects a request for the application from the source machine to the target machine.

5. The method according to claim 1 , wherein the allocation and use conditions comprise a starting address, a length, a type and use status of a memory allocated to the application.

6. The method according to claim 5 , further comprising, in response to determining that the amount of the application data to be migrated to the target machine exceeds the designated threshold, transmitting a first portion of the application data to the target machine, the first portion of the application data comprising most recently used application data in the application data to be migrated.

7. The method according to claim 6 , further comprising, in response to receiving an indication that the application has been executed on the target machine, transmitting a second portion of the application data to the target machine, the second portion of the application data comprising remaining application data in the application data to be migrated other than the first portion of the application data.

8. The method according to claim 6 , further comprising, in response to receiving from the target machine a request for a third portion of the application data, transmitting the third portion of the application data to the target machine, the third portion of the application data comprising a portion of the application data in the application data to be migrated other than the first portion of the application data.

9. The method according to claim 1 , further comprising performing the batch transmission of one or more of the remaining portions of the application data to be migrated to the target machine using the backstage process.

10. The method according to claim 1 , further comprising performing the on-demand asynchronous transmission of one or more of the remaining portions of the application data to be migrated to the target machine.

11. The method according to claim 1 , wherein the resource descriptor comprises a context and a handle of the application at the source processing unit.

12. The method according to claim 11 , wherein the context indicates a general operating environment to be initialized on the target processing unit before operating code of the application.

13. The method according to claim 11 , wherein the handle comprises a reference object of the client visible to an application programming interface operation related to the application.

14. The method according to claim 1 , wherein the application data to be migrated comprises data stored in a subset of the two or more portions of the memory of the source machine having (i) an allocation condition of allocated and (ii) a use condition of used.

15. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to receive a request to migrate an application operating at a source processing unit on a source machine to a target machine, the migration request specifying the application to be migrated, the target machine, and a target processing unit for operating the application at the target machine;

in response to receiving the migration request, to establish a connection between the source machine and the target machine;

to identify a plurality of threads related to operation of the application at the source processing unit;

to synchronize the plurality of threads at the source machine;

to determine a resource descriptor and allocation and use conditions of two or more portions of a memory of the source machine related to operation of the application at the source processing unit;

to transmit, via the connection between the source machine and the target machine, the determined resource descriptor and allocation and use conditions of the two or more portions of the memory of the source machine to the target machine for migration preparation performed by the target machine;

to determine application data to be migrated to the target machine based at least in part on the allocation and use conditions of the two or more portions of the memory of the source machine;

to determine whether an amount of the application data to be migrated to the target machine exceeds a designated threshold;

in response to determining that the amount of the application data to be migrated to the target machine exceeds the designated threshold, to transmit one or more portions of the application data to be migrated sufficient to begin execution of the application on the target machine; and

to at least one of: perform batch transmission of one or more remaining portions of the application data to be migrated to the target machine using a backstage process; and perform on-demand asynchronous transmission of one or more remaining portions of the application data to be migrated to the target machine.

16. The apparatus according to claim 15 , wherein the resource descriptor comprises a context and a handle of the application at the source processing unit, the context indicating a general operating environment to be initialized on the target processing unit before operating code of the application, the handle comprising a reference object of the client visible to an application programming interface operation related to the application.

17. The apparatus according to claim 15 , wherein the application data to be migrated comprises data stored in a subset of the two or more portions of the memory of the source machine having (i) an allocation condition of allocated and (ii) a use condition of used.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device:

to receive a request to migrate an application operating at a source processing unit on a source machine to a target machine, the migration request specifying the application to be migrated, the target machine, and a target processing unit for operating the application at the target machine;

in response to receiving the migration request, to establish a connection between the source machine and the target machine;

to identify a plurality of threads related to operation of the application at the source processing unit;

to synchronize the plurality of threads at the source machine;

to determine a resource descriptor and allocation and use conditions of two or more portions of a memory of the source machine related to operation of the application at the source processing unit;

to transmit, via the connection between the source machine and the target machine, the determined resource descriptor and allocation and use conditions of the two or more portions of the memory of the source machine to the target machine for migration preparation performed by the target machine;

to determine application data to be migrated to the target machine based at least in part on the allocation and use conditions of the two or more portions of the memory of the source machine;

to determine whether an amount of the application data to be migrated to the target machine exceeds a designated threshold;

in response to determining that the amount of the application data to be migrated to the target machine exceeds the designated threshold, to transmit one or more portions of the application data to be migrated sufficient to begin execution of the application on the target machine; and

to at least one of: perform batch transmission of one or more remaining portions of the application data to be migrated to the target machine using a backstage process; and perform on-demand asynchronous transmission of one or more remaining portions of the application data to be migrated to the target machine.

19. The computer program product according to claim 18 , wherein the resource descriptor comprises a context and a handle of the application at the source processing unit, the context indicating a general operating environment to be initialized on the target processing unit before operating code of the application, the handle comprising a reference object of the client visible to an application programming interface operation related to the application.

20. The computer program product according to claim 18 , wherein the application data to be migrated comprises data stored in a subset of the two or more portions of the memory of the source machine having (i) an allocation condition of allocated and (ii) a use condition of used.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2018
From: GUO, FAN; ZHAO, JUNPING; WANG, KUN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047197/0434 →
Priority Claims (1)
CN 2017 1 0986500 · Oct 20, 2017 · national
Continuity (1)
Related Publication 20190121663A1 · Apr 25, 2019