US 12,190,144 B1
Predelivering container image layers for future execution of container images
Malcolm Featonby, Sammamish, WA (US); Omar Paul, Bellevue, WA (US); and Munindra N Das, Redmond, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jun. 22, 2020, as Appl. No. 16/908,533.
Int. Cl. G06F 9/455 (2018.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01); H04L 67/10 (2022.01); H04L 67/568 (2022.01); G06F 8/61 (2018.01)
CPC G06F 9/48 (2013.01) [G06F 9/45558 (2013.01); G06F 9/5011 (2013.01); H04L 67/10 (2013.01); H04L 67/568 (2022.05); G06F 8/63 (2013.01); G06F 2009/45562 (2013.01); G06F 2209/5011 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A cloud provider system comprising:
a set of clusters hosted on a plurality of physical machines, wherein each cluster in the set of clusters includes a virtual machine configured to perform tasks;
a container registry service providing a plurality of image repositories, wherein each image repository of the plurality of image repositories is configured to at least store a plurality of container images including a plurality of container image layers and executable on the virtual machines of the set of clusters; and
a container service comprising computer hardware, wherein the container service is configured to access the plurality of container images from the container registry service,
wherein the container registry service is further configured to at least:
generate, based at least in part on access requests received from the container service, image analytics data indicating an access pattern associated with the plurality of container images, wherein the access pattern indicates how recently or how frequently the plurality of container images have been accessed;
generate, based at least in part on the plurality of container images, layer dependency data indicating a number of appearances of each container image layer of the plurality of container image layers in the plurality of container images;
receive, from the container service, a request to prefetch a container image layer likely to be used by future task executions on a virtual machine of the virtual machines of the set of clusters that is assigned to a user;
identify a set of container image layers based at least in part on (i) the access pattern indicated by the image analytics data, and (ii) the number of appearances of each container image layer in the plurality of container images indicated by the layer dependency data; and
provide the set of container image layers to the container service,
wherein the container service is further configured to at least:
store the set of container image layers received from the container registry service in a cache of the virtual machine assigned to the user;
receive a request to execute a first task in a first cluster in the set of clusters, wherein the first task includes at least one container image that utilizes a first container image layer of the set of container image layers stored in the cache of the virtual machine assigned to the user; and
cause the first task to be executed on the virtual machine, wherein to cause the first task to be executed on the virtual machine, the container service is configured to at least access the first container image layer from the cache of the virtual machine assigned to the user.