hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ramkrishna.s.vasudevan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16890) Analyze the performance of AsyncWAL and fix the same
Date Mon, 31 Oct 2016 17:45:58 GMT

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

ramkrishna.s.vasudevan commented on HBASE-16890:
------------------------------------------------

In my previous patch other than that hack, I felt there is another problem. Since we synchronize
on waitingConsumePayloads in the onEvent() method. Though the onEvent() occurs for every sequence
because of synchronize that is there we will be having a situation where
Seq number 100, 101, 102, 103 wait to enter synchronize and it so happens that 103, 102 and
101 is the sequence. Now which means the append that we do will have a reverse sequence which
is not right. So there could be a chance that the highestSyncId could get a value lesser than
the previous one and that is not correct.  Previously there is no such problem as the nextTxid
is what was getting used and that was an increasing long value.
I have a way to solve the problem. On append() call generate a sequence but do not create
the fSWALEntry with that sequence. Instead just pass on the required things to form the FSWALEntry
and when the onEvent() occurs create a FSWALEntry by incrementing the 'nextTxid' inside the
synchronize block of 'waitingConsumePayloads '.
For the SyncFuture thing the ugly thing is the SyncFuture that is created with the ring buffer
sequence, we will update the txid in the SyncFuture by subtracting 1 from nextTxid and rest
works as before. 
This model works better than the current AsyncWAL model. Any feedback?

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

Mime
View raw message