METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR OPTIMIZING RUNTIME BRANCH SELECTION IN A FLOW PROCESS
First Claim
1. A method for optimizing runtime branch selection in a flow process, comprising:
- gathering and storing performance metrics of flow branch behavior for executed flows in a runtime system over a period of time;
using aggregated performance metrics for the flow branch behavior to determine an optimal ordering of branches for a currently running flow, comprising;
identifying at least one branch point in the currently running flow, the branch point having two or more branches;
generating ordering permutations for at least a portion of the branches in the branch point for the currently running flow to identify any permutations that have not been executed;
gathering metrics for at least one permutation of the branch point in the currently running flow;
comparing the metrics to performance metrics of executed flows having substantially similar flow branch behavior; and
identifying optimal branch ordering for the permutation based upon the comparison; and
executing the flow according to the optimal branch ordering.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for optimizing runtime branch selection in a flow process are provided. The method includes gathering performance metrics of flow branch behavior for executed flows in a runtime system over time and using aggregated performance metrics for the behavior to determine an optimal ordering of branches for a currently running flow. The optimal ordering is determined by identifying one or more branch points in the flow, generating ordering permutations for at least a portion of the branches in the branch point for the flow to identify any permutations that have not been executed, gathering metrics for permutation(s) of the branch point in the flow, comparing the metrics to performance metrics of executed flows having substantially similar flow branch behavior, and identifying optimal branch ordering for the permutation(s) based upon the comparison. The method also includes executing the flow according to the optimal branch ordering.
20 Citations
20 Claims
-
1. A method for optimizing runtime branch selection in a flow process, comprising:
-
gathering and storing performance metrics of flow branch behavior for executed flows in a runtime system over a period of time; using aggregated performance metrics for the flow branch behavior to determine an optimal ordering of branches for a currently running flow, comprising; identifying at least one branch point in the currently running flow, the branch point having two or more branches; generating ordering permutations for at least a portion of the branches in the branch point for the currently running flow to identify any permutations that have not been executed; gathering metrics for at least one permutation of the branch point in the currently running flow; comparing the metrics to performance metrics of executed flows having substantially similar flow branch behavior; and identifying optimal branch ordering for the permutation based upon the comparison; and executing the flow according to the optimal branch ordering. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for optimizing runtime branch selection in a statically-configured flow process, comprising:
-
identifying flow branch behavior for flows in a runtime system, the flow branch behavior including locations in a flow where clones are taken; and reducing the number of clones otherwise created at runtime by selecting any branches that, upon execution, would require cloning of data associated with another branch, and executing the selected branches before executing the other branch. - View Dependent Claims (8)
-
-
9. A system for optimizing runtime branch selection in a flow process, comprising:
-
a computer processor; and a runtime system application executing on the computer processor, the runtime system application implementing a method, comprising; gathering and storing performance metrics of flow branch behavior for executed flows in a runtime system over a period of time; using aggregated performance metrics for the flow branch behavior to determine an optimal ordering of branches for a currently running flow, comprising; identifying at least one branch point in the currently running flow, the branch point having two or more branches; generating ordering permutations for at least a portion of the branches of the branch point in the currently running flow to identify any permutations that have not been executed; gathering metrics for at least one permutation of the branch point in the currently running flow; comparing the metrics to performance metrics of executed flows having substantially similar flow branch behavior; and identifying optimal branch ordering for the permutation based upon the comparison; and executing the flow according to the optimal branch ordering. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer program product for optimizing runtime branch selection in a flow process, the computer program product comprising a storage medium having computer-readable program code stored thereon, the program code causing a computer to implement a method, the method comprising:
-
gathering and storing performance metrics of flow branch behavior for executed flows in a runtime system over a period of time; using aggregated performance metrics for the flow branch behavior to determine an optimal ordering of branches for a currently running flow, comprising; identifying at least one branch point in the currently running flow, the branch point having two or more branches; generating ordering permutations for at least a portion of the branches in the branch point for the currently running flow to identify any permutations that have not been executed; gathering metrics for at least one permutation of the branch point in the currently running flow; comparing the metrics to performance metrics of executed flows having substantially similar flow branch behavior; and identifying optimal branch ordering for the permutation based upon the comparison; and executing the flow according to the optimal branch ordering. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification