On 22 Jan 2015, at 18:10, Stephan Ewen <se...@apache.org> wrote:

> So the crux is that the JobManager has a location for the sender task (and
> tell that to the receivers) before the senders have registered their
> transfer queues.
> 
> Can we just establish a "happens-before" there?
> - The TaskManager may send the "ack" to the deployment call only after all
> queues are registered (might even be like this now)
> - The job manager updates receivers only with locations of senders that
> have switched to "running", not with ones that are in "deploying.
> 
> Would that fix it?

I've just looked into it and it turns out that I had already implemented this 
in the current master. As long as the producer has not changed to RUNNING, the 
consumer will be scheduled with an UNKNOWN input channel. The problem that Till 
mentioned was specific to the test case where it was hard coded to a local 
input channel.

@Gyula: I've implemented the schedule mode as suggested by Stephan here: 
https://github.com/uce/incubator-flink/tree/schedule-all

You can set the schedule mode with

jobGraph.setScheduleMode(ScheduleMode.ALL)

I have just tested it with a small test case in JobMangerITCase. If you have 
time, you could try it out with some of the streaming programs. If this is what 
you need, I can open a PR later. :)

Reply via email to