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

Reply via email to