Notice of Pre-AIA or AIA Status
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
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-9, 11, 12, and 15-20 are rejected under 35 U.S.C. 103 as being unpatentable over Royal et al. Pub. No. US 2024/0126607 A1 (hereafter Royal) in view of Schibler et al. Pub. No. US 2019/0312800 A1 (hereafter Schibler), and Maia et al. Pub. No. US 2025/0199879 A1 (hereafter Maia).
Regarding claim 1, Royal teaches “A computer-implemented method comprising: comparing, by a processor set, key metrics data representing … workloads performed by a computer set comprising one or more containers; determining, by the processor set, that the key metrics data does not meet key metrics criteria ([0035-0057] teaches a captured workload, comparing the captured workload’s metrics with previous reference workloads to determine whether performance is regressing or otherwise changed. The analyzer may then determine whether the captured workload regressed in performance such that it does not meet a baseline performance as defined by the reference workloads in [0058-0062] and causes it to generate alerts/reports/advice for subsequent action); … training, by the processor set, a neural network (NN) model by using samples … as training data ([0111-0112] teaches training a ML model including neural networks, training using data collected from the database tuning process such that it uses baseline workload metrics as training data); determining, by the processor set, the optimal configuration using the trained NN model; and deploying, by the processor set, the determined optimal configuration for the computer set. ([0117] teaches determining whether the tuning optimization is successful or not via performance score, and applies the optimization when the score is above a threshold)”
Royal does not explicitly teach comparing methods of real time workloads, rather workloads in a timeframe, however it is implied.
Schibler teaches real-time workload optimization such that it teaches the limitation “comparing, by a processor set, key metrics data representing real-time workloads performed by a computer set comprising one or more containers ([0043] teaches the measurement of metrics of a first application while the first application is operating in accordance with a first runtime configuration such that the application is still running)”.
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Schibler to the invention of Royal to show that metrics may be collected in real-time in order to carry out real-time optimizations. A person having ordinary skill in the art would have been motivated to make this combination in order to show that a workload in a particular timeframe may be of real-time, and optimizing in real-time allows for evaluating server systems, and automatically update system components (Schibler [0058]) and dynamically adapt to changing situations within the computing environment.
The combination does not explicitly teach of a pre-trained optimal configuration look-up table.
Maia teaches a workload with an associated optimal configuration such that it teaches “in response to the determining, querying, by the processor set, from a pre-trained look up table an optimal configuration for deploying resources to at least one containerized application of the computer set; determining, by the processor set, that the optimal configuration is not found from the pre-trained look up table ([0011-0025] teaches a known set of workload configurations, and when a workload is executed on a new system, telemetry data is collected and the data is evaluated to generate a score. The score can then be used to determine a workload class containing a system configuration for the workload such that it may be pointing to an optimal configuration. However, it may be determined that a workload class is changed relative to the particular workload being executed such that an optimal configuration is not found, and subsequent modifications to the configuration is needed)”.
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Maia to the combination of Royal and Schibler to show that an optimal configuration may not be present and a new configuration is required to better match the current workload. A person having ordinary skill in the art would have been motivated to make this combination in order to enable provision of a dynamic assessment to the appropriateness of the current deployed infrastructure of a customer (Maia [0014]), achieving dynamic determination for workload profiling for adjusting aaS offerings (Maia [0025]). Together, Royal in combination with Schibler and Maia teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of the invention, one of ordinary skill could have applied said teachings to achieve expected results.
Regarding claim 12, it is similar to claim 1 and is rejected for the same reasons. Claim 12 is directed towards “A computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to: receive real-time workloads from an external system (Schibler [0031] teaches product, Schibler [0071] teaches customer applications routed through servo agents to the optimizer system)”.
Regarding claim 2, the combination teaches “The computer-implemented method of claim 1, wherein the determining that the optimal configuration is not found from the pre-trained look up table comprises finding no matches for the key metrics data amongst entries of the pre-trained look up table (Royal [0035] teaches workload execution metrics comprising CPU utilization and memory utilization, and more such that they represent key metrics. Maia [0011] teaches evaluating telemetry data from previous workload configurations and telemetry data from a workload being executed to determine a configuration class for the current workload, and if the workload class has changed, a recommendation may be made to modify the configuration, indicating that the current workload does not sufficiently correspond to any existing configuration based on the telemetry data collected).”
Regarding claim 3, wherein the combination, Schibler teaches “The computer-implemented method of claim 1, wherein the pre-trained look up table includes entries with information representing simulated workloads ([0300-0317] teaches storing optimization runs of applications into a database. The representation of application environment may be a list of actuators (states) such that they represent simulated workload states and optimal configurations of each state of the application workload).”
Regarding claim 4, wherein the combination, Schibler teaches “The computer-implemented method of claim 3, wherein entries are added to the pre-trained look up table using a reinforcement model which is trained with a reinforcement algorithm using the simulated workloads ([0125-0130] teaches replaying a trace to train a neural network used by reinforced learning)”.
Regarding claim 16, it is similar to claim 4 and is rejected for the same reasons.
Regarding claim 5, wherein the combination, Schibler teaches “The computer-implemented method of claim 4, wherein the reinforcement algorithm comprises a Q learning algorithm ([0031] teaches Q-learning reinforced learning)”.
Regarding claim 17, it is similar to claim 5 and is rejected for the same reasons.
Regarding claim 6, wherein the combination, Schibler teaches “The computer-implemented method of claim 5, wherein the Q learning algorithm dynamically captures states of containerized applications based on key metrics data of the simulated workloads ([0083-0087] teaches an environment controller keeping application states during an optimization run, and then determines the cost of the captured state) and dynamically generates action lists for the containerized applications based on the key metrics data and a service topology of the simulated workloads ([0087-0094] teaches dynamically generating a score based on the application’s current runtime configuration. [0257-0266] teaches using the score as the optimization objective, then the optimizer selects an action with the highest Q-value to determine the updated application settings such that there is an action list generated for the application. Also see [0580] for list of actions performed relative to current state and a callback from the API server on completion of update, and [0131-0134] may show a service topology).”
Regarding claim 18, it is similar to claim 6 and is rejected for the same reasons.
Regarding claim 7, wherein the combination, Schibler teaches “The computer-implemented method of claim 6, wherein the Q learning algorithm creates one or more Q tables of the simulated workloads ([0657-0672] teaches obtaining a list of Q-values such that it may represent a Q-table for selecting an action to update an application)”.
Regarding claim 8, wherein the combination, Schibler teaches “The computer-implemented method of claim 7, wherein the simulated workloads produce pre-production data which includes data that is used for performance evaluation and testing (Schibler [0668-0671] teaches taking an action, and then saving the data to be used during feedback from taking the action. Also see [0068] for optimizing an application in a test bed environment such that the data may be applied in the testing environment).”
Regarding claim 19, it is similar to claim 8 and is rejected for the same reasons.
Regarding claim 9, wherein the combination, Schibler teaches “The computer-implemented method of claim 1, wherein the real-time workloads produce production data which includes real-time data ([0084-0093] teaches determining cost of a current application state used to perform optimization in real time [0031]. Also see [0009])”.
Regarding claim 11, wherein the combination, Royal teaches “The computer-implemented method of claim 1, wherein the training data is used for supervised learning of the NN model ([0108-0112] teaches using training examples for training ML models including one or more NNs using types of supervised learning algorithms like linear/logical regression, naïve Bayes, k-nearest, and more).”
Regarding claim 15, wherein the combination, Schibler teaches “The computer program product of claim 12, wherein the program instructions are executable to apply the determined optimal configuration to the real-time workloads ([0053] or [0256] both teach adjustment of the application settings occur while the application is running in a live production environment)”.
Regarding claim 20, the combination teaches “A system comprising: a processor set, one or more computer readable storage media, and program instructions, collectively stored on the one or more computer readable storage media, for causing the processor set to (Royal [0142-0145]. Also see Royal Claim 20 or Schibler Claim 17): receive simulated workloads from an external system, the simulated workloads simulating performance of at least one containerized application (Schibler [0076-0094] teaches storing optimization run traces in the database which can then be routed to the optimizer system. It also teaches generating an optimization descriptor. Also see Figs. 1, 2, and 5); train a reinforcement learning model based on the simulated workloads (Schibler [0125]); determine one or more optimal configurations using the trained reinforcement learning model and the simulated workloads (Schibler [0186-0204]); and store entries representing the one or more optimal configurations in a pre-trained look up table, wherein the simulated workloads produce pre-production data which includes data that is used for performance evaluation and testing (Schibler [0717-0729] teaches a stored collection of trace of a current optimization run including configurations, and Schibler [0209] teaches that adjustment of application settings may occur in a test bed environment such that the data stored may be applied in a pre-production environment), and wherein the pre-trained look-up table is accessible for providing recommendations for configurations for applying computing resources to a containerized application (Royal [0077, 0108] teaches generating recommendations for tuning the workload such that the Optune Database of Schibler may contain such recommendations within its optimization descriptors. Also see Schibler [0179-0204])”.
Claims 10, 13, and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Royal, Schibler, and Maia as applied above in claims 1 and 12, and in further view of Hasabnis et al. Pub. No. US 2024/0134705 A1 (hereafter Hasabnis).
Regarding claim 10, the combination does not explicitly teach an upper threshold and a lower threshold when selecting which samples to use for training.
Hasabnis teaches using a locality-sensitive hashing function to determine similar workloads within a range such that it teaches the limitation “The computer-implemented method of claim 1, further comprising selecting the samples from the pre-trained look up table to use as the training data by identifying the samples with computing values which are greater than a predetermined threshold value of the computing values of the received real-time workloads and are less than a maximum threshold value of the computing values of the received real-time workloads ([0050-0051] teaches using a locality-sensitive hashing function to determine similar workloads to that of the input workload, wherein more similar workloads produce smaller distance values than workloads that are less similar. [0032-0033] further teaches selecting historical workloads based on the similarity value for use in determining an optimal configuration adjustment for the current workload such that the hash function determines a similarity value through its classification of having associated vectors within a metric space)”.
It would have been obvious to a person of ordinary skill in the art before the effective
filing date to combine the teachings of Hasabnis to the combination of Royal, Schibler, and Maia to select similar sample workloads for training and generating an optimal configuration for a current workload. A person having ordinary skill in the art would have understood that selecting historical workloads whose similarity values fall within a bounded neighborhood of the current workload would have been an obvious design choice to limit training representative workloads while excluding less similar workloads. Doing so may reduce workload execution time and/or time, and improve workload execution performance (Hasabnis [0014]). Together, Hasabnis in combination with Royal, Schibler, and Maia teach every limitation of the claimed invention. Since the teachings were analogous art known at the filing time of the invention, one of ordinary skill could have applied said teachings to achieve expected results.
Regarding claim 14, it is similar to claim 10 and is rejected for the same reasons.
Regarding claim 13, the combination teaches “The computer program product of claim 12, wherein the determining that the optimal configuration is not found from the pre-trained look up table comprises determining that simulated workloads associated with the optimal configuration in the pre-trained look up table are greater than a predetermined threshold value of the received real-time ([0058-0066] teaches a performance baseline used for workload comparisons; the workload analyzer searching for windows of workload with the best performance scores such that they are greater than a performance baseline threshold)”.
Conclusion
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-Fri (10am-6pm).
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