hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raju Bairishetti (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-8578) On upgrade, Datanode should process all storage/data dirs in parallel
Date Thu, 09 Jul 2015 04:50:05 GMT

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

Mime
View raw message