GitHub user tillrohrmann opened a pull request: https://github.com/apache/flink/pull/5087
[FLINK-8085] Thin out LogicalSlot interface ## What is the purpose of the change Remove isCanceled, isReleased method and decouple logical slot from Execution by introducing a Payload interface which is set for a LogicalSlot. The Payload interface is implemented by the Execution and allows to fail an implementation and obtaining a termination future. Introduce proper Execution#releaseFuture which is completed once the Execution's assigned resource has been released. This PR is based on #5086. ## Brief change log - Remove unnecessary methods from `LogicalSlot` interface - Introduce abstraction for logical slot payload - Let `Execution` implement `LogicalSlot.Payload` ## Verifying this change This change added tests and can be verified as follows: - Added `ExecutionTest#testTerminationFutureIsCompletedAfterSlotRelease` to check that the returned termination future of the `ExecutionVertex#cancel` is completed after the assigned resource has been released. ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (no) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no) - The serializers: (no) - The runtime per-record code paths (performance sensitive): (no) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes) - The S3 file system connector: (no) ## Documentation - Does this pull request introduce a new feature? (no) - If yes, how is the feature documented? (not applicable) CC: @GJL You can merge this pull request into a Git repository by running: $ git pull https://github.com/tillrohrmann/flink thinoutLogicalSlot Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5087.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5087 ---- commit d30dde83548dbeff4249f3b57b67cdb6247af510 Author: Till Rohrmann <trohrm...@apache.org> Date: 2017-11-14T22:50:52Z [FLINK-8078] Introduce LogicalSlot interface The LogicalSlot interface decouples the task deployment from the actual slot implementation which at the moment is Slot, SimpleSlot and SharedSlot. This is a helpful step to introduce a different slot implementation for Flip-6. commit e5da9566a6fc8a36ac8b06bae911c0dff5554e5d Author: Till Rohrmann <trohrm...@apache.org> Date: 2017-11-15T13:20:27Z [FLINK-8085] Thin out LogicalSlot interface Remove isCanceled, isReleased method and decouple logical slot from Execution by introducing a Payload interface which is set for a LogicalSlot. The Payload interface is implemented by the Execution and allows to fail an implementation and obtaining a termination future. Introduce proper Execution#releaseFuture which is completed once the Execution's assigned resource has been released. ---- ---