You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Wei-Che Wei (JIRA)" <ji...@apache.org> on 2017/03/07 12:37:37 UTC
[jira] [Commented] (FLINK-5982) Refactor AbstractInvokable and
StatefulTask
[ https://issues.apache.org/jira/browse/FLINK-5982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899368#comment-15899368 ]
Wei-Che Wei commented on FLINK-5982:
------------------------------------
FYI [~StephanEwen], [~till.rohrmann]
Please let me know if you have any suggestions.
> Refactor AbstractInvokable and StatefulTask
> -------------------------------------------
>
> Key: FLINK-5982
> URL: https://issues.apache.org/jira/browse/FLINK-5982
> Project: Flink
> Issue Type: Improvement
> Components: Distributed Coordination, State Backends, Checkpointing
> Affects Versions: 1.2.0
> Reporter: Wei-Che Wei
> Assignee: Wei-Che Wei
>
> Currently, running a invokable in {{Task}} needs to call {{setEnvironment(env)}} and {{invoke()}}. If the invokable is also a {{StatefulTask}}, it need to call {{setInitialState(state)}}. That makes the difficulty in doing the eager initialization on invokable during {{DEPLOYING}} state. One solution discussed in FLINK-4714 is to separate {{invoke()}} into {{open()}} and {{invoke()}}, but that makes the complexity for running it in {{Task}}.
> This task wants to refactor {{AbstractInvokable}} and {{StatefulTask}} to make it easier to construct and run an invokable.
> # Refactor abstract class to have one default constructor.
> #* Remove {{setEnvironment(env)}} and change {{AbstractInvokable}} to have one argument constructor with {{Environment}}.
> #* Remove {{setInitialState}} and create a new abstract class {{AbstractStatefulInvokable}} to inherit {{AbstractInvokable}} and implement {{StatefulTask}}. Make {{AbstractStatefulInvokable}} have a two argument constructor with {{Environment}} and {{TaskStateHandles}}.
> # Update all subclass
> #* Make all subclass of only {{AbstractInvokable}} have an one argument constructor and call the constructor in {{AbstractInvokable}}.
> #* Make all subclass of {{AbstractInvokable}} and {{StatefulTask}} to inherit {{AbstractStatefulInvokable}} and have two two argument constructor.
> # Change the creation of the invokables to call that constructor, update all the tests
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)