TimelyDataflow/timely-dataflow

Feedback edges with zero summary

Closed this issue · 2 comments

Adapting Megaphone, branch event_driven to event-driven timely, we need a scheduling-aware back-edge to express to timely's scheduling when a migration can be performed. I think an obvious choice is to use the Feedback operator, but that doesn't work with zero summaries:

thread 'worker thread 0' panicked at 'Cannot use default summary for a loop variable', /home/moritz/.cargo/git/checkouts/timely-dataflow-4c0cc365061cd263/ca40906/src/dataflow/operators/feedback.rs:74:13

I guess the requirement for a non-zero summary is to prevent feedback edges that block the computation. However, here we explicitly block progress from the feedback edge to propagate anywhere else. Is the solution to get rid of the check in feedback.rs:74?

This sounds like a great idea! A related thing I should do is to add to reachability_neu.rs a cycle detector, so at the time you build your graph it can report whether you've installed what appears to be a non-incrementing cycle.

Not sure what to do if you do this, but that is probably the right place to detect and report it.

This has been implemented in #231.