Durable Future Workflow Recovery After Process Crashes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computer programs implementing multi-step processes face challenges in resuming execution after a crash, leading to potential errors and inefficiencies due to unknown workflow states.
Innovation Solution
Utilizing a durable future with an assigned identifier to represent the workflow state, allowing for the resumption of operations after a crash by retrieving and utilizing the stored state to continue execution without re-executing completed tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional programming models are used to execute multi-step processes, then the system can implement workflows, but the execution cannot be reliably resumed after a crash due to unknown workflow states
Solution Approach 1:
The patent applies preliminary action by creating and storing a durable future object that captures the workflow state before execution occurs. This durable future includes an identifier and state information that are persisted to storage, allowing the system to prepare for potential crashes in advance. When a crash occurs, this pre-prepared state information enables reliable resumption without losing workflow progress.
2Reliability
If the system re-executes operations after a crash to ensure correctness, then reliability improves, but resource consumption and execution time increase
Solution Approach 1:
The patent implements feedback by storing the workflow state in the durable future object and using this stored state to determine what operations have already been executed. When resuming after a crash, the system queries the durable future to get feedback on the current state, allowing it to skip already-executed operations and only re-execute failed ones, thus maintaining correctness while improving efficiency.
Solution Approach 2:
The patent applies partial action by executing only the necessary portion of operations after a crash rather than re-executing the entire workflow. The durable future state information allows the system to identify exactly which operations need to be re-executed, performing only the partial action required to complete the workflow correctly without the excessive overhead of full re-execution.
3Reliability
If the system stores detailed workflow state information to enable resumption, then execution can be resumed accurately, but device complexity increases
Solution Approach 1:
The patent uses an intermediary approach by introducing the durable future object as a mediator between the workflow execution and the storage system. This durable future object encapsulates the workflow state information and provides a standardized interface for saving and retrieving state. The intermediary simplifies the overall system structure by centralizing state management in a single object rather than requiring complex distributed state tracking across multiple components.
Data Source
AI summary
Techniques are described herein that are capable of using a durable future to resume execution of an operation after a process that includes the operation crashes. A durable future, which is a proxy for a state of a workflow, is generated. An identifier that identifies the durable future is assigned, and a state of the durable future is stored in a store. The state of the durable future specifies a portion of the state of the workflow that is known. It is detected that the execution of the operation in the process, which implements at least a portion of the workflow, is discontinued as a result of a crash of the process. After the crash of the process, the state of the durable future is retrieved from the store using the identifier, and the execution of the operation is resumed using the state of the durable future.


