IP Library › Granted Patent US 11,132,210
Granted Patent B2
US 11,132,210 · App. 16/407,442 · Granted Sep 28, 2021

Dynamic parallelism adjustment

Inventors: Ali Anwar (San Jose, CA); Mohamed Mohamed (San Jose, CA); Samir Tata (Santa Clara, CA); Heiko H. Ludwig (San Francisco, CA)
Assignee: International Business Machines Corporation
G06F9/44578
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,132,210
App. No.
16/407,442
Filed
May 9, 2019
Granted
Sep 28, 2021
Kind
B2
Art Unit
2193
USPC
717/178
Abstract

A computer-implemented method includes receiving characteristics of available resources usable for downloading layers of a container image and fetching a manifest of the container image from a container registry. The method includes determining layers of the container image to be downloaded based on the manifest and, based on the characteristics of the available resources and sizes of the layers to be downloaded, adjusting an optimal parallelism to download the layers. The method includes downloading the layers.

Claims (42)

1. A computer-implemented method, comprising:

receiving characteristics of available resources usable for downloading layers of a container image, wherein the available resources are compared to resource requirements for downloading the layers, wherein the characteristics include at least one characteristic selected from the group consisting of: a network bandwidth and storage speed;

in response to determining that the resource requirements are less than or equal to the available resources, sorting the layers by size for generating a sorted list;

fetching a manifest of the container image from a container registry, wherein the manifest of the container image includes metadata at least about the layers of the container image, sizes of the layers of the container image, digests, operating systems (OS), architectures, and runtime requirements;

determining layers of the container image to be downloaded based on the manifest, wherein the fetching and the determining are performed substantially simultaneously as the receiving the characteristics of available resources usable for downloading the layers of the container image;

based on the characteristics of the available resources and the sizes of the layers to be downloaded, adjusting an optimal parallelism to download the layers, wherein adjusting the optimal parallelism reduces an amount of time to pull the container image from the container registry, wherein adjusting the optimal parallelism includes determining an optimal number of layers to download in parallel without causing a bottleneck to occur, wherein the optimal parallelism is adjusted in response to downloading a predefined number of the layers; and

downloading the layers.

2. The computer-implemented method of claim 1 , wherein the layers to be downloaded are layers which are not locally available.

3. The computer-implemented method of claim 1 , wherein the sizes of the layers to be downloaded are derived from the manifest, wherein the sorted list is generated by sorting the layers by size in increasing and/or decreasing order.

4. The computer-implemented method of claim 1 , in response to determining that the resource requirements are greater than the available resources, outputting an error.

5. The computer-implemented method of claim 1 , wherein adjusting the optimal parallelism for downloading the layers includes increasing the optimal parallelism for relatively smaller layers, wherein increasing the optimal parallelism includes increasing the number of layers to be downloaded in parallel by a set number of layers at a time.

6. The computer-implemented method of claim 1 , wherein adjusting the optimal parallelism for downloading the layers includes decreasing the optimal parallelism for relatively larger layers.

7. The computer-implemented method of claim 1 , wherein adjusting the optimal parallelism for downloading the layers includes not increasing the optimal parallelism in response to one or more of the available resources becoming a bottleneck.

8. The computer-implemented method of claim 1 , wherein the optimal parallelism is updated in response to completion of downloading at least one layer, wherein the at least one layer is removed from the sorted list in response to the completion of the download.

9. The computer-implemented method of claim 1 , wherein the characteristics of available resources include a first computational capacity for downloading the layers of the container image, wherein the characteristics of the available resources include a second computational capacity for extracting the layers of the container image.

10. The computer-implemented method of claim 1 , wherein the characteristics of available resources include storage space for storing the layers of the container image in an uncompressed form.

11. A computer program product for dynamically adjusting parallelism for pulling container images from container registries, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

receive, by the computer, characteristics of available resources usable for downloading layers of a container image, wherein the available resources are compared to resource requirements for downloading the layers, wherein the characteristics include at least one characteristic selected from the group consisting of: a network bandwidth, computational capacity, storage available, and storage speed;

