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

Suresh Srinivas commented on HDFS-2052:
---------------------------------------

> but that would drop the audit logging so probably easier to pass a boolean 
> that indicates whether to sync. 
It does not. Logging for delete is done in FSDirectory#delete(). In this case, 
you are not syncing the audit log and do it along with editlog that logs file 
creation.

> FSNamesystem should not sync the log with the write lock held
> -------------------------------------------------------------
>
>                 Key: HDFS-2052
>                 URL: https://issues.apache.org/jira/browse/HDFS-2052
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: name-node
>            Reporter: Eli Collins
>
> FSNamesystem#deleteInternal releases the write lock before syncing the log, 
> however FSNamesystem#startFileInternal calls delete -> deleteInternal with 
> the write lock held, which means deleteInternal will sync the log while 
> holding the lock. We could fix cases like this by passing  a flag indicating 
> whether the function should sysnc (eg in this case the sysnc is not necessary 
> because startFileInternals callers will sync the log) or modify the current 
> calls to sync to flag that a sync is necessary before returning to the caller 
> rather than doing the sync right at the call sight. This way the cost of 
> syncing the log could be amortized over multiple function calls (and 
> potentially multiple RPCs if we didn't mind introducing some synchronization).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to