Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 103
2. 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.
3. Claims 1-6, and 16-20 are rejected under 35 U.S.C. 103 as being unpatentable over Shi et al. Pub. No. US 2023/0259409 A1 (hereafter Shi) in view of Chen et al. Pat. No. US 11,114,362 B1 (hereafter Chen).
4. Regarding claim 1, Shi teaches “A method, comprising: determining, by a container orchestration system (COS) executing on a computing device, ([0043] & Fig. 1 teaches an orchestration system)
a first current state of each containerized instance of a plurality of containerized instances executing on a compute node in a cluster of compute nodes; determining, by the COS, a first current state of each compute node in the cluster of compute nodes ([0077-0078] teaches a scheduler with resource management module that can monitor the resource usage of containers, container groups, and nodes);
calculating, by the COS, for each respective compute node in the cluster of compute nodes, a first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node ([0073-0075] teaches node groups associated with container sizes such that size represent total computing resources being utilized. [0108-0109] teach sorting containers based on their resource usage on each node such that it shows the cost of running container sizes on respective nodes);
creating, by the COS, a list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and causing, by the COS based on the list of preferred compute nodes, a first containerized instance of the plurality of containerized instances to be moved to a first compute node identified in the list of preferred compute nodes ([0080-0081] teaches ranking nodes based on spare capacities and migrating containers; [0101-0110] explicitly teaches moving containers to nodes that have available resources, which may be nodes identified by the rankings).”
Shi does not explicitly teach calculating a cost of a containerized instance. Chen teaches a COS implemented with content-based page sharing to determine effective resource consumption which serves as calculating a cost metric for scheduling decisions (Col 7, line 38 – Col 8, line 10).
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Chen with the invention of Shi of implementing CBPS technology with the COS. A person having ordinary skill in the art would have been motivated to make this combination to have the COS calculate the cost of container states, streamlining the efficient scheduling of the invention. Together, Chen in combination with Shi teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
5. Regarding claim 16, it is similar to that of claim 1 and is rejected for the same reasons. Claim 16 is directed towards “A computing device, comprising: a memory; and a processor device coupled to the memory (Shi [0118])”.
6. Regarding claim 20, it is similar to that of claim 1 and is rejected for the same reasons. Claim 20 is directed towards “A non-transitory computer-readable storage medium that includes computer-executable instructions (Shi [0028])”.
7. Regarding claim 2, wherein the combination, Chen teaches “The method of claim 1, further comprising: determining that a second containerized instance of the plurality of containerized instances is to be initiated on a compute node in the cluster of compute nodes; accessing the list of preferred compute nodes; and causing the second containerized instance to be initiated on a second compute node in the cluster of compute nodes based on the list of preferred compute nodes (Chen [Col 6 line 25 – Col 7 line] teaches inserting a new unit onto a filtered node using the list of nodes based on priority weight).”
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Chen with the invention of Shi to show that containers may be initiated on a node based on a list of ranked nodes. A person having ordinary skill in the art would have been motivated to make this combination to allow for nodes to be optimized and initiated on preferred nodes. Together, Chen in combination with Shi teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
8. Regarding claim 17, it is similar to that of claim 2, and is rejected for the same reasons.
9. Regarding claim 3, it is similar to that of claim 1, therefore it is rejected for the same reasons. “The method of claim 2, further comprising: prior to accessing the list of preferred compute nodes, determining a second current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes; determining a second current state of each compute node in the cluster of compute nodes; calculating, for each respective compute node in the cluster of compute nodes, a second cost associated with each containerized instance on the respective compute node based on the second current state of each containerized instance and the second current state of each compute node;” is taught by Shi in combination with Chen in claim 1.
“… and updating the list of preferred compute nodes for each containerized instance to execute on based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes. (Chen [Col 6 line 25 – Col 7 line] teaches filtering out nodes when inserting a new unit such that it would update when a new unit is to be initiated).”
10. Regarding claim 18, it is similar to that of claim 3 and is rejected for the same reasons.
11. Regarding claim 4, wherein the combination Shi teaches “The method of claim 1, wherein determining the first current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes comprises obtaining, from each containerized instance of the plurality of containerized instances, resources of each respective containerized instance of the plurality of containerized instances. ([0070] teaches an agent that can obtain resources from container and send to scheduler).”
12. Regarding claim 5, wherein the combination Shi teaches “The method of claim 1, wherein determining the first current state of each compute node in the cluster of compute nodes comprises obtaining, from each compute node in the cluster of compute nodes, resources of each respective compute node in the cluster of compute nodes ([0070] teaches an agent that can obtain resources from node and send to scheduler).”
13. Regarding claim 6, wherein the combination Shi teaches “The method of claim 1, wherein calculating, for each respective compute node in the cluster of compute nodes, the first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node comprises: determining costs for each containerized instance with the respective first current state to execute on the respective compute node in the cluster of compute nodes with the respective first current state; determining costs for the respective compute node with the respective first current state to execute in the cluster of compute nodes ([0078] teaches a resource management module that monitors resource usage of containers and nodes); determining costs to move each containerized instance to the respective compute node; and calculating, for the respective compute node, the first cost associated with each containerized instance on the respective compute node based on the costs for each containerized instance, the costs for the respective compute node, and the costs to move each containerized instance to the respective compute node ([0033] teaches determining which container to migrate based on resources consumed as well as based on the ranking of nodes such that it determines which containers to migrate based on resource usage of nodes and containers).”
14. Regarding claim 19, it is similar to that of claim 6, and is rejected for the same reasons.
15. Regarding claim 7, wherein the combination Shi teaches “The method of claim 6, wherein: the costs for each containerized instance with the respective first current state to execute on the respective compute node in the cluster of compute nodes comprise computing resources for executing the respective containerized instance on the respective compute node in the cluster of compute nodes; the costs for the respective compute node with the respective first current state to execute in the cluster of compute nodes comprise computing resources for executing the respective compute node in the cluster of compute nodes; and the costs to move each containerized instance to the respective compute node comprise computing resources to move the respective containerized instance to the respective compute node ([0033] teaches resource usage being the measure of migration in containers and nodes. [0059] teaches that the scheduler evaluates whether to consolidate resources by migrating workloads such that it aims to minimize costs of container migration, accounting for the cost of container migration).”
16. Claims 8-15 are rejected under 35 U.S.C. 103 as being unpatentable over Shi and Chen as used in claims 1, 16, and 20 above, and in further view of Mitra et al. Pub. No. US 2020/0257968 A1 (hereafter Mitra).
17. Regarding claim 8, Shi teaches “The method of claim 1, wherein creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes comprises: … the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and outputting, … the list of preferred compute nodes… (Shi teaches these in claim 1).”
Shi does not teach a machine-learned model determining a policy. Mitra teaches a self-learning scheduler such that it teaches “receiving, by a machine-learned model (Mitra [0030-0032] teaches a self-learning scheduler),
determining, by the machine-learned model, a policy for each containerized instance based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes (Mitra [0044-0047] teaches the scheduler learning to learn and encode a scheduling policy);
and outputting, by the machine-learned model the list of preferred compute nodes based on the policy. (Mitra [0034] teaches the machine learning model able to generate outputs based on plurality of inputs to model’ [0062] teaches selecting a machine of compute infrastructure based on scheduling policy”.
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Mitra to the combination of Shi and Chen to improve the scheduler of Shi with a machine-learning model. A person having ordinary skill in the art would have been motivated to make this combination to “improve scheduling distribution of the resources and minimize resource contention, improving application performance for a better overall user-experience (Mitra [Abstract]).” Together, Mitra in combination with Shi and Chen teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of invention, one of ordinary skill could have applied said teachings to achieve expected results.
18. Regarding claim 9, wherein the combination Mitra teaches “The method of claim 8, wherein the machine-learned model comprises a reinforcement learning algorithm. ([0038-0039] teaches a reinforcement learning-based agent)”
19. Regarding claim 10, the combination teaches “The method of claim 9, further comprising: determining, by the reinforcement learning algorithm based on the first current state of each containerized instance, the first current state of each compute node (Mitra [0011] teaches a reinforcement learning agent including a state observation module) , and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes (Shi [0073-0075] and [0108-0109] as taught in claim 1), actions to improve one or more of the first current state of each containerized instance and the first current state of each compute node (Mitra [0044-0050] teaches a reward or penalty system such that it teaches actions to improve, allowing the RL agent to readjust to improve its score).”
20. Regarding claim 11, wherein the combination Shi teaches “The method of claim 1, wherein the list of preferred compute nodes comprises a list of a preferred compute node in the cluster of compute nodes for each containerized instance of the plurality of containerized instances. ([0080] teaches a ranking unit sorting a plurality of nodes and a plurality of containers running on a node)”
21. Regarding claim 12, wherein the combination Shi teaches “The method of claim 1, further comprising: obtaining a performance constraint associated with the first current state of each containerized instance; wherein creating the list of preferred compute nodes for each containerized instance to execute on comprises creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, the first cost associated with each containerized instance for each compute node in the cluster of compute nodes (Shi teaches this in claim 1), and the performance constraint. ([0070] teaches the agent able to transmit data about resource usage to scheduler such that it transmits the state of containers. [0030] teaches the scheduler can also score and rank based on resource limits).”
22. Regarding claim 13, wherein the combination Shi teaches “The method of claim 1, further comprising: obtaining a performance constraint associated with the first cost associated with each containerized instance for each compute node in the cluster of compute nodes ([0070] teaches the agent monitoring resource usage of containers and nodes such that it teaches costs of currently running); wherein creating the list of preferred compute nodes for each containerized instance to execute on comprises creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, the first cost associated with each containerized instance for each compute node in the cluster of compute nodes (Shi teaches this in claim 1), and the performance constraint ([0030] teaches scheduler ranking based on resource usage).”
23. Regarding claim 14, wherein the combination Shi teaches “The method of claim 1, further comprising: determining a change in resources available on one or more compute nodes in the cluster of compute nodes ([0092-0093] teaches determining when a job is done, it removes the container group, releasing computing resources such that there is a change in resources available) ; in response to determining the change in resources available, determining a second current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes; determining a second current state of each compute node in the cluster of compute nodes; calculating, for each respective compute node in the cluster of compute nodes, a second cost associated with each containerized instance on the respective compute node based on the second current state of each containerized instance and the second current state of each compute node (Shi teaches these in claim 1, and in [0096-0100], it teaches determining whether a node is sufficient to host a container group such that it gets it would get the node and container states by the agent in [0070]); and updating the list of preferred compute nodes for each containerized instance to execute on based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes ([0101] teaches ranking the plurality of nodes based on available resources described such that it teaches what resources are already used on that node; thus the cost of current nodes and how much computing resources retain, and updating since this is after a node removal and the consolidating of resources).”
24. Regarding claim 15, it is similar to that of claim 8, and is therefore rejected for the same reasons. Claim 15 is directed towards “The method of claim 14, wherein updating the list of preferred compute nodes for each containerized instance to execute on”, whereas it would have been obvious to use the combination of claim 8 for the updating step described in claim 14.
Conclusion
25. Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRANDON A NGUYEN whose telephone number is (571)272-6074. The examiner can normally be reached Mon-Thurs (10am-7pm), Fri (7am-(3 or 4)pm).
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 at (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.
/BRANDON NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195