[
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
(v6.3.15#6346)