hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17662) Disable in-memory flush when replaying from WAL
Date Mon, 20 Feb 2017 13:03:44 GMT

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

Anoop Sam John commented on HBASE-17662:

bq.  if (inWalReplay.get()) 
This check and the set and reset of the inWalReplay state will be done from one thread only
right?  I may be wrong.. If so, do we really need a Atomic boolean or just simple boolean
is ok? The above if comes in all normal write path and now we add a AtomicBoolean read which
is not that cheap.  If the state is being accessed from multiple thread and an Atomic/volatile
is unavoidable, I suggest we add this boolean check after the size check. I mean after if
(this.active.keySize() > inmemoryFlushSize) 
Or else for every write op we will end up in this Atomic boolean read.

> Disable in-memory flush when replaying from WAL
> -----------------------------------------------
>                 Key: HBASE-17662
>                 URL: https://issues.apache.org/jira/browse/HBASE-17662
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Anastasia Braginsky
>         Attachments: HBASE-17662-V02.patch
> When replaying the edits from WAL, the region's updateLock is not taken, because a single
threaded action is assumed. However, the thread-safeness of the in-memory flush of CompactingMemStore
is based on taking the region's updateLock. 
> The in-memory flush can be skipped in the replay time (anyway everything is flushed to
disk just after the replay). Therefore it is acceptable to just skip the in-memory flush action
while the updates come as part of replay from WAL.

This message was sent by Atlassian JIRA

View raw message