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

Duo Zhang commented on HBASE-17035:
-----------------------------------

I think I found a possible race.

In syncCompleted method in the patch of HBASE-17021, we will try finished roll 
before request log roll. If we successfully finishes a roll, the 
waitForSafePoint will return and doReplaceWriter will switch the writer. But in 
syncCompleted, we still use the old writer instance to get length and then 
compare it to the logrollsize to determine if we should request a roll. Under a 
heavy load, it is possible that we continue the work after tryFinishedRoll in 
syncCompleted method after the rollWriter is finished. This will cause a roll 
immediately after a roll.

Let me prepare a new patch in HBASE-17021, not very hard to fix.

Thanks.

> Check why we roll a wal writer at 10MB when the configured roll size is 120M+ 
> with AsyncFSWAL
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-17035
>                 URL: https://issues.apache.org/jira/browse/HBASE-17035
>             Project: HBase
>          Issue Type: Sub-task
>          Components: wal
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>             Fix For: 2.0.0
>
>
> Found this when addressing HBASE-16890. It is one of the possible reason that 
> why AsyncFSWAL performs worse than FSHLog when running PE tool.
> https://issues.apache.org/jira/browse/HBASE-16890?focusedCommentId=15636688&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15636688



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to