flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-4856) Add MapState for keyed streams
Date Tue, 21 Feb 2017 03:54:44 GMT

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

ASF GitHub Bot commented on FLINK-4856:

Github user shixiaogang commented on a diff in the pull request:

    --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/state/DefaultKeyedStateStore.java
    @@ -93,6 +95,18 @@ public DefaultKeyedStateStore(KeyedStateBackend<?> keyedStateBackend,
    +	@Override
    +	public <UK, UV> MapState<UK, UV> getMapState(MapStateDescriptor<UK, UV>
stateProperties) {
    +		requireNonNull(stateProperties, "The state properties must not be null");
    +		try {
    +			stateProperties.initializeSerializerUnlessSet(executionConfig);
    +			MapState<UK, UV> originalState = getPartitionedState(stateProperties);
    +			return new UserFacingMapState<>(originalState);
    +		} catch (Exception e) {
    +			throw new RuntimeException("Error while getting state", e);
    --- End diff --
    Currently, `KeyedStateStore#getState()` does not throw exception in its declaration. `RuntimeException`
is the only exception that can be thrown. Since the modification to the interface will affect
user code (users will have to deal with thrown exceptions), I am not sure it's okay to modify
the function declaration in `KeyedStateStore`.

> Add MapState for keyed streams
> ------------------------------
>                 Key: FLINK-4856
>                 URL: https://issues.apache.org/jira/browse/FLINK-4856
>             Project: Flink
>          Issue Type: New Feature
>          Components: DataStream API, State Backends, Checkpointing
>            Reporter: Xiaogang Shi
>            Assignee: Xiaogang Shi
> Many states in keyed streams are organized as key-value pairs. Currently, these states
are implemented by storing the entire map into a ValueState or a ListState. The implementation
however is very costly because all entries have to be serialized/deserialized when updating
a single entry. To improve the efficiency of these states, MapStates are urgently needed.

This message was sent by Atlassian JIRA

View raw message