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

dhruba borthakur commented on HDFS-1366:
----------------------------------------

{code}

"main" prio=10 tid=0x0000000040114800 nid=0x3f15 runnable [0x000000004022a000]
   java.lang.Thread.State: RUNNABLE
        at 
org.apache.hadoop.hdfs.server.namenode.BlocksMap$BlockInfo.getNext(BlocksMap.java:277)
        at 
org.apache.hadoop.hdfs.util.LightWeightGSet.get(LightWeightGSet.java:121)
        at 
org.apache.hadoop.hdfs.server.namenode.BlocksMap.checkBlockInfo(BlocksMap.java:353)
        at 
org.apache.hadoop.hdfs.server.namenode.BlocksMap.addINode(BlocksMap.java:370)
        at 
org.apache.hadoop.hdfs.server.namenode.FSDirectory.addToParent(FSDirectory.java:319)
        at 
org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:956)
        at 
org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:813)
        at 
org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:370)
        at 
org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:141)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:328)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:305)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:254)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:332)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1120)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1129)

{code}

The idea here is that when the fsimage is being loaded, 
BlocksMap.checkBlockInfo() will never find the block in the blocksMap, i.e. the 
call to blocks.get() will always return null.

> reduce namenode startup time by optimising checkBlockInfo while loading  
> fsimage 
> ---------------------------------------------------------------------------------
>
>                 Key: HDFS-1366
>                 URL: https://issues.apache.org/jira/browse/HDFS-1366
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: name-node
>            Reporter: dhruba borthakur
>
> The namenode spends about 10 minutes reading in a 14 GB fsimage file into 
> memory and creating all the in-memory data structures. A jstack based 
> debugger clearly shows that most of the time during the fsimage load is spent 
> in BlocksMap.checkBlockInfo. There is a easy way to optimize this method 
> especially for this code path.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to