apache/incubator-flink — pull request #122 by StephanEwen (2014-09-17 03:32:35+00:00)
Title: Major Rework of JobManager scheduling classes

The new design separates scheduler, instance manager, and execution graph cleanly.
- Job graphs can be incrementally constructed
- The execution graph is a slim asynchronous state machine
- The scheduler picks instances and slots on demand and uses sharing groups / co-location constraints to implement resource sharing and co location
- The management graph is removed, timestamps for state transitions are attached to the execution graph

This pull request fixes also the following issues

- FLINK-1094 (simplify input split assignment)
- FLINK-1030 (Cleanly separate the Instance Management and Resource Assignment)
- FLINK-1029 (Attach slot information to scheduling/assignment information in Scheduler)
- FLINK-989 (improve not enough slots SchedulingException message)
- FLINK-897 (Bug in scheduler for job graph instance sharing)
- FLINK-820 (Support for unconnected data flows - runtime parts)
- FLINK-625 (Add a fail(Exception) method to the job graph, to report problems detected in RPC calls)
- FLINK-230 (Job Cancellation does not work properly: "Cannot find execution graph to job ID")
- FLINK-165 (rework Nephele Task Hierarchy)
- FLINK-79 (Startup time of jobs)
- FLINK-15 (Rework Nephele Execution Graph State Machine)
- FLINK-13 (Bug in Nephele Scheduler)