IP Library Granted Patent US 10,469,574
Granted Patent B1
US 10,469,574 · App. 15/134,041 · Granted Nov 5, 2019

Incremental container state persistency and replication for containerized stateful applications

Inventors: Cang Dai (Beijing, CN); Yu Cao (Beijing, CN); Vivian Gao (Beijing, CN); Kenneth Durazzo (San Ramon, CA); Grace Cui (Beijing, CN)
Assignee: EMC IP Holding Company LLC
H04L67/1095G06F9/45558G06F16/27G06F2009/45595
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,469,574
App. No.
15/134,041
Granted
Nov 5, 2019
Kind
B1
Abstract

A container is obtained at a host device of a set of host devices in a container hosting environment. At the host device, one or more other host devices of the set of hosting devices are identified as one or more replica host devices. A commit operation is performed at the host device for a given layer of the obtained container. A synchronization operation is then initiated at the host device with each of the one or more replica host devices based on the committed layer of the obtained container to form a replica container at each of the one or more replica host devices. The replica container at each of the one or more replica host devices is state-synchronized with the obtained container.

Claims (48)

1. A method, comprising:

obtaining at least one base layer of a container at a host device of a set of host devices in a container hosting environment, the host device being configured to launch an application program using the container;

generating, at the host device, a given layer, the given layer being mounted to the obtained at least one base layer as part of the container;

identifying, at the host device, one or more other host devices of the set of hosting devices as one or more replica host devices;

performing, at the host device, a commit operation for the given layer of the container; and

initiating, at the host device, a synchronization operation with each of the one or more replica host devices, the synchronization operation comprising providing the committed given layer of the container to each of the one or more replica host devices, each of the one or more replica host devices forming a replica container based at least in part on the committed given layer, wherein the replica container at each of the one or more replica host devices is state-synchronized with the container such that, responsive to a failure associated with the container at the host device, an execution of the application program is resumable on a given replica host device of the one or more replica host devices based at least in part on the formed replica container of the given replica host device;

wherein the host devices are implemented via one or more processing devices operatively coupled via a communication network to form the container hosting environment.

2. The method of claim 1 , wherein the at least one base layer of the container is a read-only layer and wherein the given layer of the obtained container, prior to the commit operation, is a read-write layer of the obtained container.

3. The method of claim 1 , wherein the replica container is formed at each of the one or more replica host devices by merging two or more layers.

4. The method of claim 3 , wherein merging two or more layers is based on a criterion selected from a group including a system load criterion and a number of layers criterion.

5. The method of claim 1 , wherein the identifying step further comprises the host device creating a list of target host devices from the set of host devices, the list of target host devices comprising host devices that have not yet been selected as replica host devices.

6. The method of claim 5 , wherein the list is ordered based on a respective distance within the container hosting environment between each of the target host devices and the host device.

7. The method of claim 5 , wherein the identifying step further comprises the host device respectively sending a request to each of the target host devices to be one of the replica host devices.

8. The method of claim 7 , wherein the identifying step further comprises the host device receiving an acceptance to be a replica host device from one or more of the target host devices.

9. The method of claim 8 , wherein an acceptance by a given target host device of the list of target host devices is based at least in part on a comparison of a system load at the given target host device to a threshold system load for the given target host device.

10. The method of claim 8 , wherein an acceptance by a given target host device of the list of target host devices is based at least in part on a comparison of the number of other host devices for which the given target host device already serves as a replica host device to a threshold number of host devices.

11. The method of claim 8 , wherein the identifying step further comprises the host device selecting a given target host device of the list of target host devices from which it received an acceptance as a replica host device, and

wherein each target host device selected to be a replica host device fetches one or more base layers of the container from a container registry, the replica container being formed based at least in part on the fetched one or more base layers and the committed given layer.

12. The method of claim 1 , wherein the host device serves as one of its own replica host devices.

13. The method of claim 1 , wherein the set of host devices is under control of a controller.

14. The method of claim 13 , wherein the controller utilizes at least part of the set of replica host devices during a migration process.

15. The method of claim 13 , wherein the controller utilizes at least part of the set of replica host devices during a high availability process.

16. The method of claim 13 , wherein the controller utilizes at least part of the set of replica host devices during a backup and recovery process.

17. An article of manufacture comprising a processor-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device implement the steps of:

obtaining at least one base layer of a container at a host device of a set of host devices in a container hosting environment, the host device being configured to launch an application program using the container;

generating, at the host device, a given layer, the given layer being mounted to the obtained at least one base layer as part of the container;

identifying, at the host device, one or more other host devices of the set of hosting devices as one or more replica host devices;

performing, at the host device, a commit operation for the given layer of the container; and

initiating, at the host device, a synchronization operation with each of the one or more replica host devices, the synchronization operation comprising providing the committed given layer of the container to each of the one or more replica host devices, each of the one or more replica host devices forming a replica container based at least in part on the committed given layer, wherein the replica container at each of the one or more replica host devices is state-synchronized with the container such that, responsive to a failure associated with the container at the host device, an execution of the application program is resumable on a given replica host device of the one or more replica host devices based at least in part on the formed replica container of the given replica host device.

18. The article of manufacture according to claim 17 , wherein the identifying step further comprises:

the host device creating a list of target host devices from the set of host devices, the list of target host devices comprising host devices that have not yet been selected as replica host devices;

the host device respectively sending a request to each of the target host devices to be one of the replica host devices;

the host device receiving an acceptance to be a replica host device from one or more of the target host devices; and

the host device selecting a given target host device of the list of target host devices from which it received an acceptance as a replica host device; and

wherein each target host device selected to be a replica host device fetches one or more base layers of the container from a container registry, the replica container being formed based at least in part on the fetched one or more base layers and the committed given layer.

19. An apparatus comprising:

at least one processor operatively coupled to at least one memory forming a host device of a set of host devices in a container hosting environment, the host device being configured to launch an application program using the container, the host device being further configured to:

obtain at least one base layer of a container;

generate a given layer, the given layer being mounted to the obtained at least one base layer as part of the container;

identify one or more other host devices of the set of hosting devices as one or more replica host devices;

perform a commit operation for the given layer of the obtained container; and

initiate a synchronization operation with each of the one or more replica host devices, the synchronization operation comprising providing the committed given layer of the container to each of the one or more replica host devices, each of the one or more replica host devices forming a replica container based at least in part on the committed given layer, wherein the replica container at each of the one or more replica host devices is state-synchronized with the container such that, responsive to a failure associated with the container at the host device, an execution of the application program is resumable on a given replica host device of the one or more replica host devices based at least in part on the formed replica container of the given replica host device.

20. The apparatus according to claim 19 , wherein the host device is further configured to:

create a list of target host devices from the set of host devices, the list of target host devices comprising host devices that have not yet been selected as replica host devices;

respectively send a request to each of the target host devices to be one of the replica host devices;

receive an acceptance to be a replica host device from one or more of the target host devices; and

select a given target host device of the list of target host devices from which it received an acceptance as a replica host device; and

wherein each target host device selected to be a replica host device fetches one or more base layers of the container from a container registry, the replica container being formed based at least in part on the fetched one or more base layers and the committed given layer.

Assignments (10)
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 IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
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 Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: DAI, CANG; CAO, YU; GAO, VIVIAN; CUI, GRACE
To: EMC CORPORATION
Reel/Frame 041109/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: DURAZZO, KENNETH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041110/0061 →