DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This final office action is responsive to the amendments filed on 12/12/2025.
Claims 1-20 are pending.
Response to Amendment
Applicant has amended independent claims 1, 8, 15 to include new/old limitations in a form not previously presented necessitating new search and considerations.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-6, 8-13, 15-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Yang et al. (US 2017/0220329 A1, hereafter Yang) in view of Nadgowda et al. (US 2020/0326931 A1, hereafter Nadgowda), and further in view of Jain (US 2019/0266175 A1).
Yang, Nadgowda and Jain were cited in the last office action.
As per claim 1, Yang teaches the invention substantially as claimed including a method comprising:
determining a set of image layers that is locally available on each of a set of compute nodes ([0006] management node obtains an image tag of an image that has been deployed on each host [0003] image, container, image layer [0011] obtains a layer identifier of an image layer that has been deployed on each host [0113] collect and store the layer identifier of the image layer that has been deployed on each host; fig. 8 600);
obtaining a specification file of a container ([0069] fig. 5 obtains an image tag i.e. specification file of a to-be-deployed image 402 [0070] container system, needs to deploy a container, obtains an image tag of a to-be-deployed image corresponding to the to-be-deployed container [0020] send image tag of a locally deployed image to the management node), wherein the specification file comprises a set of required image layers of the container (fig. 5 402 [0070] container system, needs to deploy a container, obtains an image tag of a to-be-deployed image corresponding to the to-be-deployed container);
decomposing the specification file of the container to determine the set of required image layers of the container ([0070] request sent by a user, receives an image tag of the image corresponding to the container i.e. image tag of the to-be-deployed image [0011] obtains a layer identifier of an image layer of the to-be-deployed image fig. 8 604);
comparing, by a processing device, the set of required image layers to the set of image layers that is locally available on each of the set of compute nodes to determine a number of the set of required image layers that is locally available on each of the set of compute nodes ([0006] After obtaining an image tag of a to-be-deployed image, the management node obtains an image tag of a parent image of the to-be-deployed image, and compares the image tag of the parent image of the to-be-deployed image and the previously obtained image tag of the image that has been deployed on each host, so that it can be learned that which image in the image that has been deployed on each host belongs to the parent image of the to-be-deployed image, and it can also be learned that the host still lacks which image relative to the to-be-deployed image [0003] image, container, image layer [0004] host, needs to request image layer that is lacking [0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host, so that it can be learned that which image layer in the image layer that has been deployed on each host belongs to the to-be-deployed image, and it can also be learned that the host still lacks which image layer relative to the to-be-deployed image; fig. 8 606 608 610 [0055]), wherein, for a particular compute node, determining the number of the set of required image layers that are locally available on the particular compute node comprises determining a number of hashes associated with the set of image layers on the particular node ([0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host, so that it can be learned that which image layer in the image layer that has been deployed on each host belongs to the to-be-deployed image, and it can also be learned that the host still lacks which image layer relative to the to-be-deployed image; fig. 8 606 608 610 [0055 ), wherein the hashes are different from one another, and at least one hash is associated with an image layer than appears multiple times after decomposition of the specification file;
assigning the container to a compute node of the set of compute nodes based at least in part on the number of the set of required image layers that is locally available on each of the set of compute nodes ([0006] comparison results of the hosts, hosts, selected to deploy the to-be-deployed image [0009] node selected, host, largest quantity of parent images of the to-be-deployed image, deployed, needs to download fewest images [0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host, host, selected, comparison result, policy, to deploy the to-be-deployed image; fig. 8 610);
deploying the container on the compute node by pulling, from a network, one or more required image layers that are not locally available on the compute node ([0003] downloading the image onto a host, start container, corresponding to the image [0004] host, needs to request image layer that is lacking, downloading an image required by the container, starting the container after the image is downloaded [0009] download fewest images [0052] image registry, image repository fig. 1 container system-network-image registry [0066] host, download, relatively small amount of data, downloading the to-be-deployed image [0070] container system, needs to deploy a container, obtains an image tag of a to-be-deployed image corresponding to the to-be-deployed container).
Yang doesn’t specifically teach decomposing a specification file of the container; wherein, for a particular compute node, determining the number of the set of required image layers that are locally available on the particular compute node comprises determining a number of hashes associated with the set of image layers on the particular node; wherein the hashes are different from one another, and at least one hash is associated with an image layer than appears multiple times after decomposition of the specification file.
Nadgowda, however, teaches wherein the specification file comprises a set of required image layers of the container ([0003] build manifest, document, contains, configuration information and commands needed to assemble the container image, manifest, description of host the container image is created, including dependency of elements that comprise the container image);
decomposing a specification file of the container to determine a set of required layers of the container ([0003] build manifest, document, contains, configuration information and commands needed to assemble the container image, manifest, description of host the container image is created, including dependency of elements that comprise the container image [0005] evaluating manifest, parser, functions, discover, build manifest, identifies one or more component [0007] build manifest, parsed, identify one or more components that comprise the application [0025] parser, manifests, identify components, components arranged in hierarchy with a layering of the components).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of Yang with the teachings of Nadgowda of build manifest comprising description of how the container image is created including dependency of elements that comprise the container image, parsing manifest to identify the component and dependency to improve efficiency and allow decomposing a specification file of the container to determine a set of required layers of the container to the method of Yang as in the instant invention. The combination would have been obvious because supplementing the method for obtaining a layer identifier of an image layer of the to-be-deployed image as taught by Yang with the parsing of manifest file to determine the component layers of the container to yield predictable results of decomposing container specification to determine the required layers of the container with reasonable expectation of success and improved efficiency.
Yang and Nadgowda, in combination, do not specifically teach determining a number of hashes associated with the set of image layers on the particular node; wherein the hashes are different from one another, and at least one hash is associated with an image layer than appears multiple times after decomposition of the specification file.
Jain, however, teaches wherein, for a particular compute node, determining the number of the set of required image layers that are locally available on the particular compute node comprises determining a number of hashes associated with the set of image layers on the particular node ([0031] distribution of images and layers of images across nodes; fig. 5 node 520 image/layers 530 one or more image/layer stored at the node e.g. image hash i.e. available image/layer/hash [0028] template_of_meta_file 300 corresponding to the image I2, total number of layers image I2, layer information, corresponding hash addresses i.e. required image/layers/hash);
wherein the hashes are different from one another ([0031] fig. 5 image /layers 530 layers of images, different hashes e.g. image’s hash address N1: hash address: a7416041dae52c82916e95bf64e3a149 N2: 098f6bcd4621d373cade4e832627b4f6), and
at least one hash is associated with an image layer than appears multiple times after decomposition of the specification file ([0031] fig. 5 node N1 hash address; a7416041dae52c82916e95bf64e3a149; node NN: a7416041dae52c82916e95bf64e3a149 node N2/N3/N4 layer with same hashes: a7416041dae52c82916e95bf64e3a150 [0032] distributed /stored image; downloaded, reads the hash addresses of the meta file and identifies the one or more layers of the image).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of Yang and Nadgowda with the teachings of Jain of determining distribution of image/layers on different node e.g. storing multiple hashes corresponding to each layer, metafile for image e.g. required describing layer information and corresponding hash, wherein the multiple hash addresses are different and layer with same hash address appears multiple times to improve efficiency and allow determining a number of hashes associated with the set of image layers on the particular nodes, wherein the different hashes for different layer and a layer with same hash appearing multiple time to the method of Yang and Nadgowda as in the instant invention. The combination would have been obvious because supplementing the determination of available layers on the node relative to required layers based on layer identifier as taught by combination of Yang and Nadgowda with the teachings of determining available layers relative to the required layer based on hash values; and associated different hashes for different layers and single layer with same hashes appearing multiple time as taught by Jain to yield predictable results of determining a number of hashes associated with the set of image layers on the particular node for the required image , wherein the hashes are different for different layers and same layer with same hash appears multiple time and improved efficiency.
As per claim 2, Yang teaches wherein determining the number of the set of required image layers that are locally available on the particular compute node of the set of compute nodes ([0006] image that has been deployed on each host, also host, lacks which image ) further comprises:
communicating, via an agent executing on the particular compute node (fig. 1 hosts, host image management module), with a local image repository of the particular compute node to determine which image files are stored on the particular compute node ([0006] management node, obtains an image tag of an image that has been deployed on each host; fig. 1 image registry [0020] host, sends, image tag, locally deployed image to the management node [0083] management node, locally store image tags of parent images [0130] optionally management node may locally store layer identifiers of image layers i.e. similar arrangement can be made for the compute nodes);
analyzing image layers that each of the image files stored on the particular compute node are comprised of to determine the number of image layers that are locally available on the particular compute node ([0047] image layer, image, tag, mapping relationship with layer identifiers [0048] image layers, unique parent image, fig. 3 layer identifiers 1-12, fig. 6 [0006] management node, obtains an image tag of an image that has been deployed on each host); and
generating a table indicating the number of image layers that are locally available on the particular compute node ([0006] management node obtains an image tag of an image that has been deployed on each host [0003] image, container, image layer [0011] obtains a layer identifier of an image layer that has been deployed on each host [0113] collect and store the layer identifier of the image layer that has been deployed on each host; fig. 8 600).
As per claim 3, Yang teaches wherein the container is assigned to the compute node of the set of compute nodes based further on resource availability information of each of the set of compute nodes ([0055] deploy an image according to the resource utilization information of each host [0064] resource utilization information of each host, resource utilization requirement of the to-be-deployed image, selected host, meet the resource utilization requirement).
As per claim 4, Yang teaches wherein the resource availability information of a particular compute node comprises: a network bandwidth of the particular compute node, a central processing unit (CPU) availability of the particular compute node, and a memory availability of the particular compute node ([0055] resource utilization information, CPU usage, total memory capacity, memory usage).
Nadgowda teaches remaining claim elements of a network bandwidth of the particular compute node ([0049] configurable computing resource, network bandwidth).
As per claim 5, Yang teaches generating a master table indicating the set of image layers that is locally available on each of the set of compute nodes ([0006] management node obtains an image tag of an image that has been deployed on each host [0003] image, container, image layer [0011] obtains a layer identifier of an image layer that has been deployed on each host [0113] collect and store the layer identifier of the image layer that has been deployed on each host; fig. 8 600).
As per claim 6, Yang teaches wherein comparing the set of required layers to the set of different layers that is locally available on each of the set of compute nodes comprises comparing the set of required layers to the master table( [0006] compares the image tag of the parent image of the to-be-deployed image and the previously obtained image tag of the image that has been deployed on each host, [0003] image, container, image layer [0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host; fig. 8 606 608 610 [0113] collect and store the layer identifier of the image layer that has been deployed on each host).
Claim 8 recites system comprising: a memory; and a processing device operatively coupled to the memory, the processing device to perform elements similar to claim 1. Therefore, it is rejected for the same rationale.
Claim 9 recites the elements similar to claim 2. Therefore, it is rejected for the same rationale.
Claim 10 recites the elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 11 recites the elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 12 recites the elements similar to claim 5. Therefore, it is rejected for the same rationale.
Claim 13 recites the elements similar to claim 6. Therefore, it is rejected for the same rationale.
Claim 15 recites non-transitory computer-readable medium having instructions stored thereon which, when executed by a processing device, cause the processing device to perform elements similar to claim 1. Therefore, it is rejected for the same rationale.
Claim 16 recites non-transitory computer-readable medium for elements similar to claim 2. Therefore, it is rejected for the same rationale.
Claim 17 recites non-transitory computer-readable medium for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 18 recites non-transitory computer-readable medium for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 19 recites non-transitory computer-readable medium for elements similar to claim 5. Therefore, it is rejected for the same rationale.
Claim 20 recites non-transitory computer-readable medium for elements similar to claim 6. Therefore, it is rejected for the same rationale.
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Yang in view of Nadgowda, and further in view of Jain, as applied to above claim, and further in view of Grimm et al. (US 2016/0217050 A1, hereafter Grimm).
Grimm was cited in the last office action.
As per claim 7, Yang teaches in response to receiving a request to migrate a particular container from a first compute node of the set of compute nodes ([0067] request for deploying a container sent by a user is received fig. 8 602 ), comparing a set of required image layers of the particular container to the set of image layers that is locally available on each of the set of compute nodes to determine a number of the set of required layers that is locally available on each of the set of compute nodes ([0006] After obtaining an image tag of a to-be-deployed image, the management node obtains an image tag of a parent image of the to-be-deployed image, and compares the image tag of the parent image of the to-be-deployed image and the previously obtained image tag of the image that has been deployed on each host, so that it can be learned that which image in the image that has been deployed on each host belongs to the parent image of the to-be-deployed image, and it can also be learned that the host still lacks which image relative to the to-be-deployed image [0003] image, container, image layer [0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host; fig. 8 606 608 610); and
migrating the particular container to a second compute node of the set of compute nodes based at least in part on the number of the set of required image layers that is locally available on each of the set of compute nodes ([0006] comparison results of the hosts, hosts, selected to deploy the to-be-deployed image [0011] compares the layer identifier of the image layer of the to-be-deployed image and the previously obtained layer identifier of the image layer that has been deployed on each host, host, selected, comparison result, policy, to deploy the to-be-deployed image; fig. 8 610).
Yang, Nadgowda, and Jain, in combination, do not specifically teach request to migrate a particular container from a first compute node of the set of compute nodes.
Grimm, however, teaches request to migrate a particular container from a first compute node of the set of compute nodes ([0053] request to migrate container from distressed node fig. 5 510 [0054] perform migration of the candidate container 530).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of analogous prior art of Y Yang, Nadgowda, and Jain with the teachings of Grimm of requesting migration of container and performing container migration to improve efficiency and allow request to migrate a particular container from a first compute node of the set of compute nodes to the method of Yang, Nadgowda, and Jain as in the instant invention. The combination would have been obvious because substituting the method of deployment container taught by Yang, Nadgowda, and Jain with the method of container migration up on migration request to yield predictable result and improved efficiency.
Claim 14 recites the elements similar to claim 7. Therefore, it is rejected for the same rationale.
Examiners Note
Applicant is further reminded of that the cited paragraphs and in the references as applied to the claims above for the convenience of the applicant(s) and although the specified citations are representative of the teachings of the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider all of the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Response to Arguments
Applicant's arguments filed on 12/12/2025 have been fully considered but they are moot in view of newly cited portion of the cited prior arts.
Conclusion
Authorization for Internet Communication
Applicant is encouraged to submit an authorization to communicate with the Examiner via the internet by making the following statement (MPEP 502.03)
“Recognizing that internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only by submitted via Central Fax (not Examiner’s Fax), Regular postal mail, or EFS Web using PTO/SB/439.
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABU ZAR GHAFFARI whose telephone number is (571)270-3799. The examiner can normally be reached Monday-Thursday 9:00 - 17:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Aimee Li can be reached on 571-272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
ABU ZAR GHAFFARI
Primary Examiner
Art Unit 2195
/ABU ZAR GHAFFARI/Primary Examiner, Art Unit 2195