Latency-aware resource allocation for stream processing applications
Abstract
Systems and methods are provided for dynamically adjusting computing resources allocated to tasks within a stream processing application, including initiating monitoring of application-specific characteristics for each task, the characteristics including processor (CPU) usage and processing time, assessing resource allocation needs for each task based on the monitored characteristics to determine discrepancies between current resource allocation and optimal performance requirements, and 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. Optimal resource allocations are determined for each task using a regression model that incorporates historical and real-time performance data, and the optimal resource allocations are applied to the tasks to minimize processing time and maximize resource use efficiency. The optimal resource allocations are iteratively updated in response to changes in task characteristics or application demands.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . 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; assessing resource allocation needs for each task based on the monitored characteristics to determine discrepancies between current resource allocation and optimal performance requirements; 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; 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.
2 . The method of claim 1 , wherein the monitoring further includes tracking memory consumption and network usage of each task alongside CPU usage and processing time.
3 . The method of claim 1 , 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.
4 . The method of claim 1 , 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.
5 . The method of claim 1 , further comprising adjusting one or more specific resource allocations responsive to detected anomalies in application performance that deviate from predefined performance thresholds.
6 . The method of claim 1 , further comprising validating an effectiveness of the resource adjustments by comparing pre-adjustment and post-adjustment performance metrics against predetermined benchmarks.
7 . The method of claim 1 , wherein the tasks are microservices in the stream processing application.
8 . A system for dynamically adjusting computing resources within a stream processing application, comprising:
a processor device; and a memory storing instructions that, when executed by the processor device, cause the system to: monitor application-specific characteristics of each task within the application, including processing time and processor (CPU) usage; assess resource allocation needs based on the monitored characteristics to identify under-resourced and over-resourced tasks; implement exploratory resource adjustments to CPU resources for selected tasks and measure an impact of the exploratory resource adjustments on specified performance metrics; determine optimal resource allocations for tasks based on a data-driven analysis incorporating results from the exploratory adjustments; apply the optimal resource allocations to enhance task performance and resource efficiency; and iteratively update the optimal resource allocations in response to detected changes in task-specific characteristics or application demands.
9 . The system of claim 8 , 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.
10 . The system of claim 8 , 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 resource allocation needs assessed.
11 . The system of claim 8 , 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.
12 . The system of claim 11 , 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.
13 . The system of claim 8 , 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.
14 . The system of claim 8 , 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.
15 . A computer program product for dynamically adjusting computing resources in a stream processing application, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a hardware processor to:
monitor application-specific characteristics of each task within the application, including processing time and processor (CPU) usage; assess resource allocation needs based on the monitored characteristics to identify under-resourced and over-resourced tasks; implement exploratory adjustments to CPU resources for selected tasks and measure an impact of the exploratory adjustments on specified performance metrics; determine optimal resource allocations for tasks based on a data-driven analysis incorporating results from the exploratory adjustments; apply the optimal resource allocations to enhance task performance and resource efficiency; and iteratively update the optimal resource allocations responsive to detected changes in task characteristics or application demands.
16 . The computer program product of claim 15 , 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.
17 . The computer program product of claim 15 , wherein the program instructions include algorithms for incremental resource adjustments based on predefined thresholds of resource utilization.
18 . The computer program product of claim 15 , 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.
19 . The computer program product of claim 15 , wherein the exploratory resource adjustments include increasing or decreasing CPU allocations in predetermined increments based on current utilization relative to a historical average.
20 . The computer program product of claim 15 , 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.Join the waitlist — get patent alerts
Track US2024394110A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.