IP Library Granted Patent US 10,970,258
Granted Patent B2
US 10,970,258 · App. 15/903,082 · Granted Apr 6, 2021

Managing container-image layers

Inventor: Huamin Chen (Westboro, MA)
Assignee: Red Hat, Inc.
G06F16/185G06F3/0605G06F3/0643G06F3/0649G06F16/13G06F16/288
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,970,258
App. No.
15/903,082
Granted
Apr 6, 2021
Kind
B2
Abstract

Container-image layers can be managed. For example, a computing device can determine a first score for a first layer of a container image and a second score for a second layer of the container image. The computing device can determine that the first score corresponds to a first storage destination among several possible storage destinations. The computing device can also determine that the second score corresponds to a second storage destination among the possible storage destinations. The second storage destination can be different from the first storage destination. The computing device can then store (i) the first layer in the first storage destination based on the first layer being correlated to the first score, and (ii) the second layer in the second storage destination based on the second layer being correlated to the second score.

Claims (74)

1. A system comprising:

a processing device; and

a memory device including instructions that are executable by the processing device for causing the processing device to:

determine an overall score for an image by analyzing historical data indicating usage of the image at various points in time during a prior time-period, the image being for deploying a container in a computing environment;

determine a first score for a first layer of the image based on the overall score for the image;

determine a second score for a second layer of the image;

determine that the first score corresponds to a first storage destination among a plurality of possible storage destinations and the second score corresponds to a second storage destination among the plurality of possible storage destinations, the second storage destination being different from the first storage destination; and

store the first layer in the first storage destination based on the first layer being correlated to the first score and the second layer in the second storage destination based on the second layer being correlated to the second score.

2. The system of claim 1 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to determine the overall score for the image by:

determining a first value indicating a first ranking for the image at a first point in time during the prior time-period by analyzing the historical data;

determining a second value indicating a second ranking for the image at a second point in time that is before the first point in time in the prior time-period by analyzing the historical data;

determining a first weighted value by multiplying the first value by a first weighting factor;

determining a second weighted value by multiplying the second value by a second weighting factor that is less than the first weighting factor; and

determining the overall score by adding the first weighted value to the second weighted value.

3. The system of claim 1 , wherein the overall score is a first overall score, the image is a first image, and the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine that a second image also includes the first layer;

determine a second overall score for the second image; and

determine the first score for the first layer using (i) the first overall score for the first image, and (ii) the second overall score for the second image.

4. The system of claim 1 , wherein usage of the image at the various points during the prior time-period comprises downloads of the image at the various points during the prior time-period.

5. The system of claim 1 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine that the first score corresponds to the first storage destination using a database that includes relationships between (i) ranges of scores for image layers, and (ii) storage destinations for the image layers; and

determine that the second score corresponds to the second storage destination using the database.

6. The system of claim 1 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

store the first layer at the first storage destination using a first storage driver; and

store the second layer that the second storage destination using a second storage driver that is different from the first storage driver.

7. The system of claim 6 , wherein the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine that the first storage driver is to be used to store the first layer at the first storage destination by mapping the first storage destination to the first storage driver using a database that includes relationships between (i) storage drivers, and (ii) storage destinations at which the storage drivers can store data; and

determine that the second storage driver is to be used to store the second layer at the second storage destination using the database.

8. A method comprising:

determining, by a processing device, an overall score for an image by analyzing historical data indicating usage of the image at various points in time during a prior time-period, the image being for deploying a container in a computing environment;

determining, by the processing device, a first score for a first layer of the image based on the overall score for the image;

determining, by the processing device, a second score for a second layer of the image;

determining, by the processing device, that the first score corresponds to a first storage destination among a plurality of possible storage destinations and the second score corresponds to a second storage destination among the plurality of possible storage destinations, the second storage destination being different from the first storage destination; and

storing, by the processing device, the first layer in the first storage destination based on the first layer being correlated to the first score and the second layer in the second storage destination based on the second layer being correlated to the second score.

