ANALYSIS OF OPERATOR GRAPH AND DYNAMIC REALLOCATION OF A RESOURCE TO IMPROVE PERFORMANCE
First Claim
1. An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
an application residing in the memory;
an operator graph residing in the memory that represents the application using a plurality of operators and a plurality of data flows between the plurality of operators; and
an operator graph analysis mechanism that analyzes the operator graph at runtime when the application runs, detects at least one problem in the operator graph based on at least one data bottleneck in the operator graph, and performs at least one resource reallocation to improve performance of the application represented in the operator graph.
1 Assignment
0 Petitions
Accused Products
Abstract
An operator graph analysis mechanism analyzes an operator graph corresponding to an application for problems as the application runs, and determines potential reallocations from a reallocation policy. The reallocation policy may specify potential reallocations depending on whether one or more operators in the operator graph are compute bound, memory bound, communication bound, or storage bound. The operator graph analysis mechanism includes a resource reallocation mechanism that can dynamically change allocation of resources in the system at runtime to address problems detected in the operator graph. The operator graph analysis mechanism thus allows an application represented by an operator graph to dynamically evolve over time to optimize its performance at runtime.
116 Citations
22 Claims
-
1. An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; an application residing in the memory; an operator graph residing in the memory that represents the application using a plurality of operators and a plurality of data flows between the plurality of operators; and an operator graph analysis mechanism that analyzes the operator graph at runtime when the application runs, detects at least one problem in the operator graph based on at least one data bottleneck in the operator graph, and performs at least one resource reallocation to improve performance of the application represented in the operator graph. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method executed by at least one processor for improving performance of an application at runtime, the method comprising the steps of:
-
(A) displaying an operator graph that represents the application using a plurality of operators and a plurality of data flows between the plurality of operators; (B) analyzing the operator graph at runtime when the application runs; (C) detecting at least one problem in the operator graph based on at least one data bottleneck in the operator graph; and (D) performing at least one resource reallocation to improve performance of the application represented in the operator graph. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method executed by at least one processor for improving performance of an application at runtime, the method comprising the steps of:
-
displaying an operator graph that represents the application using a plurality of operators and a plurality of data flows between the plurality of operators; analyzing the operator graph at runtime when the application runs; detecting at least one problem in the operator graph based on at least one data bottleneck in the operator graph; when the at least one problem includes a first operator in the operator graph that is computer bound, performing at least one of the steps; increasing priority of processing the first operator; allocating additional CPUs to the first operator; increasing clock frequency for at least one CPU in the first operator; using a simplified, less accurate algorithm in the first operator; using an algorithm that uses more memory in the first operator; when the at least one problem includes a second operator in the operator graph that is memory bound, performing at least one of the steps; allocating additional memory to the second operator; and using an algorithm for the second operator that uses more CPU; when the at least one problem includes a third operator in the operator graph that is communication bound with respect to a fourth operator, performing at least one of the steps; increasing bandwidth of a network connection between the third operator and the fourth operator; allocating a dedicated link between the third operator and the fourth operator; moving one of the third and fourth operators to a different node; and changing processing of the third and fourth operators to balance network traffic; when the at least one problem includes a fifth operator that is storage bound, performing at least one of the steps; allocating a solid state drive to the fifth operator, and moving a cache in the fifth operator to the solid state drive; allocating a storage area network to the fifth operator, and moving the cache in the fifth operator to the storage area network; allocating an in-memory file system to the fifth operator, and moving the cache in the fifth operator to the in-memory file system; allocating additional CPUs in the fifth operator to reduce usage of the cache; and allocating additional memory in the fifth operator to reduce usage of the cache.
-
-
16. An article of manufacture comprising software stored on a computer readable storage medium, the software comprising:
an operator graph analysis mechanism that analyzes an operator graph that represents an application using a plurality of operators and a plurality of data flows between the plurality of operators as the application runs, detects at least one problem in the operator graph based on at least one data bottleneck in the operator graph, and performs at least one resource reallocation to improve performance of the application represented in the operator graph. - View Dependent Claims (17, 18, 19, 20, 21, 22)
Specification