Ray Workflows provides strong fault tolerance and exactly-once execution semantics by checkpointing. However, checkpointing could be time consuming, especially when you have large inputs and outputs for workflow tasks. When exactly-once execution semantics is not required, you can skip some checkpoints to speed up your workflow.
Checkpoints can be skipped by specifying
import ray from ray import workflow @ray.remote def read_data(num: int): return [i for i in range(num)] data = read_data.options(**workflow.options(checkpoint=False)).bind(10)
This example skips checkpointing the output of
read_data. During recovery,
read_data would be executed again if recovery requires its output.
If the output of a task is another task (i.e., for dynamic workflows), we skip checkpointing the entire task.