in response to determining that the resource requirements are less than or equal to the available resources, sort, by the computer, the layers by size for generating a sorted list;

fetch, by the computer, a manifest of the container image from a container registry, wherein the manifest of the container image includes metadata at least about the layers of the container image, sizes of the layers of the container image, digests, operating systems (OS), architectures, and runtime requirements;

determine, by the computer, layers of the container image to be downloaded based on the manifest, wherein the fetching and the determining are performed substantially simultaneously as the receiving the characteristics of available resources usable for downloading the layers of the container image;

based on the characteristics of the available resources and the sizes of the layers to be downloaded, adjust, by the computer, an optimal parallelism to download the layers, wherein adjusting the optimal parallelism reduces an amount of time to pull the container image from the container registry, wherein adjusting the optimal parallelism includes determining an optimal number of layers to download in parallel without causing a bottleneck to occur, wherein the optimal parallelism is adjusted in response to downloading a predefined number of the layers; and

download, by the computer, the layers.

12. The computer program product of claim 11 , wherein the layers to be downloaded are layers which are not locally available.

13. The computer program product of claim 11 , wherein the sizes of the layers to be downloaded are derived from the manifest, wherein the sorted list is generated by sorting the layers by size in increasing and/or decreasing order.

14. The computer program product of claim 11 , wherein the layers to be downloaded are determined from the container registry.

15. The computer program product of claim 11 , comprising, in response to determining that the resource requirements are greater than the available resources, output, by the computer, an error.

16. The computer program product of claim 11 , wherein adjusting the optimal parallelism for downloading the layers includes increasing the optimal parallelism for relatively smaller layers, wherein increasing the optimal parallelism includes increasing the number of layers to be downloaded in parallel by a set number of layers at a time.

17. The computer program product of claim 11 , wherein adjusting the optimal parallelism for downloading the layers includes decreasing the optimal parallelism for relatively larger layers.

18. The computer program product of claim 11 , wherein adjusting the optimal parallelism for downloading the layers includes not increasing the optimal parallelism in response to one or more of the available resources becoming a bottleneck.

19. A system, comprising:

a processor; and

logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to:

receive characteristics of available resources usable for downloading layers of a container image, wherein the available resources are compared to resource requirements for downloading the layers, wherein the layers to be downloaded are layers which are not locally available, wherein the characteristics include at least one characteristic selected from the group consisting of: a network bandwidth, computational capacity, storage available, and storage speed;

in response to determining that the resource requirements are less than or equal to the available resources, sort the layers by size for generating a sorted list;

fetch a manifest of the container image from a container registry, wherein the manifest of the container image includes metadata at least about the layers of the container image, sizes of the layers of the container image, digests, operating systems (OS), architectures, and runtime requirements;

determine layers of the container image to be downloaded based on the manifest, wherein the fetching and the determining are performed substantially simultaneously as the receiving the characteristics of available resources usable for downloading the layers of the container image;

based on the characteristics of the available resources and the sizes of the layers to be downloaded, adjust an optimal parallelism to download the layers, wherein adjusting the optimal parallelism reduces an amount of time to pull the container image from the container registry, wherein adjusting the optimal parallelism includes determining an optimal number of layers to download in parallel without causing a bottleneck to occur, wherein the optimal parallelism is adjusted in response to downloading a predefined number of the layers; and

download the layers.

20. The system of claim 19 , wherein the available resources are compared to resource requirements for downloading the layers,

in response to determining that the resource requirements are less than or equal to the available resources, sorting the layers by size; and

in response to determining that the resource requirements are greater than the available resources, outputting an error.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2019
From: ANWAR, ALI; MOHAMED, MOHAMED; TATA, SAMIR; LUDWIG, HEIKO H.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049410/0541 →
Continuity (1)
Related Publication 20200356387A1 · Nov 12, 2020
Cited By (1)
US 12,681,712