IP Library Granted Patent US 11,500,823
Granted Patent B2
US 11,500,823 · App. 17/195,979 · Granted Nov 15, 2022

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 11,500,823
App. No.
17/195,979
Granted
Nov 15, 2022
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 (88)

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 a file based on historical data indicating usage of the file during a prior time-period;

determine a first score for a first component of the file based on the overall score;

determine a second score for a second component of the file, the first score being higher than the second score;

determine that the first score corresponds to a first storage destination and that the second score corresponds to a second storage destination, the first storage destination having higher performance characteristics than the second storage destination; and

store the first component in the first storage destination based on determining that the first score corresponds to the first storage destination and store the second component in the second storage destination based on determining that the second score corresponds to the second storage destination.

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 file by:

determining, based on the historical data, a first value indicating a first ranking for the file at a first point in time during the prior time-period;

determining, based on the historical data, a second value indicating a second ranking for the file at a second point in time that is before the first point in time in the prior time-period;

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 file is a first file, and the memory device further includes instructions that are executable by the processing device for causing the processing device to:

determine that a second file also includes the first component;

determine a second overall score for the second file; and

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

4. The system of claim 1 , wherein the usage of the file during the prior time-period comprises downloads of the file at multiple 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 file components, and (ii) storage destinations for the file components; 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 component at the first storage destination using a first storage driver; and

store the second component 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 component 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 component at the second storage destination using the database.

8. 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:

receive a request for the file from a client device;

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

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

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

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

9. A method comprising:

determining, by a processing device, an overall score for a file based on historical data indicating usage of the file during a prior time-period

determining, by the processing device, a first score for a first component of the file based on the overall score;

determining, by the processing device, a second score for a second component of the file, the first score being higher than the second score;

determining, by the processing device, that the first score corresponds to a first storage destination and that the second score corresponds to a second storage destination, the first storage destination having higher performance characteristics than the second storage destination;

storing, by the processing device, the first component in the first storage destination based on determining that the first score corresponds to the first storage destination; and

storing, by the processing device, the second component in the second storage destination based on determining that the second score corresponds to the second storage destination.

10. The method of claim 9 , further comprising:

determining, based on the historical data, a first value indicating a first ranking for the file at a first point in time during the prior time-period;

determining, based on the historical data, a second value indicating a second ranking for the file at a second point in time that is before the first point in time in the prior time-period;

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.

11. The method of claim 9 , wherein the overall score is a first overall score and the file is a first file, and further comprising:

determining that a second file also includes the first component;

determining a second overall score for the second file; and

determining the first score for the first component using (i) the first overall score for the first file, and (ii) the second overall score for the second file.

12. The method of claim 9 , 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 file components, and (ii) storage destinations for the file components; and

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

13. The method of claim 9 , further comprising:

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

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

14. The method of claim 9 , wherein the usage of the file during the prior time-period comprises downloads of the file at multiple points during the prior time-period.

15. The method of claim 9 , further comprising:

receiving a request for the file from a client device;

determining that the first component is stored in the first storage destination using a first location identifier for the first component in a database;

determining that the second component is stored in the second storage destination using a second location identifier for the second component in the database;

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

in response to retrieving the first component from the first storage destination and the second component from the second storage destination, transmitting the first component and the second component to the client device.

16. 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 a file;

determine a first score for a first component of the file based on the overall score;

determine a second score for a second component of the file, the second score being higher than the first score;

determine that the first score corresponds to a first storage destination;

determine that the second score corresponds to a second storage destination that is different from the first storage destination, the second storage destination having higher performance characteristics than the first storage destination;

store the first component in the first storage destination based on determining that the first score corresponds to the first storage destination; and

store the second component in the second storage destination based on determining that the second score corresponds to the second storage destination.

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

determine a first value indicating a first ranking for the file;

determine a second value indicating a second ranking for the file;

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

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

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

18. The non-transitory computer-readable medium of claim 16 , 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 file components, and (ii) storage destinations for the file components; and

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

19. The non-transitory computer-readable medium of claim 16 , further comprising program code that is executable by the processing device for causing the processing device to determine the overall score based on historical data associated with the file.

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

receive a request for the file from a client device;

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

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

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

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

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2021
From: CHEN, HUAMIN
To: RED HAT, INC.
Reel/Frame 055534/0449 →
Continuity (2)
Continuation 15903082 · Feb 23, 2018
Related Publication 20210191905A1 · Jun 24, 2021