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

Xiaogang Shi commented on FLINK-5590:
-------------------------------------

[~StephanEwen], do you have any ideas of the solution?
I think {{KvState}} already provides some needed internal methods. Maybe we can 
extend it to create the internal state hierarchy?

> Create a proper internal state hierarchy
> ----------------------------------------
>
>                 Key: FLINK-5590
>                 URL: https://issues.apache.org/jira/browse/FLINK-5590
>             Project: Flink
>          Issue Type: Improvement
>          Components: State Backends, Checkpointing
>    Affects Versions: 1.2.0
>            Reporter: Stephan Ewen
>            Assignee: Stephan Ewen
>             Fix For: 1.3.0
>
>
> Currently, the state interfaces (like {{ListState}}, {{ValueState}}, 
> {{ReducingState}}) are very sparse and contain only methods exposed to the 
> users. That makes sense to keep the public stable API minimal
> At the same time, the runtime needs more methods for its internal interaction 
> with state, such as:
>   - setting namespaces
>   - accessing raw values
>   - merging namespaces
> These are currently realized by re-creating or re-obtaining the state objects 
> from the KeyedStateBackend. That method causes quite an overhead for each 
> access to the state
> The KeyedStateBackend tries to do some tricks to reduce that overhead, but 
> does it only partially and induces other overhead in the course.
> The root cause of all these issues is a problem in the design: There is no 
> proper "internal state abstraction" in a similar way as there is an external 
> state abstraction (the public state API).
> We should add a similar hierarchy of states for the internal methods. It 
> would look like in the example below:
> {code}
>  *             State
>  *               |
>  *               +-------------------InternalKvState
>  *               |                         |
>  *          MergingState                   |
>  *               |                         |
>  *               +-----------------InternalMergingState
>  *               |                         |
>  *      +--------+------+                  |
>  *      |               |                  |
>  * ReducingState    ListState        +-----+-----------------+
>  *      |               |            |                       |
>  *      +-----------+   +-----------   -----------------InternalListState
>  *                  |                |
>  *                  +---------InternalReducingState
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to