GitHub user NicoK opened a pull request:

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

    [FLINK-7748][network] properly use the TaskEventDispatcher for subscribing 
to events

    ## What is the purpose of the change
    
    `ResultPartitionWriter` currently implements the `EventListener` interface 
and is used for event registration, although event publishing is already 
handled via the `TaskEventDispatcher`.
    Instead of using two different places, this should be unified by using 
`TaskEventDispatcher` only which is done by this PR.
    
    Please note that this PR builds upon #4759.
    
    ## Brief change log
    
    - make `TaskEventDispatcher` more generic to register result partitions via 
`ResultPartitionID` with one `TaskEventHandler` per partition (handled by 
`TaskEventDispatcher`, not inside `ResultPartitionWriter`)
    - remove the `EventListener<TaskEvent>` implementation from 
`ResultPartitionWriter`
    - add the `TaskEventDispatcher` to the `Environment` information for a task 
to be able to work with it (only `IterationHeadTask` is using this as of now)
    - adapt all places to use `TaskEventDispatcher` instead of 
`ResultPartitionWriter`
    
    ## Verifying this change
    
    This change added tests and can be verified as follows:
    
    - a new `TaskEventDispatcherTest` verifies that `TaskEventDispatcher` works 
as expected
    - indirectly, tests under `org.apache.flink.runtime.iterative` may verify 
the use of the `IterationHeadTask` which is the only user so far
    
    ## 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: (no)
    
    ## Documentation
    
      - Does this pull request introduce a new feature? (no)
      - If yes, how is the feature documented? (JavaDocs)
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/NicoK/flink flink-7748

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

    https://github.com/apache/flink/pull/4761.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 #4761
    
----
commit d0cf483e0fb21010ed996935ffb14d62b34ee8ed
Author: Nico Kruber <n...@data-artisans.com>
Date:   2017-08-29T15:32:52Z

    [FLINK-7746][network] move ResultPartitionWriter#writeBufferToAllChannels 
implementation up into ResultPartition

commit cfea094aa214612eaafef14554bc68626a6ff948
Author: Nico Kruber <n...@data-artisans.com>
Date:   2017-08-29T16:24:00Z

    [FLINK-7748][network] properly use the TaskEventDispatcher for subscribing 
to events
    
    Previously, the ResultPartitionWriter implemented the EventListener 
interface
    and was used for event registration, although event publishing was already
    handled via the TaskEventDispatcher. Now, we use the TaskEventDispatcher for
    both, event registration and publishing.
    
    It also adds the TaskEventDispatcher to the Environment information for a 
task
    to be able to work with it (only IterationHeadTask so far).

----


---

Reply via email to