IP Library Granted Patent US 12,124,724
Granted Patent B2
US 12,124,724 · App. 17/761,536 · Granted Oct 22, 2024

Memory migration method, apparatus, and computing device

Inventor: Dianchen Tian (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F3/0647G06F3/0604G06F3/0679
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,124,724
App. No.
17/761,536
Granted
Oct 22, 2024
Kind
B2
Abstract

Embodiments of this application provide a memory migration method, an apparatus, and a computing device. The method includes: creating a processing thread, a sending thread, and a traversal thread for a memory region; where the traversal thread iteratively executes a traversal operation, where the traversal operation includes traversing a dirty bitmap of the memory region and assigning a dirty page address to a corresponding processing thread; the processing thread iteratively executes a processing operation, where the processing operation includes reading dirty page data based on the assigned dirty page address, and adding round number flag information to the dirty page data to generate a to-be-migrated dirty page; and the sending thread iteratively executes a transmission operation, where the transmission operation includes sending the to-be-migrated dirty page to a destination end, and the destination end restores respective dirty page data to destination memories based on iteration round numbers in different to-be-migrated dirty pages. The embodiments of this application improve memory migration efficiency.

Claims (49)

1. A memory migration method, comprising:

creating a processing thread, a sending thread, and a traversal thread for a memory region; wherein:

the traversal thread iteratively executes a traversal operation, wherein the traversal operation comprises traversing a dirty bitmap of the memory region and assigning a dirty page address to a corresponding processing thread,

the processing thread iteratively executes a processing operation, wherein the processing operation comprises reading dirty page data based on the assigned dirty page address, and adding round number flag information to the dirty page data to generate a to-be-migrated dirty page, and

the sending thread iteratively executes a transmission operation, wherein the transmission operation comprises sending the to-be-migrated dirty page to a destination end.

2. The method according to claim 1 , wherein the processing thread specifically iteratively executes the following processing operation:

reading dirty page data based on the assigned dirty page address;

compressing the dirty page data; and

adding round number flag information for identifying a corresponding iteration round number to the compressed dirty page data to generate a to-be-migrated dirty page.

3. The method according to claim 1 , further comprising:

creating a synchronization thread for the memory region; wherein

the synchronization thread iteratively executes a synchronization operation, wherein the synchronization operation comprises acquiring a dirty bitmap of the memory region and sending the dirty bitmap to the traversal thread.

4. The method according to claim 1 , wherein a plurality of processing threads are specifically created, and the plurality of processing threads run in parallel and iteratively execute the processing operation separately;

the traversal thread specifically iteratively executes the following traversal operation:

traversing a dirty bitmap of the memory region to determine a dirty page address and an iteration round number;

assigning, based on the number of to-be-processed dirty pages, corresponding to-be-processed tasks to one or more processing threads with free resources, wherein the to-be-processed task comprises the iteration round number and at least one to-be-processed dirty page address.

5. The method according to claim 1 , wherein the processing thread specifically iteratively executes the following processing operation:

reading dirty page data based on the assigned dirty page address;

adding round number flag information for identifying an iteration round number to the dirty page data to generate a to-be-migrated dirty page; and

caching the to-be-migrated dirty page to a dirty page cache page corresponding to the processing thread.

6. The method according to claim 5 , wherein the sending thread specifically iteratively executes the following sending operation:

transmitting a to-be-migrated dirty page in the dirty page cache queue to the destination end.

7. The method according to claim 1 , wherein a source memory is divided into a plurality of the memory regions, and different memory regions do not overlap each other; and

wherein the creating the processing thread, the sending thread, and the traversal thread for the memory region comprises:

creating a traversal thread for the memory region, at least one sending thread, and at least one processing thread.

8. The method according to claim 1 , wherein the creating the sending thread, the processing thread, and the traversal thread for the memory region comprises:

creating a sending thread, a processing thread, and a traversal thread for a memory region in one or more processing components.

9. The method according to claim 1 , wherein a plurality of processing threads and a plurality of sending threads are specifically created; and

wherein the plurality of processing threads run in parallel, and iteratively execute the processing operation separately, and the plurality of sending threads run in parallel, and iteratively execute the transmission operation separately.

10. A memory migration method, comprising:

creating a sending thread and a traversal thread for a memory region; wherein

the traversal thread iteratively executes a traversal operation, wherein the traversal operation comprises traversing a dirty bitmap of the memory region, reading dirty page data based on a dirty page address, and adding round number flag information to the dirty page data to generate a to-be-migrated dirty page, and

the sending thread iteratively executes a transmission operation, wherein the transmission operation comprises sending the to-be-migrated dirty page to a destination end.

11. The method according to claim 10 , further comprising:

creating a synchronization thread for the memory region; wherein

the synchronization thread iteratively executes a synchronization operation, wherein the synchronization operation comprises acquiring a dirty bitmap of the memory region and sending the dirty bitmap and the iteration round number to the traversal thread.

12. The method according to claim 10 , wherein a plurality of sending threads are specifically created, and the plurality of sending threads run in parallel and iteratively execute the sending operation separately; and

the traversal thread specifically iteratively executes the following traversal operation:

traversing a dirty bitmap of the memory region to determine a dirty page address and an iteration round number;

reading dirty page data based on the dirty page address;

adding round number flag information for identifying the iteration round number to the dirty page data to generate a to-be-migrated dirty page; and

separately assigning, based on the number of to-be-processed dirty pages, at least one to-be-migrated dirty page to one or more sending threads with free resources.

13. The method according to claim 10 , wherein a source memory is divided into a plurality of the memory regions, and different memory regions do not overlap each other; and

the creating the sending thread and the traversal thread for the memory region comprises:

creating for the memory region a traversal thread and a sending thread.

14. The method according to claim 10 , wherein the creating the sending thread and the traversal thread for the memory region comprises:

creating a sending thread and a traversal thread for a memory region in one or more processing components.

15. The method according to claim 10 , wherein a plurality of the sending threads are specifically created; and

a plurality of sending threads run in parallel, and iteratively execute the transmission operation separately.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: TIAN, DIANCHEN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 064919/0076 →
Priority Claims (1)
CN 201910913238.6 · Sep 25, 2019 · national
Continuity (1)
Related Publication 20220342579A1 · Oct 27, 2022