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

Vinayakumar B commented on HDFS-6871:
-------------------------------------

[~umamaheswararao] and me discussed. This could create a problem of block miss 
in-corner case of crash of Namenode before actual logSync and actual block 
deletion by the datanode.
because, calling {{removeBlocks(collectedBlocks); // Incremental deletion of 
blocks}} can make the heartbeat response to include deletion command for the 
block.
So I feel, {{removeBlocks(..)}} call also should be extracted outside the lock. 
and after the logSync.

> Improve NameNode performance when creating file  
> -------------------------------------------------
>
>                 Key: HDFS-6871
>                 URL: https://issues.apache.org/jira/browse/HDFS-6871
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode, performance
>            Reporter: Yi Liu
>            Assignee: Yi Liu
>            Priority: Critical
>             Fix For: 2.6.0
>
>         Attachments: HDFS-6871.001.patch, HDFS-6871.002.patch
>
>
> Creating file with overwrite flag will cause NN fall into flush edit logs and 
> block other requests if the file exists.
> When we create a file with overwrite flag (default is true) in HDFS, NN will 
> remove original file if it exists. In FSNamesystem#startFileInternal, NN 
> already holds the write lock, it calls {{deleteInt}} if the file exists, 
> there is logSync in {{deleteInt}}. So in this case, logSync is under write 
> lock, it will heavily affect the NN performance. 
> We should ignore the force logSync in {{deleteInt}} in this case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to