Skip to content
/ IcedTea Public
forked from Texera/texera

Efficient and Responsive Time-Travel Debugging in Dataflow Systems

License

Notifications You must be signed in to change notification settings

Texera/IcedTea

 
 

Repository files navigation

IcedTea - Efficient and Responsive Time-Travel Debugging in Dataflow Systems.

This repo is an implementation of IcedTea built on top of an open-source data processing platform, Texera.

Prerequisites:

  1. Java 11
  2. Node JS LTS version
  3. SBT
  4. Yarn

You can follow this guide to install all the requirements.

To run the project:

First, install frontend packages by running this command in bash:

core/scripts/build.sh

Then, start both frontend and backend by running this command:

core/scripts/deploy-daemon.sh

Instructions for Using the Time-Travel Feature

1. Upload a Workflow

Before using the time-travel feature, you need to create or upload a workflow. To get started, I’ve included 5 sample workflows (Q1.json - Q5.json) used in the user study, which you can find in this repository.

  • Step 1: Click the Upload button on the platform to upload one of the sample workflows.
截屏2024-09-28 上午1 02 29

2. Set an Operator as "Interesting"

Once the workflow is uploaded, open it in the Workflow Editor.

  • Step 2: Right-click on any operator in the workflow and choose Set as InterestingOperator to mark it for further monitoring.
截屏2024-09-28 上午1 11 25

3. Run the Workflow

After selecting the "Interesting" operator, you can run the workflow.

  • Step 3: Click the Run button at the top-right of the editor to start the execution.

  • Optional: Enable Auto-Interaction by checking the box next to the run button. You can also adjust the interval for the auto-interaction.

截屏2024-09-28 上午12 57 52

4. Pause and Interact with the Workflow

If you are manually interacting with the workflow during execution, you can pause it to explore a snapshot of the operator’s state.

  • Step 4: Click the Pause button to view a tuple-consistent state. Then, click the Interaction button to remember the current state so you can return to it later using the time-travel feature.
截屏2024-09-28 上午12 59 23

5. Use the Time-Travel Feature

After the workflow execution finishes, you can access the time-travel feature to revert the workflow to any previous state with an interaction.

  • Step 5: In the left panel, click the Clock button to open the time-travel feature.

  • Step 6: You will see a list of past executions. Select an execution with interactions and click the interaction to revert the workflow back to that state.

截屏2024-09-28 上午12 58 41

6. Resume and Step Through the Workflow

After reverting the workflow to the chosen interaction point, you can resume stepping through it.

  • Step 7: Right-click an operator and choose Step to take the next action in the workflow.
截屏2024-09-28 上午12 59 00

Demo Video

2024-09-28.1.15.03.mov

About

Efficient and Responsive Time-Travel Debugging in Dataflow Systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 52.6%
  • TypeScript 29.7%
  • Java 6.6%
  • Python 6.4%
  • HTML 3.5%
  • SCSS 0.8%
  • Other 0.4%