IP Library › Granted Patent US 11,429,422
Granted Patent B2
US 11,429,422 · App. 16/662,893 · Granted Aug 30, 2022

Software container replication using geographic location affinity in a distributed computing environment

Inventor: Mohammad Rafey (Bangalore, IN)
Assignee: Dell Products L.P.
G06F9/45558G06K9/6215G06K9/6223G06N20/00G06F2009/4557G06F2009/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 11,429,422
App. No.
16/662,893
Filed
Oct 24, 2019
Granted
Aug 30, 2022
Kind
B2
Art Unit
2199
USPC
718/1
Abstract

A method includes monitoring client requests to access software container instances hosted by container host devices of a geographically-distributed software container platform and identifying, for a given software container instance hosted by a first one of the container host devices, geographic clusters of the client requests. The method also includes calculating a network distance from a given one of the geographic clusters to each of at least a subset of the container host devices. The method further includes replicating the given software container instance in a second one of the container host devices responsive to determining that the calculated network distance from the given geographic cluster to the second container host device is at least a threshold amount less than the calculated network distance from the given geographic cluster to the first container host device.

Claims (58)

1. A method comprising steps of:

monitoring client requests to access one or more software container instances each hosted by one or more of a plurality of container host devices of a geographically-distributed software container platform;

identifying, for a given software container instance hosted by a first one of the plurality of container host devices, one or more geographic clusters of the monitored client requests;

calculating a network distance from a given one of the geographic clusters to each of at least a subset of the plurality of container host devices, the subset of the plurality of container host devices comprising the first container host device and at least a second container host device; and

replicating the given software container instance in the second container host device responsive to determining that the calculated network distance from the given geographic cluster to the second container host device is at least a threshold amount less than the calculated network distance from the given geographic cluster to the first container host device;

wherein identifying the one or more geographic clusters of the monitored client requests comprises specifying two or more geographic areas and utilizing a machine learning-based clustering algorithm to scan for geographic clusters within each of the specified two or more geographic areas individually;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 wherein the geographically-distributed container platform comprises a cloud computing platform.

3. The method of claim 1 wherein monitoring the client requests comprises, for a given client request, obtaining:

a timestamp of the given client request;

a container instance identifier; and

a latitude and longitude of a geographic location of a source application providing the given client request.

4. The method of claim 3 wherein identifying the one or more geographic clusters comprises identifying the given geographic cluster utilizing respective ones of the client requests each comprising:

an associated container instance identifier matching a given container instance identifier of the given software container instance;

an associated timestamp within a designated threshold of a current time; and

an associated latitude and longitude corresponding to a geographic location within a designated geographic region.

5. The method of claim 1 wherein the machine learning-based clustering algorithm comprises a K-means clustering algorithm.

6. The method of claim 1 wherein the machine learning-based clustering algorithm comprises at least one of: a mini-batch K-means clustering algorithm, a hierarchical clustering algorithm, a density-based spatial clustering of application with noise algorithm, and a mean shift clustering algorithm.

7. The method of claim 1 wherein the calculated network distances are based at least in part on geographic distances between the given geographic cluster and each of the subset of the plurality of container host devices.

8. The method of claim 7 wherein the calculated network distances are further based at least in part on available network bandwidth and network latency between the given geographic cluster and each of the subset of the plurality of container host devices.

9. The method of claim 1 wherein calculating the network distance from the given geographic cluster to each of the subset of the plurality of container host devices comprises utilizing a Haversine distance computation algorithm.

10. The method of claim 1 further comprising:

dynamically updating a location of the given geographic region based on monitoring of additional client requests directed to the replicated software container instance; and

determining whether to replicate the given software container instance on a third one of the plurality of container host devices responsive to calculating updated network distances from the updated location of the given geographic region to the subset of the plurality of container host devices.

11. The method of claim 1 wherein replicating the given software container instance in the second container host device further comprises redirecting network traffic originating in the given geographic cluster from the given software container instance hosted in the first container host device to the replicated software container instance hosted in the second container host device.

