[ 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)