flink-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wei-Che Wei (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLINK-5982) Refactor AbstractInvokable and StatefulTask
Date Tue, 07 Mar 2017 12:28:37 GMT
Wei-Che Wei created FLINK-5982:

             Summary: 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

View raw message