Fault tolerant retry subsystem and method
US-2016224425-A1 · Aug 4, 2016 · US
US9904585B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9904585-B1 |
| Application number | US-201514876555-A |
| Country | US |
| Kind code | B1 |
| Filing date | Oct 6, 2015 |
| Priority date | Oct 6, 2015 |
| Publication date | Feb 27, 2018 |
| Grant date | Feb 27, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A workflow interpreter service that interprets a workflow definition language for specifying a workflow definition. Further, the workflow definition language provides features for maintaining control over data flows for data that is passed from one state to another among states of a state machine for a workflow and features for handling errors that may occur within any given state of a workflow state machine. Such control over data flow in between states allows for a given workflow to be processed incrementally, and among multiple different computing resources. Further, the workflow definition language error handling features provide for robust error handling within the state machine framework corresponding to workflow.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: a workflow data store configured to store workflow definitions, wherein respective workflow definitions stored in the data store comprise statements according to a workflow definition language, wherein the statements define states of a respective workflow, and wherein the statements include fields specifying: a task to be performed for the respective workflow; and an error handling mechanism, wherein the error handling mechanism includes: a timeout specification for the task; and a heartbeat specification for the task; and a workflow service implemented by one or more computing devices and configured to: receive a given workflow definition of the workflow definitions from the data store for a particular workflow; construct a state machine for the particular workflow as defined in the given workflow definition for the particular workflow; execute the particular workflow according to the state machine, wherein to execute the particular workflow, the workflow service is further configured to: determine, according to the given workflow definition for a current state of the workflow, a particular task, a particular timeout specification for the particular task, and a particular heartbeat specification for the particular task; request execution of the particular task, set a heartbeat timer according to the heartbeat specification, and set a timeout timer according to the timeout specification; transition from the current state to an error handling state based at least on either a heartbeat message not being received from the particular task before expiration of the heartbeat timer or the timeout timer expiring before the particular task completes execution; and transition from the current state to a next state in the state machine based at least on the particular task completing execution without either the heartbeat timer expiring or the timeout timer expiring. 2. The system of claim 1 , wherein the workflow service further comprises: a workflow handling service implemented by one or more computing devices and configured to: maintain workflow logs for respective workflows, wherein a workflow log logs the data flow object for the particular workflow with respect to different events, wherein different entries in the particular workflow log include different versions of the data flow object; and request a workflow decision for the particular workflow to determine a task to schedule. 3. The system of claim 2 , wherein the workflow service further comprises: a workflow evaluation service implemented by one or more computing devices and configured to: receive the request for the workflow decision for the particular workflow, wherein the request includes at least a portion of the particular workflow log for the particular workflow including at least a portion of the different versions of the data flow object; and a workflow definition interpreter implemented by one or more computing devices and configured to interpret the particular workflow definition to: perform the constructing of the state machine; use the workflow log for the particular workflow to transition the state machine to the current state; perform the determining of the particular task, the particular timeout specification, and the particular heartbeat specification; perform the execution of the particular task, set the heartbeat timer according to the heartbeat specification, and set the timeout timer according to the timeout specification; perform the transition from the current state to an error handling state; and perform transition from the current state to a next state in the state machine. 4. The system of claim 3 , wherein the workflow evaluation service is further configured to: send the workflow decision for the particular workflow to the workflow handling service, wherein the workflow decision specifies the one or more tasks defined for the current state; and the workflow handling service is further configured to: receive the workflow decision from the workflow evaluation service; log the workflow decision and the adjusted data flow object in the workflow log for the particular workflow; and schedule for execution the one or more tasks corresponding to the workflow decision. 5. The system of claim 1 , wherein the workflow service is further configured to: send, to a visualization service, a message indicating beginning execution of the particular task; receive the heartbeat message from the particular task and reset the heartbeat timer; and send, to the visualization service, a message indicating that the heartbeat message has been received from the particular task. 6. A method, comprising: performing, by one or more hardware processors: receiving a workflow definition for a workflow, wherein the workflow definition comprises statements according to a workflow definition language, wherein the statements are associated with states of the workflow, and wherein the statements include: a field specifying a task to be performed for the workflow; a separate field specifying a retry specification indicating information for retrying the task in response to an error; and a separate field specifying a catch specification indicating an error handling state transition for one or more errors; constructing a state machine for the workflow as defined in the workflow definition for the workflow; and executing the workflow according to the state machine, wherein the executing the workflow comprises: requesting execution of the task to be performed; determining that execution of the task has generated the error; retrying, according to the retry specification, execution of the task; determining that the retrying of the execution of the task has failed; and transitioning, according to the catch specification, to an error handling state. 7. The method of claim 6 , wherein the statements according to the workflow definition language further include fields specifying: a timeout specification for the task, and a heartbeat specification for the task; wherein the method further comprises: setting a heartbeat timer according to the heartbeat specification; setting a timeout timer according to the timeout specification; receiving one or more heartbeat messages from the task; and resetting the heartbeat timer in response to each received heartbeat message; and wherein the error indicates expiration of the heartbeat timer. 8. The method of claim 6 , wherein the statements according to the workflow definition language further include fields specifying: a timeout specification for the task, and a heartbeat specification for the task; wherein the method further comprises receiving one or more heartbeat messages from the task; and wherein the error indicates expiration of the timeout timer without an indication of the task completing successfully. 9. The method of claim 6 , wherein, in accordance with the workflow definition language, the workflow definition for the current state of the workflow includes the field specifying the retry field further includes: a specification of a list of error conditions; a specification of a retry interval; a specification of a backoff coefficient; a specification of a maximum retry interval; or a specification of maximum attempts. 10. The method of claim 9 , wherein the list of error conditions in the retry field includes an error condition for the error, and wherein the method further comprises: determining that the error condition has been set during execution of the task; matching the error condition from the determining of the error condition in the list of error conditions; and wherein the r
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36) · CPC title
within a central processing unit [CPU] · CPC title
Workflow analysis · CPC title
Sequencing of tasks or work · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.