System and method for executing, tracking and recovering long running computations
First Claim
1. In a distributed computer system having a plurality of interconnected computers, a long running transaction management apparatus comprising:
- A) flow description means for storing flow description data representing each of a number of types of long running transactions as a flow comprising a set of steps with arcs therebetween, each said step comprising a respective computer-executable application routine and each said arc comprising a respective data signal path, said flow description data specifying input condition criteria for starting execution of each said step upon occurrence of a specified number of specified input events and resource selecting criteria for selecting a resource to execute each said step, said flow description data thereby providing a respective template corresponding to each said transaction type;
B) a flow controller coupled to said flow description means for creating and executing a number of instances of transactions corresponding to said transaction types in accordance with the corresponding templates stored in said flow description means, said flow controller operable (i) to select dynamically a respective resource for performing the execution of said step in accordance with the resource selecting criteria stored in said flow description means, said flow controller selecting said resource after executing any and all steps of said transaction instance that said flow description data indicates as being prior to said step, and (ii) to initiate execution of each step in each of said instances of said transactions when said input condition criteria for said step as stored in said flow description means are satisfied; and
C) means for durably storing status information and a number of results from each said executed step for use by said flow controller in tracking execution and in recovery following interruptions in execution of instances of said long running transactions, whereby said flow controller can cause reinitiation of execution following any interruption of the execution of said instances of said long-running transactions.
2 Assignments
0 Petitions
Accused Products
Abstract
A transaction description database represents long running computations as a flow or set of computational steps with data arcs therebetween. The description database defines each step'"'"'s input and output signals, input condition criteria for creating an instance of the step, an application program associated with the step, and criteria for selecting a resource to execute the step. A flow controller controls the process of executing instances of each defined type of long running transaction. Execution of a long running transaction begins when a corresponding set of externally generated input event signals are received by the flow controller. During execution of a long running transaction, each step of the transaction is instantiated only when a sufficient set of input signals is received to execute that step. At that point an instance of the required type of step is created and then executed by a selected resource. After termination of a step, output signals from the step are converted into input event signals for other steps in the long running transaction in accordance with data stored in the transaction description database. Each step executes an application program and is treated as an individual computation insofar as durable storage of its computational results. Log records are durably stored upon instantiation, execution and termination of each step of a long running transaction, and output event signals are also logged, thereby durably storing sufficient data to recover a long running transaction with virtually no loss of the work that was accomplished prior to a system failure.
134 Citations
15 Claims
-
1. In a distributed computer system having a plurality of interconnected computers, a long running transaction management apparatus comprising:
-
A) flow description means for storing flow description data representing each of a number of types of long running transactions as a flow comprising a set of steps with arcs therebetween, each said step comprising a respective computer-executable application routine and each said arc comprising a respective data signal path, said flow description data specifying input condition criteria for starting execution of each said step upon occurrence of a specified number of specified input events and resource selecting criteria for selecting a resource to execute each said step, said flow description data thereby providing a respective template corresponding to each said transaction type; B) a flow controller coupled to said flow description means for creating and executing a number of instances of transactions corresponding to said transaction types in accordance with the corresponding templates stored in said flow description means, said flow controller operable (i) to select dynamically a respective resource for performing the execution of said step in accordance with the resource selecting criteria stored in said flow description means, said flow controller selecting said resource after executing any and all steps of said transaction instance that said flow description data indicates as being prior to said step, and (ii) to initiate execution of each step in each of said instances of said transactions when said input condition criteria for said step as stored in said flow description means are satisfied; and C) means for durably storing status information and a number of results from each said executed step for use by said flow controller in tracking execution and in recovery following interruptions in execution of instances of said long running transactions, whereby said flow controller can cause reinitiation of execution following any interruption of the execution of said instances of said long-running transactions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a distributed computer system having a plurality of interconnected computers, a method for managing long running transactions comprising the steps of:
-
A) storing flow description data, said flow description data representing each of a number of types of long running transactions as a respective flow, each said flow comprising a set of steps with arcs therebetween, each said step comprising a computer-executable application routine and each said arc comprising a data signal path, said flow description data specifying input condition criteria for starting execution of each said step upon occurrence of a specified number of specified input events and resource selecting criteria for selecting a resource to execute each said step, said flow description data thereby providing a template corresponding to each said transaction type; B) creating and executing a number of instances of transactions corresponding to said transaction types, said executing step being performed in accordance with said stored templates and including, for each said step of each said transaction instance, the steps of (i) dynamically selecting a resource for performing execution of said step in accordance with the stored resource selecting criteria, said selecting step being performed after executing any and all steps of said transaction instance that said flow description data indicates as being prior to said step, and (ii) initiating execution of said step when said stored input condition criteria for said step are satisfied; C) durably storing status information and results from each said executed step for use in tracking execution of said transaction instances and in recovery following interruptions in execution of transaction instances; and D) using said stored status information for reinitiation of execution following any interruption of the execution of transaction instances. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification