You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Stephan Ewen (JIRA)" <ji...@apache.org> on 2018/09/18 19:11:00 UTC
[jira] [Commented] (FLINK-10352) Bind Task's URLClassLoader to
TaskExecutor's slot
[ https://issues.apache.org/jira/browse/FLINK-10352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16619601#comment-16619601 ]
Stephan Ewen commented on FLINK-10352:
--------------------------------------
This is sensitive core change and behavior breaking. This needs to have a design first.
Some issues that come immediately to mind to clarify first:
- This changes behavior of static variables across tasks and across re-executions, can hence break programs.
- Will the old model still be supported for applications that relied on that? What will the config switch be?
- How how do we deal with (unexpected but possible) different sets of libraries attached to tasks?
> Bind Task's URLClassLoader to TaskExecutor's slot
> -------------------------------------------------
>
> Key: FLINK-10352
> URL: https://issues.apache.org/jira/browse/FLINK-10352
> Project: Flink
> Issue Type: Improvement
> Components: Distributed Coordination
> Affects Versions: 1.5.3, 1.6.0, 1.7.0
> Reporter: Till Rohrmann
> Assignee: Jiayi Liao
> Priority: Major
> Fix For: 1.7.0
>
>
> The {{Task's}} {{URLClassLoader}} is used to dynamically load user code classes. The lifetime of this class loader is bound to the {{Task}} and, thus, it can happen that we generate multiple class loader for the same job if multiple {{Tasks}} are deployed to the same slot successively.
> We could avoid this situation by binding the lifetime of the {{URLClassLoader}} to the slot instead of the {{Task}}. The slot will only be released if the {{JobMaster}} no longer needs it. That way we won't potentially recreate the {{URLClassLoader}} for every submitted {{Task}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)