[
https://issues.apache.org/jira/browse/HDFS-8578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14619884#comment-14619884
]
Raju Bairishetti commented on HDFS-8578:
----------------------------------------
Attaching a patch which works with 2.6.0 branch and adding results.
We are seeing a a huge diff in upgrade times of datanode on various clusters.
*Sequential processing of volumes in prod clusters*
||Cluster|| number of blocks/links|| Upgrade time| Disk health|
|testCluster1 || 296472 | 20 mins| good|
||testCluster1 || 295768 | 1hr 4 mins| bad |
||testCluster2 || 70793 | 55 secs | good|
||testCluster2 || 388245 | 8 mins | good|
|| devCluster || 160606 | 2 secs| good|
||stagingCluster1 || 1.325818 million| 60 secs | good|
Note: Assuming disk is good if we don't see any errors in *dmesg* output.
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|
> 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
>
>
> 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)