[ 
https://issues.apache.org/jira/browse/FLINK-4456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15464799#comment-15464799
 ] 

ASF GitHub Bot commented on FLINK-4456:
---------------------------------------

Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2456#discussion_r77508870
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/jobgraph/tasks/InputSplitProvider.java
 ---
    @@ -35,4 +35,16 @@
         *         task shall not consume any further input splits.
         */
        InputSplit getNextInputSplit();
    +
    +   /**
    +    * Starts the input split provider with a user code class loader.
    +    *
    +    * @param userCodeClassLoader User code class loader to use by the 
input split provider
    +    */
    +   void start(ClassLoader userCodeClassLoader);
    --- End diff --
    
    The `start` method's intention is to pass in the `userCodeClassLoader` 
which is currently created in `Task#run` method. There are two other ways to 
solve the problem. Either creating the user code class loader outside of `Task` 
where the `InputSplitProvider` is created or to pass the user code class loader 
via the `getNextInputSplit` method call to the input split provider.
    
    For the first approach: Creating the user code class loader is a blocking 
operation, so this would have to executed in a future and upon completion we 
could create the `Task` instance in the `TaskManager`.
    
    
    For the second approach: We would have to touch more code but I think 
everywhere were the `getNextInputSplit` method is called, we have access to the 
user code class loader.



> Replace ActorGateway in Task by interface
> -----------------------------------------
>
>                 Key: FLINK-4456
>                 URL: https://issues.apache.org/jira/browse/FLINK-4456
>             Project: Flink
>          Issue Type: Improvement
>          Components: TaskManager
>            Reporter: Till Rohrmann
>            Assignee: Till Rohrmann
>
> The {{Task}} communicates with the outside world ({{JobManager}} and 
> {{TaskManager}}) via {{ActorGateways}}. This bakes in the dependency on 
> actors.
> In terms of modularization and an improved abstraction (especially wrt 
> Flip-6) I propose to replace the {{ActorGateways}} by interfaces which 
> exposes the required methods. The current implementation would then simply 
> wrap the method calls in messages and send them via the {{ActorGateway}} to 
> the recipient.
> In Flip-6 the {{JobMaster}} could simply implement these interfaces as part 
> of their RPC contract.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to