IP Library › Granted Patent US 11,063,832
Granted Patent B2
US 11,063,832 · App. 16/875,778 · Granted Jul 13, 2021

Capacity management of computing resources based on time series analysis

Inventor: Mukundan Madhavan (Bangalore, IN)
Assignee: Goldman Sachs & Co. LLC
H04L41/0896H04L41/16H04L43/0882H04L43/106
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,063,832
App. No.
16/875,778
Granted
Jul 13, 2021
Kind
B2
Abstract

An online system receives time series data and analyzes the data for identifying trend changes or level shifts in the time series. The time series data may describe resource utilization of systems, for example, bandwidth of computer networks. The online system uses prediction models, for example, machine learning based prediction models using regression to predict data values for the time series. The online system determines error residue values based on difference between predicted data values and actual data values of the time series. The online system determines level change in the error residue to identify change-points representing trend changes or level-shifts in the original time-series. The online system takes corrective action based on the change-point information and the trend following the occurrence of the change-point, for example, sending alerts or instructions for causing reconfiguration of the systems such as the computer network.

Claims (138)

1. A method for performing capacity management of a storage system, the method comprising:

receiving data associated with storage usage of one or more storage systems;

determining a time series representing storage utilization of the one or more storage systems based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric indicating storage utilization of the one or more storage systems at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing storage utilization of the one or more storage systems at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting configuration of the one or more storage systems based on the change-point.

2. The method of claim 1 , wherein the prediction model is a first prediction model, the method further comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting configuration of the one or more storage systems is based on predictions made by the second prediction model.

3. The method of claim 1 , wherein determining the change-point in the error residue values comprises:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values;

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

4. The method of claim 3 , wherein the partial aggregate value is a cumulative partial sum of data values of the time series and the total aggregate value is a cumulative sum of data values of the time series.

5. The method of claim 1 , wherein determining the time series comprises:

for each of a plurality of sub-intervals, determining an aggregate value by aggregating the input values across the sub-interval; and

using each aggregate value for a sub-interval as a data value of the time series, the data value corresponding to a timestamp associated with the sub-interval.

6. The method of claim 1 , wherein determining the time series comprises:

determining a median value across a sliding window; and

responsive to a received data value deviating from the median value by more than a threshold value, using the median value instead of the received data value.

7. The method of claim 1 , wherein the prediction model is a machine learning based regression model, the method further comprising:

training the machine learning based regression model using data values from the time series.

8. The method of claim 1 , wherein performing the corrective action comprises one or more of:

sending an alert describing the change-point and a resulting trend after its occurrence; and

processing instructions to reconfigure resources of the one or more storage systems.

9. A method for performing capacity management of system resources, the method comprising:

receiving data associated with usage of resources of one or more devices;

determining a time series representing resource utilization data based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric indicating resource utilization of the one or more devices at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing resource utilization of the one or more devices at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting resource utilization of the one or more devices based on the change-point.

10. The method of claim 9 , wherein the prediction model is a first prediction model, the method further comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting resource utilization of the one or more devices is based on predictions made by the second prediction model.

11. The method of claim 9 , wherein determining the change-point in the error residue values comprises:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values; and

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

12. The method of claim 11 , wherein the partial aggregate value is cumulative partial sum of data values of the time series and the total aggregate value is the cumulative sum of data values of the time series.

13. The method of claim 9 , wherein determining the time series comprises:

for each of a plurality of sub-intervals, determining an aggregate value by aggregating the input values across the sub-interval; and

using each aggregate value for a sub-interval as a data value of the time series, the data value corresponding to a timestamp associated with the sub-interval.

14. The method of claim 9 , wherein determining the time series comprises:

determining a median value across a sliding window; and

responsive to a received data value deviating from the median value by more than a threshold value, using the median value instead of the received data value.

15. The method of claim 9 , wherein the prediction model is a machine learning based regression model, the method further comprising:

training the machine learning based regression model using data values from the time series.

16. The method of claim 9 , wherein performing the corrective action comprises one or more of:

sending alert describing the change-point and a resulting trend after its occurrence;

processing instructions to reconfigure resources of the one or more devices.

17. A method for performing management of production systems, the method comprising:

receiving data describing a runtime attribute of processes executing on one or more production systems, each production system executing on a computing device;

determining a time series representing a run-time attribute based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric based on the run-time attribute at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing resource utilization of the one or more devices at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting configuration of the one or more production systems based on the change-point.

18. The method of claim 17 , wherein the prediction model is a first prediction model, the method further comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting resource utilization of the one or more devices is based on predictions made by the second prediction model.

