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

Duo Zhang commented on HBASE-16890:
-----------------------------------

The basic idea is

1. It is harmless to schedule redundant consumer task.
2. We will not schedule consumer task if already scheduled. This could be 
achieved by using compareAndSet on an AtomicBoolean.
3. If no lock, then data race may occur when we set consumerScheduled to false. 
This could be solved by check->setFalse->recheck.
4. writerBroken, waitingRoll can only be changed in consume thread and They are 
not very important for append and sync, so I make them volatile and acess them 
in append and sync directly. In waitForSafePoint and consume, they are still 
accessed under the protection of lock.

> Analyze the performance of AsyncWAL and fix the same
> ----------------------------------------------------
>
>                 Key: HBASE-16890
>                 URL: https://issues.apache.org/jira/browse/HBASE-16890
>             Project: HBase
>          Issue Type: Sub-task
>          Components: wal
>    Affects Versions: 2.0.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 2.0.0
>
>         Attachments: AsyncWAL_disruptor.patch, 
> HBASE-16890-remove-contention.patch, Screen Shot 2016-10-25 at 7.34.47 
> PM.png, Screen Shot 2016-10-25 at 7.39.07 PM.png, Screen Shot 2016-10-25 at 
> 7.39.48 PM.png, async.svg, classic.svg, contention.png, 
> contention_defaultWAL.png
>
>
> Tests reveal that AsyncWAL under load in single node cluster performs slower 
> than the Default WAL. This task is to analyze and see if we could fix it.
> See some discussions in the tail of JIRA HBASE-15536.



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

Reply via email to