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

Raju Bairishetti commented on HDFS-8578:
----------------------------------------

bq. Sequential processing of volumes in prod clusters  \\ |Cluster  ||  number 
of blocks/links||        Upgrade time || Disk health|| \\ |testCluster1  
|296472 |20 mins |      good | \\  .... 

Posted these metrics  as we are seeing huge difference in processing times of 
volumes across clusters. *These metrics are not related to patch as the above 
benchmarking was done without patch*.

bq. *performance metrics with the patch:* \\ ||Node     ||Number of blocks or 
links     ||Single volume time    total time for processing all volumes   
||Processing mechanism|| \\ |node1      |1.326278 million       |75 secs        
|75 secs |      parallel | \\ |node2    |1.325818 million       |60 secs        
|342 secs       |sequential

 Datanode is expecting higher heap memory(Xmx) to process volumes in parallel.

[~vinayrpet] Can we introduce a new config which will tell how many number of 
volumes can be processed in parallel (i.e. thread pool size)? If the config 
value is one then it processes all the volumes in sequential.


> On upgrade, Datanode should process all storage/data dirs in parallel
> ---------------------------------------------------------------------
>
>                 Key: HDFS-8578
>                 URL: https://issues.apache.org/jira/browse/HDFS-8578
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: datanode
>            Reporter: Raju Bairishetti
>            Priority: Critical
>         Attachments: HDFS-8578-01.patch, HDFS-8578-02.patch, 
> HDFS-8578-branch-2.6.0.patch
>
>
> Right now, during upgrades datanode is processing all the storage dirs 
> sequentially. Assume it takes ~20 mins to process a single storage dir then  
> datanode which has ~10 disks will take around 3hours to come up.
> *BlockPoolSliceStorage.java*
> {code}
>    for (int idx = 0; idx < getNumStorageDirs(); idx++) {
>       doTransition(datanode, getStorageDir(idx), nsInfo, startOpt);
>       assert getCTime() == nsInfo.getCTime() 
>           : "Data-node and name-node CTimes must be the same.";
>     }
> {code}
> It would save lots of time during major upgrades if datanode process all 
> storagedirs/disks parallelly.
> Can we make datanode to process all storage dirs parallelly?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to