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

Andrew Wang commented on HDFS-5064:
-----------------------------------

Hi Daryn,

It's an unfair RW lock with a slight twist. Rather than just having readers and 
writers, we have short reads, long reads, and writes. During a long read, we 
let short reads jump ahead of waiting writers and enter the critical section. 
This lets us get read concurrency during these long read ops when otherwise a 
single waiting writer would block all readers from entering.

> Standby checkpoints should not block concurrent readers
> -------------------------------------------------------
>
>                 Key: HDFS-5064
>                 URL: https://issues.apache.org/jira/browse/HDFS-5064
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: ha, namenode
>    Affects Versions: 2.3.0
>            Reporter: Aaron T. Myers
>            Assignee: Aaron T. Myers
>             Fix For: 2.4.0
>
>         Attachments: HDFS-5064.patch, HDFS-5064.patch
>
>
> We've observed an issue which causes fetches of the {{/jmx}} page of the NN 
> to take a long time to load when the standby is in the process of creating a 
> checkpoint.
> Even though both creating the checkpoint and gathering the statistics for 
> {{/jmx}} take only the FSNS read lock, the issue is that since the FSNS uses 
> a _fair_ RW lock, a single writer attempting to get the lock will block all 
> threads attempting to get only the read lock for the duration of the 
> checkpoint. This will cause {{/jmx}}, and really any thread only attempting 
> to get the read lock, to block for the duration of the checkpoint, even 
> though they should be able to proceed concurrently with the checkpointing 
> thread.



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

Reply via email to