[
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)