question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

proposal: decouple pipeline runner/executor from repro?

See original GitHub issue

We should decouple Pipeline management/runner/scheduler/executor stuff from the Repo which resides on repro. It currently collects stages, builds a DAG, and then schedules the stage/task to run, and then runs them. The running part, which involves removing dependencies and outputs, checking some dependencies and outputs and running the command, and then saving the outputs later is all handled in the Stage.

Honestly, to me, running yourself, as in Stage executing itself does not really make sense. It feels like this could be part of the Pipeline management thing itself.

Why decouple?

  1. Events that we are discussing might make it difficult to hook into this, without a separate abstraction.
  2. exp run calls dvc repro internally, which is a porcelain command, which feels like a hack. Sharing a common codebase between exp run and dvc repro is better than one using the other, as this will help us change UI output for both easily without affecting one another.
  3. We might be able to separate UI output messages from data management commands. This might force us to really separate this with yet another abstraction for data management commands.
  4. Decoupling is always a good thing?

This might also open us a few opportunities to:

  1. Run stages concurrently?
  2. Provide hooks for runners rather than using env variables and signal files? I guess this is a “nice to have” thing.
  3. Provide ways to handle outputs from the stage commands intelligently (as in, we might be able to suppress outputs from commands if required or place them in files, show them only when command errors out, etc.) and interactively.
  4. Handle runtime contexts easily.

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:3
  • Comments:8 (1 by maintainers)

github_iconTop GitHub Comments

2reactions
pmrowlacommented, Jul 27, 2021

@RomanSteinberg this discussion is regarding DVC code organization/modularity. The suggested changes would not affect any existing DVC commands from the user perspective

1reaction
karajan1001commented, Jul 26, 2021

We have a stage executor experiments executor and maybe sometime later a remote executor. Any possibilities to merge them ?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Decoupled Pipelines: Rationale, Analysis, and Evaluation
Abstract. This paper analyzes the potential of asynchronous, decoupled pipelines from an architectural viewpoint. Previous work in this area has been ...
Read more >
Decoupling Policies: Options to Encourage Energy Efficiency ...
A well-designed decoupling plan helps keep utility profits steady and customers' energy costs in check—and it removes the disincentive for utilities to promote....
Read more >
3 carbon capture pipelines proposed in Iowa
Three companies have proposed building multibillion-dollar pipelines across Iowa to move carbon dioxide so it can be sequestered deep ...
Read more >
Joint European action for more affordable, secure energy
The European Commission has today proposed an outline of a plan to make ... via higher Liquefied Natural Gas (LNG) and pipeline imports...
Read more >
EU's top executive backs price cap on Russian pipeline gas
... that the bloc's electricity market “is no longer operating” amid the Ukraine war, and proposed a price cap on Russian pipeline gas....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found