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

Todd Lipcon commented on HDFS-4186:
-----------------------------------

Hey Kihwal. Can you explain why the new ThreadLocal is necessary?

Without the new ThreadLocal, the thread would just have a too-low txid, which 
would already be synced from some previous call on the same IPC handler. So the 
logSync would already end up a no-op, given the synced txid already will be 
higher than this point.
                
> logSync() is called with the write lock held while releasing lease
> ------------------------------------------------------------------
>
>                 Key: HDFS-4186
>                 URL: https://issues.apache.org/jira/browse/HDFS-4186
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: name-node
>    Affects Versions: 0.23.4, 2.0.2-alpha
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>            Priority: Critical
>         Attachments: hdfs-4186-trunk.patch
>
>
> As pointed out in HDFS-4138, when the lease monitor calls 
> internalReleaseLease(), it acquires the namespace write lock. Inside 
> internalReleaseLease(), if a block recovery is needed, the lease is 
> reassigned to the namenode itself and this is logged & synced in 
> logReassignLease().
> Since this is done while the write lock is held, log syncing is blocked. When 
> a large number of leases are expired and blocks are recovered, namenode can 
> slow down.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to