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

Duo Zhang commented on HBASE-17407:
-----------------------------------

We are not end users, we are developers, so we can see the internal stage of a 
transaction. Think of a typical transaction that, transfer 1000 USD from A to 
B.  No doubt you will minus 1000 from A, then plus 1000 to B, right? You will 
not minus 10000 from A, plus 1000 to B and then plus 9000 to A right?

What I mean is that, you can have intermediate state, but this does not mean it 
is a good idea to have a strange intermediate state. The value in  It is easy 
to make developers confusing and introduce bugs in the future. The assumption 
of the currect flush is that we will flush all data in memstore for a store, if 
the assumption is gone then the flow should also be changed. Putting an 
obviously incorrect value in lowestUnflushedSequenceIds is not acceptable.

And what do you think of the proposal I mentioned above? I do not think it 
changes the way you update WAL. Buy your finalizeFlush method does change the 
way we update WAL as you even add a new method to WAL...

Thanks.

> 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