[ 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: https://github.com/apache/flink/pull/3336#discussion_r102128355 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/state/DefaultKeyedStateStore.java --- @@ -93,6 +95,18 @@ public DefaultKeyedStateStore(KeyedStateBackend<?> keyedStateBackend, ExecutionC } } + @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 (v6.3.15#6346)