flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Till Rohrmann (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-5982) Refactor AbstractInvokable and StatefulTask
Date Tue, 28 Mar 2017 12:44:41 GMT

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

Till Rohrmann commented on FLINK-5982:

Alright, this sounds good to me :-)

> 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.
> #* Drop {{StatefulTask}} and assume all subclasses of {{AbstractInvokable}} are stateful.
> #* Remove {{setEnvironment(env)}} and {{setInitialState(state)}}. Make {{AbstractInvokable}}
have a two argument constructor with {{Environment}} and {{TaskStateHandles}}.
> # Update all subclass
> #* Make all subclass of {{AbstractInvokable}} have a two argument constructor and call
the constructor in {{AbstractInvokable}}.
> #* Throw an error in {{BatchTask}} if the initial state is not null. (This will be removed
after {{BatchTask}} have been stateful.)
> # Change the creation of the invokable to call that constructor, update all the tests.
> Then, we can simplify the logic to run an invokable by using constructor and {{invoke()}}.
The eager initialization can easily be placed in the constructor to fulfill the requirement
such as FLINK-4714.

This message was sent by Atlassian JIRA

View raw message