IP Library › Granted Patent US 12,737,214
Granted Patent B2
US 12,737,214 · App. 18/587,066 · Granted Sep 15, 2026

Efficient container migration

Inventors: Yu Sun (Shanghai, CN); Zhan Peng Huo (Beijing, CN); Da Long Wang (Hangzhou, CN); Hong Yi Zhang (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/45558G06F2009/4557G06F2009/45579
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,737,214
App. No.
18/587,066
Granted
Sep 15, 2026
Kind
B2
Abstract

Container migration is provided. A comparison of a second image and a third image is performed to detect data changes made by write input/output operations occurring between a second timestamp and a third timestamp. It is determined whether a set of data changes exists in the third image that occurred between the second timestamp and the third timestamp. In response to determining that the set of data changes does exist in the third image that occurred between the second timestamp and the third timestamp, a copy of the set of data changes is sent to a second host node. The set of data changes are merged into the second host node. The write input/output operations are resumed to the second host node using previously queued write input/output operations and new incoming write input/output operations so that the second host node is processing read input/output operations and the write input/output operations.

Claims (76)

1 . A computer-implemented method for container migration, the computer-implemented method comprising:

performing, by a computer, a comparison of a first new read only layer of a second container image and a second new read only layer of a third container image to detect any data changes made by write input/output operations corresponding to a service occurring between a second timestamp when the write input/output operations were resumed to a first container on a first host node and a third timestamp when the write input/output operations of the first container were queued to operating system memory for a second time;

determining, by the computer, whether a set of data changes exists in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison;

responsive to the computer determining that the set of data changes does exist in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison, sending, by the computer, a copy of the set of data changes to a second host node;

merging, by the computer, the set of data changes into a read/write layer of the second container corresponding to the service running on the second host node; and

resuming, by the computer, the write input/output operations to the second container running on the second host node at a fourth timestamp using previously queued write input/output operations corresponding to the second container and new incoming write input/output operations to the second container so that the second container is processing read input/output operations and the write input/output operations corresponding to the service.

2 . The computer-implemented method of claim 1 , further comprising:

receiving, by the computer, a first input to generate the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using a first container image; and

generating, by the computer, the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using the first container image.

3 . The computer-implemented method of claim 2 , further comprising:

receiving, by the computer, a second input to migrate the first container corresponding to the service from the first host node to the second host node; and

queuing, by the computer, the write input/output operations of the first container corresponding to the service in operating system memory at a first timestamp so that the first container being migrated only processes the read input/output operations corresponding to the service in response to receiving the second input to migrate the first container.

4 . The computer-implemented method of claim 3 , further comprising:

executing, by the computer, a first commit command to generate the second container image based on the first container being migrated by generating the first new read only layer in the second container image based on contents of a read/write layer of the first container being migrated; and

resuming, by the computer, the write input/output operations to the first container being migrated at a second timestamp using previously queued write input/output operations corresponding to the first container and new incoming write input/output operations to the first container so that the first container is processing both the read input/output operations and the write input/output operations corresponding to the service.

5 . The computer-implemented method of claim 4 , further comprising:

sending, by the computer, a copy of the second container image to the second host node;

generating, by the computer, the second container on the second host node to process the read input/output operations and the write input/output operations corresponding to the service using the second container image that includes the first new read only layer based on the contents of the read/write layer of the first container being migrated;

queuing, by the computer, the write input/output operations of the second container corresponding to the service in operating system memory upon generating the second container so that the second container only processes the read input/output operations corresponding to the service; and

starting, by the computer, the second container on the second host node to process the read input/output operations corresponding to the service.

6 . The computer-implemented method of claim 5 , further comprising:

queuing, by the computer, the write input/output operations of the first container corresponding to the service again in operating system memory at a third timestamp in response to starting the second container on the second host node so that the first container being migrated again only processes the read input/output operations corresponding to the service; and

executing, by the computer, a second commit command to generate the third container image based on the first container being migrated by generating the second new read only layer in the third container image based on the contents of the read/write layer of the first container being migrated.

7 . The computer-implemented method of claim 1 , further comprising:

deleting, by the computer, the first container corresponding to the service from the first host node in response to resuming the write input/output operations corresponding to the service to the second container running on the second host node.

8 . A computer system for container migration, the computer system comprising:

a communication fabric;

a set of computer-readable storage media connected to the communication fabric, wherein the set of computer-readable storage media collectively stores program instructions; and

a set of processors connected to the communication fabric, wherein the set of processors executes the program instructions to:

perform a comparison of a first new read only layer of a second container image and a second new read only layer of a third container image to detect any data changes made by write input/output operations corresponding to a service occurring between a second timestamp when the write input/output operations were resumed to a first container on a first host node and a third timestamp when the write input/output operations of the first container were queued to operating system memory for a second time;

determine whether a set of data changes exists in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison;

send a copy of the set of data changes to a second host node in response to determining that the set of data changes does exist in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison;

merge the set of data changes into a read/write layer of the second container corresponding to the service running on the second host node; and

resume the write input/output operations to the second container running on the second host node at a fourth timestamp using previously queued write input/output operations corresponding to the second container and new incoming write input/output operations to the second container so that the second container is processing read input/output operations and the write input/output operations corresponding to the service.

9 . The computer system of claim 8 , wherein the set of processors further executes the program instructions to:

receive a first input to generate the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using a first container image; and

generate the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using the first container image.

10 . The computer system of claim 9 , wherein the set of processors further executes the program instructions to:

receive a second input to migrate the first container corresponding to the service from the first host node to the second host node; and

queue the write input/output operations of the first container corresponding to the service in operating system memory at a first timestamp so that the first container being migrated only processes the read input/output operations corresponding to the service in response to receiving the second input to migrate the first container.

11 . The computer system of claim 10 , wherein the set of processors further executes the program instructions to:

execute a first commit command to generate the second container image based on the first container being migrated by generating the first new read only layer in the second container image based on contents of a read/write layer of the first container being migrated; and

resume the write input/output operations to the first container being migrated at a second timestamp using previously queued write input/output operations corresponding to the first container and new incoming write input/output operations to the first container so that the first container is processing both the read input/output operations and the write input/output operations corresponding to the service.

12 . The computer system of claim 11 , wherein the set of processors further executes the program instructions to:

send a copy of the second container image to the second host node;

generate the second container on the second host node to process the read input/output operations and the write input/output operations corresponding to the service using the second container image that includes the first new read only layer based on the contents of the read/write layer of the first container being migrated;

queue the write input/output operations of the second container corresponding to the service in operating system memory upon generating the second container so that the second container only processes the read input/output operations corresponding to the service; and

start the second container on the second host node to process the read input/output operations corresponding to the service.

13 . The computer system of claim 12 , wherein the set of processors further executes the program instructions to:

queue the write input/output operations of the first container corresponding to the service again in operating system memory at a third timestamp in response to starting the second container on the second host node so that the first container being migrated again only processes the read input/output operations corresponding to the service; and

execute a second commit command to generate the third container image based on the first container being migrated by generating the second new read only layer in the third container image based on the contents of the read/write layer of the first container being migrated.

14 . A computer program product for container migration, the computer program product comprising a set of computer-readable storage media having program instructions collectively stored therein, the program instructions executable by a computer to cause the computer to:

perform a comparison of a first new read only layer of a second container image and a second new read only layer of a third container image to detect any data changes made by write input/output operations corresponding to a service occurring between a second timestamp when the write input/output operations were resumed to a first container on a first host node and a third timestamp when the write input/output operations of the first container were queued to operating system memory for a second time;

determine whether a set of data changes exists in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison;

send a copy of the set of data changes to a second host node in response to determining that the set of data changes does exist in the second new read only layer of the third container image that occurred between the second timestamp and the third timestamp based on the comparison;

merge the set of data changes into a read/write layer of the second container corresponding to the service running on the second host node; and

resume the write input/output operations to the second container running on the second host node at a fourth timestamp using previously queued write input/output operations corresponding to the second container and new incoming write input/output operations to the second container so that the second container is processing read input/output operations and the write input/output operations corresponding to the service.

15 . The computer program product of claim 14 , wherein the program instructions further cause the computer to:

receive a first input to generate the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using a first container image; and

generate the first container on the first host node to process the read input/output operations and the write input/output operations corresponding to the service using the first container image.

16 . The computer program product of claim 15 , wherein the program instructions further cause the computer to:

receive a second input to migrate the first container corresponding to the service from the first host node to the second host node; and

queue the write input/output operations of the first container corresponding to the service in operating system memory at a first timestamp so that the first container being migrated only processes the read input/output operations corresponding to the service in response to receiving the second input to migrate the first container.

17 . The computer program product of claim 16 , wherein the program instructions further cause the computer to:

execute a first commit command to generate the second container image based on the first container being migrated by generating the first new read only layer in the second container image based on contents of a read/write layer of the first container being migrated; and

resume the write input/output operations to the first container being migrated at a second timestamp using previously queued write input/output operations corresponding to the first container and new incoming write input/output operations to the first container so that the first container is processing both the read input/output operations and the write input/output operations corresponding to the service.

18 . The computer program product of claim 17 , wherein the program instructions further cause the computer to:

send a copy of the second container image to the second host node;

generate the second container on the second host node to process the read input/output operations and the write input/output operations corresponding to the service using the second container image that includes the first new read only layer based on the contents of the read/write layer of the first container being migrated;

queue the write input/output operations of the second container corresponding to the service in operating system memory upon generating the second container so that the second container only processes the read input/output operations corresponding to the service; and

start the second container on the second host node to process the read input/output operations corresponding to the service.

19 . The computer program product of claim 18 , wherein the program instructions further cause the computer to:

queue the write input/output operations of the first container corresponding to the service again in operating system memory at a third timestamp in response to starting the second container on the second host node so that the first container being migrated again only processes the read input/output operations corresponding to the service; and

execute a second commit command to generate the third container image based on the first container being migrated by generating the second new read only layer in the third container image based on the contents of the read/write layer of the first container being migrated.

20 . The computer program product of claim 14 , wherein the program instructions further cause the computer to:

delete the first container corresponding to the service from the first host node in response to resuming the write input/output operations corresponding to the service to the second container running on the second host node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2024
From: SUN, YU; HUO, ZHAN PENG; WANG, DA LONG; ZHANG, HONG YI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 066560/0159 →
Continuity (1)
Related Publication 20250272130A1 · Aug 28, 2025
References Cited (8)
US 10768973B1 · Jin et al. · 2020 [cited by applicant]
US 11055012B2 · Makin et al. · 2021 [cited by applicant]
US 11249815B2 · Bourbonnais et al. · 2022 [cited by applicant]
US 11556499B2 · Wu et al. · 2023 [cited by applicant]
US 20240362014A1 · Hursey · 2024 [cited by examiner]
Zerouali, Ahmed. “Analyzing technical lag in docker images.” Benevol 2018. 2018. (Year: 2018). [cited by examiner]
Gonzalez-Barahona, Jesus M. “Characterizing outdateness with technical lag: an exploratory study.” Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops. 2020. (Year: 2020). [cited by examiner]
Ma et al., “Efficient Live Migration of Edge Services Leveraging Container Layered Storage,” IEEE Transactions on Mobile Computing, Sep. 2019, pp. 2020-2033, vol. 18, No. 9, Institute of Electrical and Electronics Engin… [cited by applicant]