12. 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 perform steps of:

monitoring client requests to access one or more software container instances each hosted by one or more of a plurality of container host devices of a geographically-distributed software container platform;

identifying, for a given software container instance hosted by a first one of the plurality of container host devices, one or more geographic clusters of the monitored client requests;

calculating a network distance from a given one of the geographic clusters to each of at least a subset of the plurality of container host devices, the subset of the plurality of container host devices comprising the first container host device and at least a second container host device; and

replicating the given software container instance in the second container host device responsive to determining that the calculated network distance from the given geographic cluster to the second container host device is at least a threshold amount less than the calculated network distance from the given geographic cluster to the first container host device;

wherein identifying the one or more geographic clusters of the monitored client requests comprises specifying two or more geographic areas and utilizing a machine learning-based clustering algorithm to scan for geographic clusters within each of the specified two or more geographic areas individually.

13. The computer program product of claim 12 wherein monitoring the client requests comprises, for a given client request, obtaining:

a timestamp of the given client request;

a container instance identifier; and

a latitude and longitude of a geographic location of a source application providing the given client request.

14. The computer program product of claim 13 wherein identifying the one or more geographic clusters comprises identifying the given geographic cluster utilizing respective ones of the client requests each comprising:

an associated container instance identifier matching a given container instance identifier of the given software container instance;

an associated timestamp within a designated threshold of a current time; and

an associated latitude and longitude corresponding to a geographic location within a designated geographic region.

15. The computer program product of claim 12 wherein replicating the given software container instance in the second container host device further comprises redirecting network traffic originating in the given geographic cluster from the given software container instance hosted in the first container host device to the replicated software container instance hosted in the second container host device.

16. An apparatus comprising:

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

the at least one processing device being configured to perform steps of:

monitoring client requests to access one or more software container instances each hosted by one or more of a plurality of container host devices of a geographically-distributed software container platform;

identifying, for a given software container instance hosted by a first one of the plurality of container host devices, one or more geographic clusters of the monitored client requests;

calculating a network distance from a given one of the geographic clusters to each of at least a subset of the plurality of container host devices, the subset of the plurality of container host devices comprising the first container host device and at least a second container host device; and

replicating the given software container instance in the second container host device responsive to determining that the calculated network distance from the given geographic cluster to the second container host device is at least a threshold amount less than the calculated network distance from the given geographic cluster to the first container host device;

wherein identifying the one or more geographic clusters of the monitored client requests comprises specifying two or more geographic areas and utilizing a machine learning-based clustering algorithm to scan for geographic clusters within each of the specified two or more geographic areas individually.

17. The apparatus of claim 16 wherein monitoring the client requests comprises, for a given client request, obtaining:

a timestamp of the given client request;

a container instance identifier; and

a latitude and longitude of a geographic location of a source application providing the given client request.

18. The apparatus of claim 17 wherein identifying the one or more geographic clusters comprises identifying the given geographic cluster utilizing respective ones of the client requests each comprising:

an associated container instance identifier matching a given container instance identifier of the given software container instance;

an associated timestamp within a designated threshold of a current time; and

an associated latitude and longitude corresponding to a geographic location within a designated geographic region.

19. The apparatus of claim 16 wherein replicating the given software container instance in the second container host device further comprises redirecting network traffic originating in the given geographic cluster from the given software container instance hosted in the first container host device to the replicated software container instance hosted in the second container host device.

20. The apparatus of claim 16 wherein the calculated network distances are based at least in part on geographic distances between the given geographic cluster and each of the subset of the plurality of container host devices, the geographic distances being computed utilizing geographic location hashes that encode geographic locations into alphanumeric strings based at least in part on a latitude and longitude associated with the given geographic cluster and latitudes and longitudes of the subset of the plurality of container host devices.

Assignments (9)
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 (051302/0528) 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) 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 CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2019
From: RAFEY, MOHAMMAD
To: DELL PRODUCTS L.P.
Reel/Frame 050819/0527 →
Continuity (1)
Related Publication 20210124603A1 · Apr 29, 2021