19. The method of claim 17 , wherein determining the change-point in the error residue values comprises:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values; and

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

20. The method of claim 19 , wherein the partial aggregate value is cumulative partial sum of data values of the time series and the total aggregate value is the cumulative sum of data values of the time series.

21. The method of claim 17 , wherein determining the time series comprises:

for each of a plurality of sub-intervals, determining an aggregate value by aggregating the input values across the sub-interval; and

using each aggregate value for a sub-interval as a data value of the time series, the data value corresponding to a timestamp associated with the sub-interval.

22. The method of claim 17 , wherein determining the time series comprises:

determining a median value across a sliding window; and

responsive to a network data value deviating from the median value by more than a threshold value, using the median value instead of the received data value.

23. The method of claim 17 , wherein the prediction model is a machine learning based regression model, the method further comprising:

training the machine learning based regression model using data values from the time series.

24. The method of claim 17 , wherein performing the corrective action comprises one or more of:

sending alert describing the change-point and a resulting trend after its occurrence; and

processing instructions to reconfigure resources of the one or more production systems.

25. A non-transitory computer readable storage medium storing instructions that when executed by a computer processor, cause the computer processor to perform steps comprising:

receiving data associated with storage usage of one or more storage systems;

determining a time series representing storage utilization of the one or more storage systems based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric indicating storage utilization of the one or more storage systems at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing storage utilization of the one or more storage systems at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting configuration of the one or more storage systems based on the change-point.

26. The non-transitory computer readable storage medium of claim 25 , wherein the prediction model is a first prediction model, wherein the instructions further cause the computer processor to perform steps comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting configuration of the one or more storage systems is based on predictions made by the second prediction model.

27. The non-transitory computer readable storage medium of claim 25 , wherein instructions for determining the change-point in the error residue values cause the computer processor to perform steps comprising:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values;

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

28. A non-transitory computer readable storage medium storing instructions that when executed by a computer processor, cause the computer processor to perform steps comprising:

receiving data associated with usage of resources of one or more devices;

determining a time series representing resource utilization data based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric indicating resource utilization of the one or more devices at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing resource utilization of the one or more devices at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting resource utilization of the one or more devices based on the change-point.

29. The non-transitory computer readable storage medium of claim 28 , wherein the prediction model is a first prediction model, wherein the instructions further cause the computer processor to perform steps comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting resource utilization of the one or more devices is based on predictions made by the second prediction model.

30. The non-transitory computer readable storage medium of claim 28 , wherein instructions for determining the change-point in the error residue values cause the computer processor to perform steps comprising:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values; and

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

31. A non-transitory computer readable storage medium storing instructions that when executed by a computer processor, cause the computer processor to perform steps comprising:

receiving data describing a runtime attribute of processes executing on one or more production systems, each production system executing on a computing device;

determining a time series representing a run-time attribute based on the received data, the time series comprising a sequence of data values, each data value associated with a timestamp value and representing a metric based on the run- time attribute at the time represented by the timestamp value;

accessing a prediction model configured to receive an input timestamp value and predict a value of the metric representing resource utilization of the one or more devices at the time represented by the input timestamp value;

predicting a plurality of data values of the time series using the prediction model;

for each of the plurality of predicted data values, determining an error residue value representing a measure of difference between the predicted data value and a data value of the time series;

determining a change-point based on the error residue values, the change point representing a change in an aggregate measure of level of the error residue; and

performing a corrective action for adjusting configuration of the one or more production systems based on the change-point.

32. The non-transitory computer readable storage medium of claim 31 , wherein the prediction model is a first prediction model, wherein the instructions further cause the computer processor to perform steps comprising:

determining a second prediction model based on data values of the timestamp that occur after the change point; and

wherein performing the corrective action for adjusting resource utilization of the one or more devices is based on predictions made by the second prediction model.

33. The non-transitory computer readable storage medium of claim 31 , wherein instructions for determining the change-point in the error residue values cause the computer processor to perform steps comprising:

determining a total aggregate value corresponding to data values of the time series;

determining a partial aggregate value corresponding to each of a set of timestamp values;

determining a secondary time series based on a difference between the partial aggregate values and the total aggregate values; and

identifying a timestamp associated with a shift in level of values in the secondary time series; and

providing the identified timestamp as a timestamp corresponding to the change-point.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2020
From: MADHAVAN, MUKUNDAN
To: GOLDMAN SACHS & CO. LLC
Reel/Frame 052694/0460 →
Continuity (3)
Continuation 16295884 · Mar 7, 2019
Provisional Application 62794484 · Jan 18, 2019
Related Publication 20200313971A1 · Oct 1, 2020