Bottleneck detector application programming interface
First Claim
1. A computing system comprising:
- memory containing executable code;
one or more processors, which, when executing the executable code, cause the computing system to be configured with a system architecture for analyzing workloads processed when executing an application in order to identify a bottleneck where time to execute a workload between two checkpoints increases at a greater rate than the workload increases, and wherein the system architecture comprises;
a checkpoint inserter that analyzes the application to identify a plurality of locations for checkpoints, and inserts a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured for each inserted checkpoint;
an execution environment that executes the application in accordance with a workload;
a tracer that responds to the checkpoint function call inserted for each location, and that captures checkpoint identifiers, timestamps, and workload factors for each of said identified checkpoint locations as the application executes;
an analyzer that performs the following computer-implemented method;
identifies a plurality of checkpoints in the application; and
identifies a bottleneck in the executing application by performing a curve fitting analysis for each checkpoint based on one or the other of the workload factor or a time difference based on the timestamp of a current checkpoint as compared to the timestamp of the previous checkpoint, and then analyzes a determined curve by performing one or the other of the following;
(1) analyzing a determined curve for a given checkpoint to determine any anomalies, and if so, identifying the given checkpoint as a bottleneck in the executing application;
or(2) comparing a determined first curve for a given checkpoint to a second curve for a previous checkpoint to determine any significant differences between the two curves for the current and previous checkpoints, and if so, identifying the given checkpoint as a bottleneck in the executing application.
2 Assignments
0 Petitions
Accused Products
Abstract
An application programming interface may receive workload identifiers and checkpoint identifiers from which bottleneck detection may be performed. Workloads may be tracked through various checkpoints in an application and timestamps collected at each checkpoint. From these data, bottlenecks may be identified in real time or by analyzing the data in a subsequent analysis. The workloads may be processed by multiple devices which may comprise a large application. In some cases, the workloads may be processed by different devices in sequence or in a serial fashion, while in other cases workloads may be processed in parallel by different devices. The application programming interface may be part of a bottleneck detection service which may be sold on a pay-per-use model, a subscription model, or some other payment scheme.
-
Citations
24 Claims
-
1. A computing system comprising:
-
memory containing executable code; one or more processors, which, when executing the executable code, cause the computing system to be configured with a system architecture for analyzing workloads processed when executing an application in order to identify a bottleneck where time to execute a workload between two checkpoints increases at a greater rate than the workload increases, and wherein the system architecture comprises; a checkpoint inserter that analyzes the application to identify a plurality of locations for checkpoints, and inserts a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured for each inserted checkpoint; an execution environment that executes the application in accordance with a workload; a tracer that responds to the checkpoint function call inserted for each location, and that captures checkpoint identifiers, timestamps, and workload factors for each of said identified checkpoint locations as the application executes; an analyzer that performs the following computer-implemented method; identifies a plurality of checkpoints in the application; and identifies a bottleneck in the executing application by performing a curve fitting analysis for each checkpoint based on one or the other of the workload factor or a time difference based on the timestamp of a current checkpoint as compared to the timestamp of the previous checkpoint, and then analyzes a determined curve by performing one or the other of the following; (1) analyzing a determined curve for a given checkpoint to determine any anomalies, and if so, identifying the given checkpoint as a bottleneck in the executing application;
or(2) comparing a determined first curve for a given checkpoint to a second curve for a previous checkpoint to determine any significant differences between the two curves for the current and previous checkpoints, and if so, identifying the given checkpoint as a bottleneck in the executing application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method for analyzing workloads processed when executing an application in order to identify a bottleneck where time to execute a workload between two checkpoints increases at a greater rate than the workload increases, the computer-implemented method comprising:
-
analyzing the application to identify a plurality of locations for checkpoints, and inserting a checkpoint function call that causes a checkpoint identifier and a timestamp to be captured for each inserted checkpoint; executing the application in accordance with a workload; tracing the application as it executes in accordance with the workload, and as a result of the tracing, capturing tracer data that comprises checkpoint identifiers, timestamps, and workload factors for each of said identified checkpoint locations as the application executes; based on the tracer data, identifying a plurality of checkpoints in the application; and identifying a bottleneck in the executing application by performing a curve fitting analysis for each checkpoint based on one or the other of the workload factor or a time difference based on the timestamp of a current checkpoint as compared to the timestamp of the previous checkpoint, and then analyzing a determined curve by performing one or the other of the following; (1) analyzing a determined curve for a given checkpoint to determine any anomalies, and if so, identifying the given checkpoint as a bottleneck in the executing application;
or(2) comparing a determined first curve for a given checkpoint to a second curve for a previous checkpoint to determine any significant differences between the curves for the current and previous checkpoints, and if so, identifying the given checkpoint as a bottleneck in the executing application. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification