Use of execution flow shape to allow aggregate data reporting with full context in an application manager
First Claim
1. A computer memory comprising processor-readable code embodied thereon, the processor-readable code is executable to:
- for each of a plurality of transactions which are executed by an application at a computer system, compressing an uncompressed calling sequence of software components among a plurality of uncompressed calling sequences of software components of the application, wherein the compressing generates a compressed sequence of software components among a plurality of compressed sequences of software components;
for each of the compressed sequences of the plurality of compressed sequences, determining how closely the each compressed sequence matches each of a plurality of execution flow shapes, wherein each of the plurality of execution flow shapes comprises a unique ordered sequence of software components;
based on the determining how closely each compressed sequence matches each of the plurality of execution flow shapes, selecting a single execution flow shape among the plurality of execution flow shapes to represent the compressed sequences;
for each compressed sequence, determining a statistical metric of software components in the each compressed sequence which correspond to the software components of the single execution flow shape;
determining a statistical metric for each of the plurality of transactions;
for each of the software components in the single execution flow shape, determining a representative statistical metric among the statistical metrics of the corresponding software components in each of the compressed sequences;
determining a representative statistical metric among the statistical metrics of the plurality of transactions; and
reporting from the computer system to a manager computer, the single execution flow shape, the representative statistical metric for each of the software components in the single execution flow shape, and the representative statistical metric among the plurality of transactions, wherein;
the single execution flow shape is reported from the computer system to the manager computer instead of reporting the uncompressed calling sequence of software components of each transaction and the compressed sequences from the computer system to the manager computer,one compressed sequence of the plurality of compressed sequences is provided by performing lossy compression on one uncompressed calling sequence of the plurality of uncompressed calling sequences to reduce the one uncompressed calling sequence to a simplified form comprising a reduced number of software components, andthe one compressed sequence and the one uncompressed calling sequence are discarded after the selecting of the single execution flow shape so that the one compressed sequence and the one uncompressed calling sequence are not reported from the computer system to the manager computer.
3 Assignments
0 Petitions
Accused Products
Abstract
Data relating to execution flows at a computer system is aggregated across multiple execution flows by categorizing each execution flow into an execution flow shape. The execution flows may represent sequences of software components that are invoked or other computer system resources that are consumed. The execution flow shapes are developed by observing and recording the execution flows at the computer system and applying lossy compression rules. Execution flows are categorized into an execution flow shape which is a closest match. The execution flow data may be aggregated by an agent at the computer system, and communicated to a manager for subsequent use. The aggregation combines the information from all execution flows into a small enough data set that can be reported without consuming unduly large processing overhead while still preserving as many of the interesting aspects of the execution flows as possible.
-
Citations
20 Claims
-
1. A computer memory comprising processor-readable code embodied thereon, the processor-readable code is executable to:
-
for each of a plurality of transactions which are executed by an application at a computer system, compressing an uncompressed calling sequence of software components among a plurality of uncompressed calling sequences of software components of the application, wherein the compressing generates a compressed sequence of software components among a plurality of compressed sequences of software components; for each of the compressed sequences of the plurality of compressed sequences, determining how closely the each compressed sequence matches each of a plurality of execution flow shapes, wherein each of the plurality of execution flow shapes comprises a unique ordered sequence of software components; based on the determining how closely each compressed sequence matches each of the plurality of execution flow shapes, selecting a single execution flow shape among the plurality of execution flow shapes to represent the compressed sequences; for each compressed sequence, determining a statistical metric of software components in the each compressed sequence which correspond to the software components of the single execution flow shape; determining a statistical metric for each of the plurality of transactions; for each of the software components in the single execution flow shape, determining a representative statistical metric among the statistical metrics of the corresponding software components in each of the compressed sequences; determining a representative statistical metric among the statistical metrics of the plurality of transactions; and reporting from the computer system to a manager computer, the single execution flow shape, the representative statistical metric for each of the software components in the single execution flow shape, and the representative statistical metric among the plurality of transactions, wherein; the single execution flow shape is reported from the computer system to the manager computer instead of reporting the uncompressed calling sequence of software components of each transaction and the compressed sequences from the computer system to the manager computer, one compressed sequence of the plurality of compressed sequences is provided by performing lossy compression on one uncompressed calling sequence of the plurality of uncompressed calling sequences to reduce the one uncompressed calling sequence to a simplified form comprising a reduced number of software components, and the one compressed sequence and the one uncompressed calling sequence are discarded after the selecting of the single execution flow shape so that the one compressed sequence and the one uncompressed calling sequence are not reported from the computer system to the manager computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, comprising:
-
a memory comprising processor-readable code embodied therewith; and a processor in communication with the memory, the processor executes the processor-readable code to; for each of a plurality of transactions which are executed at an application at a computer system, compress an uncompressed calling sequence of software components among a plurality of uncompressed calling sequences of software components of the application to provide a compressed sequence of software components among a plurality of compressed sequences of software components; for each of the compressed sequences of the plurality of compressed sequences, determine how closely the compressed sequence matches each of a plurality of execution flow shapes, each of the plurality of execution flow shapes comprises a unique ordered sequence of software components; based on how closely each compressed sequence matches each of the plurality of execution flow shapes, select a single execution flow shape among the plurality of execution flow shapes to represent the compressed sequences; for each compressed sequence, determine statistical metrics of software components in the compressed sequence which correspond to the software components of the single execution flow shape; determine a statistical metric for each of the plurality of transactions; for each of the software components in the single execution flow shape, determine a representative statistical metric among the statistical metrics of the corresponding software components in each of the compressed sequences; determine a representative statistical metric among the statistical metrics of the plurality of transactions; and report from the computer system to a manager computer, the single execution flow shape, the representative statistical metric for each of the software components in the single execution flow shape, and the representative statistical metric among the plurality of transactions, wherein; one compressed sequence of the plurality of compressed sequences is provided by performing lossy compression on one uncompressed calling sequence of the plurality of uncompressed calling sequences, and the one compressed sequence and the one uncompressed calling sequence are discarded after the selecting of the single execution flow shape so that the one compressed sequence and the one uncompressed calling sequence are not reported from the computer system to the manager computer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A method, comprising:
-
for each of a plurality of transactions which are executed by an application running at a computer system, receiving information from instrumented byte code of the application, wherein the instrumented byte code indicates an uncompressed calling sequence of software components of the application; for each transaction of the plurality of transactions, compressing the uncompressed calling sequence using lossy compression, the compressing generates a compressed sequence comprising a reduced number of software components, the compressed sequence is among a plurality of compressed sequences of software components; for each of the compressed sequences of the plurality of compressed sequences, determining how closely the each compressed sequence matches each of a plurality of execution flow shapes, wherein each of the plurality of execution flow shapes comprises a unique ordered sequence of software components; based on the determining how closely each compressed sequence matches each of the plurality of execution flow shapes, selecting a single execution flow shape among the plurality of execution flow shapes to represent the compressed sequences; for each compressed sequence, determining execution times of software components in the each compressed sequence which correspond to the software components of the single execution flow shape; determining an execution time for each of the plurality of transactions;
for each of the software components in the single execution flow shape, determining a slowest execution time among the execution times of the corresponding software components in each of the compressed sequences;determining a slowest execution time among the execution times of the plurality of transactions; reporting from the computer system to a manager computer the single execution flow shape, the slowest execution time for each of the software components in the single execution flow shape, and the slowest execution time among the plurality of transactions, wherein the single execution flow shape is reported from the computer system to the manager computer; and after the selecting of the single execution flow shape, discarding the uncompressed calling sequence of software components of each transaction and the compressed sequences without reporting the uncompressed calling sequence of software components of each transaction and the compressed sequences from the computer system to the manager computer. - View Dependent Claims (19, 20)
-
Specification