[
https://issues.apache.org/jira/browse/FLINK-4856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15876105#comment-15876105
]
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_r102225285
--- Diff:
flink-contrib/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBMapState.java
---
@@ -382,11 +342,26 @@ private UV deserializeUserValue(byte[] rawValueBytes)
{
this.rawValueBytes = rawValueBytes;
this.deleted = false;
}
-
+
+ public void remove() {
+ deleted = true;
+ rawValueBytes = null;
+
+ try {
+ db.remove(columnFamily, writeOptions,
rawKeyBytes);
+ } catch (RocksDBException e) {
+ throw new RuntimeException("Error while
removing data from RocksDB.", e);
--- End diff --
I modify the method signature because I find, except `ValueState`, the
methods in other states all throw `Exception`. I think it's okay because
`MapState` is a common interface which has no idea of the implementation. The
implementation of these methods, however, should throw some specific exception
like `IOException` or `RocksDBException`.
I think it's reasonable. What do you think?
> 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)