9. The method of claim 8 , further comprising determining the overall score for the image by:

determining a first value indicating a first ranking for the image at a first point in time during the prior time-period by analyzing the historical data;

determining a second value indicating a second ranking for the image at a second point in time that is before the first point in time in the prior time-period by analyzing the historical data;

determining a first weighted value by multiplying the first value by a first weighting factor;

determining a second weighted value by multiplying the second value by a second weighting factor that is less than the first weighting factor; and

determining the overall score by adding the first weighted value to the second weighted value.

10. The method of claim 8 , wherein the overall score is a first overall score and the image is a first image, and further comprising:

determining that a second image also includes the first layer;

determining a second overall score for the second image; and

determining the first score for the first layer using (i) the first overall score for the first image, and (ii) the second overall score for the second image.

11. The method of claim 8 , further comprising:

determining that the first score corresponds to the first storage destination using a database that includes relationships between (i) ranges of scores for image layers, and (ii) storage destinations for the image layers; and

determining that the second score corresponds to the second storage destination using the database.

12. The method of claim 8 , further comprising:

storing the first layer at the first storage destination using a first storage driver; and

storing the second layer that the second storage destination using a second storage driver that is different from the first storage driver.

13. The method of claim 12 , further comprising:

determining that the first storage driver is to be used to store the first layer at the first storage destination by mapping the first storage destination to the first storage driver using a database that includes relationships between (i) storage drivers, and (ii) storage destinations at which the storage drivers can store data; and

determining that the second storage driver is to be used to store the second layer at the second storage destination using the database.

14. A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:

determine an overall score for an image by analyzing historical data indicating usage of the image at various points in time during a prior time-period, the image being for deploying a container in a computing environment;

determine a first score for a first layer of the image based on the overall score for the image;

determine a second score for a second layer of the image;

determine that the first score corresponds to a first storage destination among a plurality of possible storage destinations and the second score corresponds to a second storage destination among the plurality of possible storage destinations, the second storage destination being different from the first storage destination; and

store the first layer in the first storage destination based on the first layer being correlated to the first score and the second layer in the second storage destination based on the second layer being correlated to the second score.

15. The non-transitory computer-readable medium of claim 14 , further comprising program code that is executable by the processing device for causing the processing device to determine the overall score for the image by:

determining a first value indicating a first ranking for the image at a first point in time during the prior time-period by analyzing the historical data;

determining a second value indicating a second ranking for the image at a second point in time that is before the first point in time in the prior time-period by analyzing the historical data;

determining a first weighted value by multiplying the first value by a first weighting factor;

determining a second weighted value by multiplying the second value by a second weighting factor that is less than the first weighting factor; and

determining the overall score by adding the first weighted value to the second weighted value.

16. The non-transitory computer-readable medium of claim 14 , further comprising program code that is executable by the processing device for causing the processing device to:

determine that the first score corresponds to the first storage destination using a database that includes relationships between (i) ranges of scores for image layers, and (ii) storage destinations for the image layers; and

determine that the second score corresponds to the second storage destination using the database.

17. The non-transitory computer-readable medium of claim 14 , further comprising program code that is executable by the processing device for causing the processing device to:

receive a request for the image from a client device;

determine that the first layer is stored in the first storage destination using a first location identifier for the first layer in a database;

determine that the second layer is stored in the second storage destination using a second location identifier for the second layer in the database;

based on determining that the first layer is stored in the first storage destination and the second layer is stored in the second storage destination, retrieve the first layer from the first storage destination and the second layer from the second storage destination; and

in response to retrieving the first layer from the first storage destination and the second layer from the second storage destination, transmit the first layer and the second layer to the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2018
From: CHEN, HUAMIN
To: RED HAT, INC.
Reel/Frame 045014/0453 →
Continuity (1)
Related Publication 20190266259A1 · Aug 29, 2019