Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TASK]: Improvements on workflow status tracking #2579

Open
mwdchang opened this issue Jan 24, 2024 · 0 comments
Open

[TASK]: Improvements on workflow status tracking #2579

mwdchang opened this issue Jan 24, 2024 · 0 comments
Assignees
Labels
task Development task

Comments

@mwdchang
Copy link
Member

mwdchang commented Jan 24, 2024

This relates to several issues raised in: #2580

Summary

Currently in workflow, each operator tracks its own run status, for example:

  • A simulator node runs a long simulation, it is responsible for polling and updating its own state

This works, but however it means in the higher level graph view we don't really have a good sense of progress, and we will not see updates until we go into the drilldown view to complete the pending transactions.

We should brainstorm a few ideas of how we can accomplish this, and provide some estimate of the effort needed.

Food for thoughts:

  • Currently we have a polling mechanism for checking progress, we should try to keep the implementation agnostic so we can move to use MQ/SSE if needed
  • We probably want to have different update/polling frequencies in the graph-view vs drilldown view
  • Because the drilldown-view is not a separate page but an extension of the graph-view, we want to avoid double updates or race conditions, or at least, we want to keep the state/output consistent.

Thoughts - DC

Initially the operators were created with the idea of having to define a run() method, that will completely incapsulate the logic needed to produce an output. We may want to see if we can revisit similar ideas, and make these type of methods available in both the graph-view and the drilldown-view. For example, maybe in the graph-view we would have something like (pseudo code):

set_interval(4000):
  for pending_task in extract_pending_task(workflow):
    get_operator(pending_task).run(pending_task.input, pending_task.state);

and within the drilldown

get_operator(node).run(node.input, node.state);

CC @YohannParis @liunelson

@mwdchang mwdchang added the task Development task label Jan 24, 2024
@mwdchang mwdchang assigned mwdchang and Tom-Szendrey and unassigned mwdchang Jan 24, 2024
@mwdchang mwdchang changed the title [TASK]: Workflow status tracking [TASK]: Improvements on workflow status tracking Jan 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Development task
Projects
None yet
Development

No branches or pull requests

2 participants