hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eshcar Hillel (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17407) Correct update of maxFlushedSeqId in HRegion
Date Tue, 03 Jan 2017 15:16:58 GMT

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

Eshcar Hillel commented on HBASE-17407:

Updating the WAL is not done in one atomic step; 
It starts with startCacheFlush(), ends with completeCacheFlush() and it can recover from crashes
(via abortCacheFlush()) that happen between its starting and ending point.
finalizeFlush() is invoked between start  and complete. In this a period the WAL state can
be inconsistent.

Removing finalizeFlush means that we need to change the current (common) path for updating
the wal. This is something we tried to avoid in the original design.
With HBASE-17081 flushing the tail becomes optional and not the default.
If this path will not be used in most cases it is better to leave the current path for updating
the WAL as is.

But still there's the issue of correctly updating maxFlushedSeqId after the flush is completed.

> Correct update of maxFlushedSeqId in HRegion
> --------------------------------------------
>                 Key: HBASE-17407
>                 URL: https://issues.apache.org/jira/browse/HBASE-17407
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Eshcar Hillel
> The attribute maxFlushedSeqId in HRegion is used to track the max sequence id in the
store files and is reported to HMaster. When flushing only part of the memstore content this
value might be incorrect and may cause data loss.

This message was sent by Atlassian JIRA

View raw message