Prosecution Insights
Last updated: July 17, 2026
Application No. 18/672,464

LATENCY-AWARE RESOURCE ALLOCATION FOR STREAM PROCESSING APPLICATIONS

Non-Final OA §103§112
Filed
May 23, 2024
Priority
May 25, 2023 — provisional 63/469,038 +1 more
Examiner
KIM, DONG U
Art Unit
Tech Center
Assignee
NEC Laboratories America Inc.
OA Round
1 (Non-Final)
87%
Grant Probability
Favorable
1-2
OA Rounds
6m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 87% — above average
87%
Career Allowance Rate
621 granted / 716 resolved
+26.7% vs TC avg
Moderate +13% lift
Without
With
+12.9%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
28 currently pending
Career history
743
Total Applications
across all art units

Statute-Specific Performance

§101
1.7%
-38.3% vs TC avg
§103
80.6%
+40.6% vs TC avg
§102
7.5%
-32.5% vs TC avg
§112
6.6%
-33.4% vs TC avg
Black line = Tech Center average estimate • Based on career data from 716 resolved cases

Office Action

§103 §112
DETAILED ACTION 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 § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claim(s) 1-20 is/are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. The term “optimal performance” and “optimal resource” in claim 1 is a relative term which renders the claim indefinite. The term “optimal” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. The examiner is unclear how optimal performance/resource allocation can be distinguished from non-optimal performance/resource allocation. Claim 1 recite: “a subset of tasks”. The examiner is unclear if tasks are referring to tasks recited in the preamble or if it’s another “tasks” since proper antecedent basis has not been established. Claim 1 (similarly claim 2) recites the limitation "determining optimal resource allocation for each task". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “each task” is referring to each task of tasks mentioned in the preamble or a subset of tasks. Claim 1 recites the limitation "changes in task characteristics". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear which task is being referred. Claim 1 (similarly claims 8 and 15) recites the limitation "application demands". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “application demands” is referring to the stream processing application or some other application. Claim 5 recites the limitation "application performance". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “application performance” is referring to the performance of the stream processing application or some other application. Claim 6 recites the limitation "the resource adjustments". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “the resource adjustment” is referring to the exploratory resource adjustments or some other resource adjustments. Claim 8 (similarly claim 15) recite: “each task within the application”, “under-resourced and over-resourced tasks”. The examiner is unclear if there are multiple tasks within the application or if each task is a single task within the application. In addition, the examiner is unclear if under/over resourced tasks are referring to tasks of a single application (“the application”) or multiple application. The term “optimal resource” in claim 8 (similarly claims 13-16) is a relative term which renders the claim indefinite. The term “optimal” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. The examiner is unclear how optimal resource allocation can be distinguished from non-optimal resource allocation. Claim 8 (similarly claim 15) recites the limitation "the application". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “the application” is referring to the stream processing application or some other application. Claim 8 (similarly claim 15) recite: “selected tasks” and claim 10 recite: “selectively to tasks”. The examiner is unclear if the selected tasks are from “the application” (single application) or from applications, since there is no mention of the application having more than one task (each task). Claim 11 recites the limitation "the monitored characteristics". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if the monitored characteristics are referring to application-specific characteristics or not. Claim 18 recites the limitation "application performance". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “application performance” is referring to the stream processing application performance or not. Claim 20 recites the limitation "the applied resource allocations". There is insufficient antecedent basis for this limitation in the claim. The examiner is unclear if “the applied resource allocations” is referring to the optimal resource allocations or not. Claims 2-7, 9-14 and 16-20 are rejected based on rejection of its corresponding dependent claim. Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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. Claim(s) 1, 2, 4-9, 11-18 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chitalwala et al. (Pub 20230043579) (hereafter Chitalwala) in view of Jin et al. (Pat 10841236) (hereafter Jin). As per claim 1, Chitalwala teaches: A computer-implemented method for dynamically adjusting computing resources allocated to tasks within a stream processing application, comprising: initiating monitoring of application-specific characteristics for each task, wherein the characteristics include at least processor (CPU) usage and processing time; ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold. [Paragraph 22], In order to maintain an optimal computing resource utilization, for example, satisfying a predetermined criteria as per SLA, a balance should be made between the job currency and the computing resource utilization. One of the features of the system is to identify an optimal job load capacity for the computing application where an optimal job currency and an optimal computing resource utilization are achieved. [Paragraph 17], (1) jobs may not be critical or adhered to meet Service Level Agreements (SLAs) obligations and the users may accept that the jobs would take more time than their average processing time, waiting in the queue for resources to be allocated, and (2) the users may presume there are adequate resources available to get the jobs processed within their defined SLAs.) assessing resource allocation needs for each task based on the monitored characteristics to determine discrepancies between current resource allocation and optimal performance requirements; ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold… [Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 4], In one embodiment, a method for monitoring and optimizing computing resource usage of a computing application is disclosed. The method may include predicting, with artificial intelligence executed by a processor circuitry, a first performance metric for job load capacity of a computing application for optimal job concurrency and optimal resource utilization. The job load capacity may be a combination of jobs being concurrently executed by the computing application and jobs pending for execution by the computing application. The method may further include generating, with the processor circuitry, an alerting threshold based on the first performance metric. The alerting threshold may represent a job load capacity with the optimal resource utilization rate corresponding to the first performance metric… [Paragraph 22], In order to maintain an optimal computing resource utilization, for example, satisfying a predetermined criteria as per SLA, a balance should be made between the job currency and the computing resource utilization. One of the features of the system is to identify an optimal job load capacity for the computing application where an optimal job currency and an optimal computing resource utilization are achieved.) implementing exploratory resource adjustments by incrementally modifying CPU resources allocated to a subset of tasks and analyzing an impact of the exploratory resource adjustments on task performance metrics; ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold. [Paragraph 27], for example, the computing application is allocated additional computing resources. Now the optimal job load capacity may change from the job load capacity corresponding to the first performance metric to the job load capacity corresponding to the second performance metric. To reflect the change, the JLO logic 300 may update the alerting threshold with the job load capacity with the optimal resource utilization rate corresponding to the second performance metric (370).) determining optimal resource allocations for each task using a regression model that incorporates historical and real-time performance data; applying the optimal resource allocations to the tasks to minimize processing time and maximize resource use efficiency; and iteratively updating the optimal resource allocations in response to changes in task characteristics or application demands. ([Paragraph 7], By continuously monitoring whether the resource utilization of the computing application meets the optimal resource utilization, the method may dynamically determine a new maximum value of the performance metric based on the newly generated job load data and computing resource utilization tracking data, and update the optimal job load capacity for the computing application with the job load capacity corresponding to the new maximum performance metric. [Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application.) Although Chitalwala discloses utilizing machine learning model(s) to track, monitor and perform analysis to predict performance metrics to optimize allocation of resource. Chitalwala does not explicitly disclose the machine learning model(s) is a regression model and minimize processing time. Jin teaches the machine learning model(s) is a regression model and minimize processing time. ([Column 2 line 14-40], The objective may comprise one or more of reducing processing time, reducing cost, increasing utilization of available computing resources, or satisfying a service level agreement… [Column 3 line 11-31], n addition, the computing task management system may be further configured to execute specific computer-executable instructions to at least determine the computing resource allocation using an objective function configured to maximize computing resource utilization of available computing resources at the one or more data centers. [Column 9 line 26-47], The model generation system 146 can use one or more machine learning algorithms to generate one or more prediction models or parameter functions. One or more of these parameter functions may be used to determine an expected value or occurrence based on a set of inputs. For example, a prediction model can be used to determine an amount of computing resources from a set of computing clusters 114 of a number of network computing providers 112 that may be needed to perform a set of jobs or tasks based on one or more inputs to the prediction model, such as, for example, a set of historical jobs performed and job metadata for previous requested jobs. In some cases, the prediction model may be termed a prediction model because, for example, the output may be or may be related to a prediction of an action or event, such as the prediction that an amount of computing resources are required or that a set of jobs are requested. A number of different types of algorithms may be used by the model generation system 146. For example, certain embodiments herein may use a logistical regression model. However, other models are possible, such as a linear regression model, a discrete choice model, or a generalized linear model.) Jin also teaches determining optimal resource allocations for each task using a regression model that incorporates historical and real-time performance data; job performance requirement(s); resource allocation/re-allocation/adjustment, etc. ([Column 17 line 62-67 and Column 18 lien 1-21], The process 500 begins at block 502 where the model generation system 146 receives historical data 152 corresponding to past jobs performed or monitored by the job management system 101. This historical data 152 may serve as training data for the model generation system 146. The historical data 152 may include information relating to the duration of time spent executing similar type of jobs; the monetary cost to execute similar type of jobs; and the like. [Column 15 line 30-55]) It would have been obvious to a person with ordinary skill in the art before the effective filing date of the invention, to combine the teachings of Chitalwala wherein application specific characteristic(s) is/are monitored to measure/monitor resource utilization and processing time to ensure of Service Level Agreement (SLA) is met, resource allocation needs are assessed by comparing monitored/current resource allocation and optimal performance requirements, resources (e.g. CPU) are iteratively adjusted in response to changes via machine learning model(s) to maximize resource utilization to optimize application processing, into teachings of Jin wherein machine learning model(s) is a regression model and optimizing application processing minimizes application processing, because this would enhance the teachings of Chitalwala wherein by using machine learning algorithms/regression models to optimize/maximize resource efficiency, it allows iterative optimization of applications/tasks in regards to the service level agreement to ensure resources are adjusted which best satisfies various objectives which includes time, cost, performance, etc. [Jin Column 5 line 8-31] As per claim 2, rejection of claim 1 is incorporated: Chitalwala teaches wherein the monitoring further includes tracking memory consumption and network usage of each task alongside CPU usage and processing time. ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold.) Jin also teaches ([Column 15 line 16-29], The predicted computer resource usage may provide a prediction of an amount of different types of computing resources used to complete the set of jobs. For example, the predicted computer resource usage may include a prediction of total CPU usage, total RAM usage, total non-volatile memory usage, a prediction of process cores used, a prediction of types of CPU usage, and prediction of any other type of computing resource usage. In some embodiments, a new or updated topology is generated based on the prediction of computing resources for performing the set of jobs or compute tasks.) As per claim 4, rejection of claim 1 is incorporated: Jin teaches wherein the regression model used in calculating optimal resource allocation is a quadratic polynomial regression model that predicts task performance as a function of resource allocation levels, and is adapted to switch between multiple regression strategies based on a variability in performance data collected during monitoring. ([Column 9 line 26-67 – Column 10 line 1-9], The model generation system 146 can use one or more machine learning algorithms to generate one or more prediction models or parameter functions. One or more of these parameter functions may be used to determine an expected value or occurrence based on a set of inputs. For example, a prediction model can be used to determine an amount of computing resources from a set of computing clusters 114 of a number of network computing providers 112 that may be needed to perform a set of jobs or tasks based on one or more inputs to the prediction model, such as, for example, a set of historical jobs performed and job metadata for previous requested jobs. In some cases, the prediction model may be termed a prediction model because, for example, the output may be or may be related to a prediction of an action or event, such as the prediction that an amount of computing resources are required or that a set of jobs are requested. A number of different types of algorithms may be used by the model generation system 146. For example, certain embodiments herein may use a logistical regression model. However, other models are possible, such as a linear regression model, a discrete choice model, or a generalized linear model… Some non-limiting examples of machine learning algorithms that can be used to generate and update the parameter functions or prediction models can include supervised and non-supervised machine learning algorithms, including regression algorithms (such as, for example, Ordinary Least Squares Regression), instance-based algorithms (such as, for example, Learning Vector Quantization), decision tree algorithms (such as, for example, classification and regression trees), Bayesian algorithms (such as, for example, Naive Bayes), clustering algorithms (such as, for example, k-means clustering), association rule learning algorithms (such as, for example, Apriori algorithms), artificial neural network algorithms (such as, for example, Perceptron), deep learning algorithms (such as, for example, Deep Boltzmann Machine), dimensionality reduction algorithms (such as, for example, Principal Component Analysis), ensemble algorithms (such as, for example, Stacked Generalization), and/or other machine learning algorithms.) As per claim 5, rejection of claim 1 is incorporated: Chitalwala teaches further comprising adjusting one or more specific resource allocations responsive to detected anomalies in application performance that deviate from predefined performance thresholds. ([Paragraph 4], The method may include, in response to a difference between the alerting threshold and a job load of the computing application within an interval exceeding a load difference threshold, predicting, with the artificial intelligence executed by the processor circuitry, a second performance metric for job load capacity of the computing application for optimal job concurrency and optimal resource utilization. The second performance metric may be predicted by the artificial intelligence based on historical job load data and historical resource utilization tracking data. The method may further include, in response to a difference between the first performance metric and the second performance metric exceeding a predetermined difference threshold, updating the alerting threshold with a job load capacity with the optimal resource utilization rate corresponding to the second performance metric.) As per claim 6, rejection of claim 1 is incorporated: Chitalwala teaches further comprising validating an effectiveness of the resource adjustments by comparing pre-adjustment and post-adjustment performance metrics against predetermined benchmarks. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 4], In one embodiment, a method for monitoring and optimizing computing resource usage of a computing application is disclosed. The method may include predicting, with artificial intelligence executed by a processor circuitry, a first performance metric for job load capacity of a computing application for optimal job concurrency and optimal resource utilization. The job load capacity may be a combination of jobs being concurrently executed by the computing application and jobs pending for execution by the computing application. The method may further include generating, with the processor circuitry, an alerting threshold based on the first performance metric. The alerting threshold may represent a job load capacity with the optimal resource utilization rate corresponding to the first performance metric… [Paragraph 22], In order to maintain an optimal computing resource utilization, for example, satisfying a predetermined criteria as per SLA, a balance should be made between the job currency and the computing resource utilization. One of the features of the system is to identify an optimal job load capacity for the computing application where an optimal job currency and an optimal computing resource utilization are achieved.) As per claim 7, rejection of claim 1 is incorporated: Jin teaches wherein the tasks are microservices in the stream processing application. ([Column 1 lien 5-15], Computers are ubiquitous and provide many different services. For example, computers are using to play video games, stream movies, perform complex calculations, backup pictures, store data, provide query requests, and many other functions. In many cases, tasks or jobs performed by computers are interrelated. Thus, the output of one task serves as an input for performing another task.) Claim(s) 8 is/are system claim(s) corresponding to the method claim(s) 1. Therefore, is/are rejected based on similar rationale. Chitalwala teaches under-resourced, over-resourced tasks and incorporating results from the exploratory adjustments. [PGPub paragraph 20-21, 48-51] As per claim 9, rejection of claim 8 is incorporated: Chitalwala teaches wherein the memory further stores instructions that cause the system to track memory bandwidth usage and network traffic as part of the task-specific characteristics. ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold.) Jin also teaches ([Column 6 line 11-35], The user computing system 110 may include a number of local computing resources, such as central processing units and architectures, memory, mass storage, graphics processing units, communication network availability and bandwidth, and so forth.) As per claim 11, rejection of claim 8 is incorporated: Chitalwala teaches wherein the data-driven analysis includes using machine learning models to predict the impact of resource changes on task performance and the machine learning models dynamically adapt to changes in data patterns from the monitored characteristics. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 38], Additionally or alternatively, the JLO 300 may predict the first performance metric by executing a performance metric prediction engine with the historical job load data and the historical resource utilization tracking data generated during the first time period as input. The performance metric prediction engine may include a machine learning model. The machine learning model may be trained with historical job load data and historical resource utilization tracking data generated during a specific time period prior to the first time period and the computed OERs corresponding to the specific time period as training data. In an example, the machine learning model may be a deep learning model implemented based on artificial neural network.) Jin also teaches ([Column 9 line 26-47], The model generation system 146 can use one or more machine learning algorithms to generate one or more prediction models or parameter functions. One or more of these parameter functions may be used to determine an expected value or occurrence based on a set of inputs. For example, a prediction model can be used to determine an amount of computing resources from a set of computing clusters 114 of a number of network computing providers 112 that may be needed to perform a set of jobs or tasks based on one or more inputs to the prediction model, such as, for example, a set of historical jobs performed and job metadata for previous requested jobs. In some cases, the prediction model may be termed a prediction model because, for example, the output may be or may be related to a prediction of an action or event, such as the prediction that an amount of computing resources are required or that a set of jobs are requested. A number of different types of algorithms may be used by the model generation system 146. For example, certain embodiments herein may use a logistical regression model. However, other models are possible, such as a linear regression model, a discrete choice model, or a generalized linear model.) As per claim 12, rejection of claim 11 is incorporated: Chitalwala teaches wherein the memory further stores instructions that cause the system to adjust one or more specific resource allocations responsive to detected anomalies in application performance that deviate from predefined performance thresholds. ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold… [Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application.) As per claim 13, rejection of claim 8 is incorporated: Chitalwala teaches wherein the memory further stores instructions that cause the system to generate alerts responsive to the performance metrics deviating more than a threshold amount from one or more benchmarks, the alerts triggering a reassessment and automatic adjustment to the determined optimal resource allocations. ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold… [Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application.) As per claim 14, rejection of claim 8 is incorporated: Chitalwala teaches wherein the applied optimal resource allocations are validated by comparing task performance before and after adjustments with expected performance metrics, and the determined optimal resource allocations are iteratively refined for subsequent cycles of monitoring, assessment, and adjustment based on results of the validation. ([Paragraph 18], Computing resources may include various resources such as memory and CPU vCores that are available for execution and computation of user processes or jobs in a single VM or a collection of VMs on cloud that a computing application needs to support its operation. The tools for monitoring resource usage of the computing application may typically measure the resource utilization, like central processing unit (CPU), memory, hard disk, or network input/output (I/O) used against a predetermined threshold… [Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 45], In an implementation, prior to selecting the second performance metric, the JLO logic 300 may compare a percentage value of resource utilization corresponding to a candidate performance metric with a utilization threshold, for example, the lower limit value of resource utilization as required by SLA. Where the percentage value of the resource utilization is lower than the utilization threshold, the JLO logic 300 may remove the candidate performance metric out of the group of candidate perf ) Claim(s) 15 is/are computer-readable storage medium claim(s) corresponding to the system claim(s) 8. Therefore, is/are rejected based on similar rationale. As per claim 16, rejection of claim 15 is incorporated: Chitalwala teaches where the program instructions further cause the processor to implement a feedback mechanism that adjusts the determined optimal resource allocations based on a satisfaction level of previous resource adjustments reaching a particular threshold level. ([Paragraph 5], The job load capacity may be a combination of jobs being concurrently executed by the computing application and jobs pending for execution by the computing application. The processor may further be configured to generate an alerting threshold based on the first performance metric. The alerting threshold may represent a job load capacity with an optimal resource utilization rate corresponding to the first performance metric. The processor may further be configured to, in response to a difference between the alerting threshold and a job load of the computing application within an interval exceeding a load difference threshold, predict a second performance metric for job load capacity of the computing application for optimal job concurrency and optimal resource utilization based on historical job load data and historical resource utilization tracking data. The processor may further be configured to, in response to a difference between the first performance metric and the second performance metric exceeding a predetermined difference threshold, update the alerting threshold with a job load capacity with the optimal resource utilization rate corresponding to the second performance metric. [Paragraph 22], In order to maintain an optimal computing resource utilization, for example, satisfying a predetermined criteria as per SLA, a balance should be made between the job currency and the computing resource utilization.) Jin also teaches ([Column 12 line 38-55], The model generation system 146 can filter the information to identify the information for further processing. In some embodiments, the model generation system 146 is configured to filter and separate the historical data 152 into a plurality of data types or categories before further processing. Moreover, in some cases, some of the historical data 152 may be filtered out or removed from the historical data 152 based on the data being associated with a relevance that does not satisfy a threshold relevance as determined by the model generation system 146. [Column 15 line 39-55], In some embodiments, the network resource manager 138 provides the predicted computer resource usage, the topology, and the job metadata to an objective function to determine a network resource allocation that satisfies or is closest to satisfying the objective function. For example, suppose the objective criterion is to satisfy a service level agreement (SLA) that permits the use of only five hardware processors at a time. Continuing the previous example, to minimize processing time, the set of jobs may be distributed among two network computing providers 112 that can each allocate five processors to the jobs. Thus, the SLA is met and the predicted requirement of ten processors is satisfied. Alternatively, the set of jobs may be distributed among processors of three network computing providers 112 (for example, 3, 3, and 4 processors of three network computing providers 112, respectively) thereby reserving processors for potential unscheduled jobs.) As per claim 17, rejection of claim 15 is incorporated: Chitalwala teaches wherein the program instructions include algorithms for incremental resource adjustments based on predefined thresholds of resource utilization. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 18], Whenever there is an overutilization, the tools may trigger alerts to prevent the users from adding further job load to the application. In another example, the monitoring tools may be configured to record the number of running jobs every 5, 10 or 15 minutes and trigger an alert when the rate of increase in number of running jobs exceeds a predetermined threshold in the last 5, 10, or 15 minutes.) As per claim 18, rejection of claim 15 is incorporated: Chitalwala teaches wherein the program instructions further cause the processor to adjust one or more specific resource allocations responsive to detected anomalies in application performance that deviate from predefined performance thresholds. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application.) As per claim 20, rejection of claim 15 is incorporated: Chitalwala teaches wherein the program instructions further cause the processor to validate the applied resource allocations by comparing task performance before and after adjustments with expected performance metrics, and the determination of optimal resource allocations is iteratively refined for subsequent cycles of monitoring, assessment, and adjustment based on results of the validation. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 4], In one embodiment, a method for monitoring and optimizing computing resource usage of a computing application is disclosed. The method may include predicting, with artificial intelligence executed by a processor circuitry, a first performance metric for job load capacity of a computing application for optimal job concurrency and optimal resource utilization. The job load capacity may be a combination of jobs being concurrently executed by the computing application and jobs pending for execution by the computing application. The method may further include generating, with the processor circuitry, an alerting threshold based on the first performance metric. The alerting threshold may represent a job load capacity with the optimal resource utilization rate corresponding to the first performance metric… [Paragraph 22], In order to maintain an optimal computing resource utilization, for example, satisfying a predetermined criteria as per SLA, a balance should be made between the job currency and the computing resource utilization. One of the features of the system is to identify an optimal job load capacity for the computing application where an optimal job currency and an optimal computing resource utilization are achieved.) Claim(s) 3, 10 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chitalwala in view of Jin and further in view of Yang et al. (Pub 20230342207) (hereafter Yang). As per claim 3, rejection of claim 1 is incorporated: Chitalwala teaches wherein the exploratory resource adjustments include increasing or decreasing CPU allocations in predetermined increments based on current utilization relative to a historical average, the exploratory resource adjustments being applied selectively to tasks identified as resource-intensive based on the assessing the resource allocation needs. ([Paragraph 51], Referring to FIG. 3, after updating the alerting threshold at step 370 or triggering an alert to rightsize the computing resources allocated for use by the computing application at step 380, the JLO logic 300 may iteratively perform the steps discussed above, including monitoring the job load change of the computing application, comparing the job load of the computing application with the alerting threshold, predicting a next performance metric for optimal job load capacity, comparing the next performance metric with the previous performance metric, and updating the alerting threshold or triggering an alert to rightsize the computing resources based on the performance metric comparison result. In the new iteration, the original second performance metric may serve as the new first performance metric while the next second performance metric may serve as the new second performance metric, and accordingly the performance metric comparison will be between the new first performance metric and the new second performance metric. In this way, the JLO logic 300 may continuously monitor and optimize the computing resource usage of the computing application to maintain the optimal job load concurrency and the optimal resource utilization rate for the computing application. [Paragraph 25], At the input layer 210 of the JLO stack 200, the JLO logic 300 may obtain historical job load data 212 and historical resource utilization tracking data 214 (310). The historical job load data 212 may include, for example, a total number of jobs loaded on the computing application within a time unit and a number of jobs concurrently executed by the computing application within the time unit. The historical resource utilization tracking data 214 may include, for example, the usage amount of individual computing resources such as memory within the time unit. In some implementations, the historical job load data 212 and the historical resource utilization tracking data 214 may be received via the communication interface (e.g., communication interfaces 612, discussed below) from data sources 211 such as computing application execution data files or database.) Jin also teaches ([Column 1 line 60-67], The network resource prediction function may predict computing usage requirements to complete sets of computing tasks based at least in part on historical data relating to previously completed computing tasks. [Column 9 line 25-47], The model generation system 146 can use one or more machine learning algorithms to generate one or more prediction models or parameter functions. One or more of these parameter functions may be used to determine an expected value or occurrence based on a set of inputs. For example, a prediction model can be used to determine an amount of computing resources from a set of computing clusters 114 of a number of network computing providers 112 that may be needed to perform a set of jobs or tasks based on one or more inputs to the prediction model, such as, for example, a set of historical jobs performed and job metadata for previous requested jobs. In some cases, the prediction model may be termed a prediction model because, for example, the output may be or may be related to a prediction of an action or event, such as the prediction that an amount of computing resources are required or that a set of jobs are requested. A number of different types of algorithms may be used by the model generation system 146. For example, certain embodiments herein may use a logistical regression model. However, other models are possible, such as a linear regression model, a discrete choice model, or a generalized linear model. [Column 13 line 24-55], Additionally, the prediction model 160 selected may be selected based on the specific data provided as input data 172 including the specific jobs or job metadata. The availability of particular types of data as part of the input data 172 can affect the selection of the prediction model 160. For example, the inclusion of job priority data as part of the input data may result in the use of prediction model 160A. ) However, Chitalwala and Jin do not explicitly disclose predetermined increments. Yang teaches predetermined increments. ([Paragraph 72], Therefore, it is important for the GPU resource management of this disclosure to obtain the quantity of remaining available resources for each application process, and in particular to obtain the first increment of each application process, so as to effectively reduce the allocation error. [Paragraph 82], Each application process may determine, according to the received resource allocation command, whether to transmit a processing task to the corresponding GPU (for example, delivering a rendering instruction to a GPU rendering instruction queue in FIG. 2B), and execution of the application process by the GPU will consume a quantity of GPU hardware resources. The quantity of GPU hardware resources may correspond to a first increment of the application process referenced in a next resource allocation. [Paragraph 60], As described above, each GPU in the plurality of GPU is a GPU currently available for processing application processes, but the quantity of available computing resources in the GPUs is not necessarily equal and not necessarily equal to the total quantity of computing resources thereof. Therefore, the quantity of available resources of the available GPUs needs to be determined before allocating a GPU to an application process having a specific resource requirement. Similar to the above description regarding the resource requirement weight, the quantity of available resources of the GPU may be represented by an available resource proportion thereof. The available resource proportion may represent a proportion of resources available for processing application processes in the GPU in unit resources thereof. For example, if the time available for processing application processes is 0.8 s in the GPU hardware computation time of 1 s, and the available resource proportion of the GPU may be 0.8.) It would have been obvious to a person with ordinary skill in the art before the effective filing date of the invention, to combine the teachings of Chitalwala and Jin wherein application specific characteristic(s) is/are monitored to measure/monitor resource utilization and processing time to ensure of Service Level Agreement (SLA) is met, resource allocation needs are assessed by comparing monitored/current resource allocation and optimal performance requirements, resources (e.g. CPU) are iteratively adjusted in response to changes via machine learning regression model(s) to maximize resource utilization to optimize application processing, optimize/maximize resource efficiency and minimize processing time, into teachings of Yang wherein resource(s) is/are allocated based on predetermined increments, because this would enhance the teachings of Chitalwala and Jin wherein by allocating resource(s) based on predetermined increments, it reduces resource allocation error by analyzing historical resource allocation/utilization to ensure optimal resource allocation. [Yang paragraph 67] Claim(s) 10 is/are system claim(s) corresponding to the method claim(s) 3. Therefore, is/are rejected based on similar rationale. Chitalwala teaches under-resourced, over-resourced tasks and incorporating results from the exploratory adjustments. [PGPub paragraph 20-21, 48 and 51] Claim(s) 19 is/are computer-readable storage medium claim(s) corresponding to the system claim(s) 10. Therefore, is/are rejected based on similar rationale. Chitalwala teaches under-resourced, over-resourced tasks and incorporating results from the exploratory adjustments. [PGPub paragraph 20-21, 48 and 51] Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to DONG U KIM whose telephone number is (571)270-1313. The examiner can normally be reached 9:00am - 5:00pm. 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, Bradley Teets can be reached at 5712723338. 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. /DONG U KIM/Primary Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

May 23, 2024
Application Filed
Jul 09, 2026
Non-Final Rejection mailed — §103, §112 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12681774
CLOUD FITNESS ENGINEERING
2y 9m to grant Granted Jul 14, 2026
Patent 12670004
FAIL-SAFE POST COPY MIGRATION OF CONTAINERIZED APPLICATIONS
3y 8m to grant Granted Jun 30, 2026
Patent 12670030
COMPUTING NETWORKING SYSTEM FOR CONTAINER ORCHESTRATION AND METHOD THEREOF
2y 7m to grant Granted Jun 30, 2026
Patent 12670022
SERVICES DEVELOPMENT AND DEPLOYMENT FOR BACKEND SYSTEM INTEGRATION
2y 7m to grant Granted Jun 30, 2026
Patent 12664026
HYPERTUNING A MACHINE LEARNING MODEL MICROSERVICES CONFIGURATION TO OPTIMIZE LATENCY
3y 6m to grant Granted Jun 23, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
87%
Grant Probability
99%
With Interview (+12.9%)
2y 8m (~6m remaining)
Median Time to Grant
Low
PTA Risk
Based on 716 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month