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

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

azagrebin commented on a change in pull request #6777: [FLINK-10461] [State 
Backends, Checkpointing] Speed up download files when restore from DFS
URL: https://github.com/apache/flink/pull/6777#discussion_r228964472
 
 

 ##########
 File path: 
flink-state-backends/flink-statebackend-rocksdb/src/main/java/org/apache/flink/contrib/streaming/state/RocksDBStateBackend.java
 ##########
 @@ -235,9 +238,10 @@ public RocksDBStateBackend(StateBackend 
checkpointStreamBackend) {
         * @param checkpointStreamBackend The backend write the checkpoint 
streams to.
         * @param enableIncrementalCheckpointing True if incremental 
checkpointing is enabled.
         */
-       public RocksDBStateBackend(StateBackend checkpointStreamBackend, 
TernaryBoolean enableIncrementalCheckpointing) {
+       public RocksDBStateBackend(StateBackend checkpointStreamBackend, 
TernaryBoolean enableIncrementalCheckpointing, int restoreThreadNum) {
 
 Review comment:
   I would also leave the previous method without restoreThreadNum:
   ```
   public RocksDBStateBackend(StateBackend checkpointStreamBackend, 
TernaryBoolean enableIncrementalCheckpointing) {
       this(checkpointStreamBackend, enableIncrementalCheckpointing, -1);
   }
   ```
   this way we do not break existing code, including other methods here, like 
this modification which is not needed then and other similar ones:
   ```
   public RocksDBStateBackend(StateBackend checkpointStreamBackend) {
                this(checkpointStreamBackend, TernaryBoolean.UNDEFINED, 1);
        }
   ```
   
   and I would rather keep it undefined here, e.g. `-1`, similar to 
`TernaryBoolean.UNDEFINED` for `enableIncrementalCheckpointing`. It can be 
resolved then in `private RocksDBStateBackend(RocksDBStateBackend original, 
Configuration config)` and `getRestoreThreadNum`.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Speed up download file procedure when restore 
> ----------------------------------------------
>
>                 Key: FLINK-10461
>                 URL: https://issues.apache.org/jira/browse/FLINK-10461
>             Project: Flink
>          Issue Type: Improvement
>          Components: State Backends, Checkpointing
>            Reporter: Congxian Qiu
>            Assignee: Congxian Qiu
>            Priority: Major
>              Labels: pull-request-available
>
> In the current master branch, the restore will download file from DFS, the 
> download procedure are single-thread, this could speed up by using 
> multi-thread for downloading states from DFS.
>  
> In my company, the states will come to some terabytes, so the restore 
> procedure will become a litter slow, after a bit digging, I find download 
> states from DFS using single thread, this could using multi-thread for speed 
> up.
> I test the time used for download states from DFS with ~2 terabytes states. 
> With single thread it used 640+s, and 130+s when using 5 threads for download.



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

Reply via email to