GitHub user tillrohrmann opened a pull request:

    https://github.com/apache/flink/pull/5089

    [FLINK-8088] Associate logical slots with the slot request id

    ## What is the purpose of the change
    
    Before, logical slots like the `SimpleSlot` and `SharedSlot` where 
associated to the
    actually allocated slot via the `AllocationID`. This, however, was 
sub-optimal because
    allocated slots can be re-used to fulfill also other slot requests (logical 
slots).
    Therefore, we should bind the logical slots to the right id with the right 
lifecycle
    which is the `SlotRequestID`.
    
    This PR is based on #5088.
    
    ## Brief change log
    
    - Introduce `SlotRequestID`
    - Associate logical slot requests with `SlotRequestID` which is valid over 
the lifetime of a logical slot
    
    ## 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 slotAssociation

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/5089.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 #5089
    
----
commit d30dde83548dbeff4249f3b57b67cdb6247af510
Author: Till Rohrmann <[email protected]>
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 <[email protected]>
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.

commit 84d86bebe2f9f8395430e7c71dd2393ba117b44f
Author: Till Rohrmann <[email protected]>
Date:   2017-11-24T17:03:49Z

    [FLINK-8087] Decouple Slot from AllocatedSlot
    
    This commit introduces the SlotContext which is an abstraction for the 
SimpleSlot
    to obtain the relevant slot information to do the communication with the
    TaskManager without relying on the AllocatedSlot which is now only used by 
the
    SlotPool.

commit 80a3cc848a0c724a2bc09b1b967cc9e6ccec5942
Author: Till Rohrmann <[email protected]>
Date:   2017-11-24T17:06:10Z

    [FLINK-8088] Associate logical slots with the slot request id
    
    Before logical slots like the SimpleSlot and SharedSlot where associated to 
the
    actually allocated slot via the AllocationID. This, however, was 
sub-optimal because
    allocated slots can be re-used to fulfill also other slot requests (logical 
slots).
    Therefore, we should bind the logical slots to the right id with the right 
lifecycle
    which is the slot request id.

----


---

Reply via email to