[ 
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
(v6.3.4#6332)

Reply via email to