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

ASF GitHub Bot commented on FLINK-8790:
---------------------------------------

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

    https://github.com/apache/flink/pull/5582#discussion_r192329562
  
    --- Diff: 
flink-state-backends/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBKeyedStateBackend.java
 ---
    @@ -795,20 +806,241 @@ private void restoreInstance(
                }
     
                /**
    -            * Recovery from local incremental state.
    +            * Recovery from multi incremental states.
    +            * In case of rescaling, this method creates a temporary 
RocksDB instance for a key-groups shard. All contents
    +            * from the temporary instance are copied into the real restore 
instance and then the temporary instance is
    +            * discarded.
                 */
    -           private void restoreInstance(IncrementalLocalKeyedStateHandle 
localKeyedStateHandle) throws Exception {
    +           void restoreFromMultiHandles(Collection<KeyedStateHandle> 
restoreStateHandles) throws Exception {
    +
    +                   KeyGroupRange targetKeyGroupRange = 
stateBackend.keyGroupRange;
    +
    +                   chooseTheBestStateHandleToInit(restoreStateHandles, 
targetKeyGroupRange);
    +
    +                   int targetStartKeyGroup = 
stateBackend.getKeyGroupRange().getStartKeyGroup();
    +                   byte[] targetStartKeyGroupPrefixBytes = new 
byte[stateBackend.keyGroupPrefixBytes];
    --- End diff --
    
    I think this array is not used anymore after we write to it.


> Improve performance for recovery from incremental checkpoint
> ------------------------------------------------------------
>
>                 Key: FLINK-8790
>                 URL: https://issues.apache.org/jira/browse/FLINK-8790
>             Project: Flink
>          Issue Type: Improvement
>          Components: State Backends, Checkpointing
>    Affects Versions: 1.5.0
>            Reporter: Sihua Zhou
>            Assignee: Sihua Zhou
>            Priority: Major
>             Fix For: 1.6.0
>
>
> When there are multi state handle to be restored, we can improve the 
> performance as follow:
> 1. Choose the best state handle to init the target db
> 2. Use the other state handles to create temp db, and clip the db according 
> to the target key group range (via rocksdb.deleteRange()), this can help use 
> get rid of the `key group check` in 
>  `data insertion loop` and also help us get rid of traversing the useless 
> record.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to