[
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)