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

Feng Honghua commented on HBASE-10227:
--------------------------------------

[~gustavoanatoly] : glad to know you're also aware of this bug and show 
interest for fixing it. :-)

Actually this issue had already been fixed in my patch for JIRA-8721 (where the 
mvcc can't be set zero and need to keep across region move / regionserver 
failover / balance etc, I noticed and fixed this 'logic' bug as a part of that 
patch), since JIRA-8721 experienced several times close/reopen/close, I think 
it's not a good timing to reopen it again. but the exposing of this bug and 
providing its fix can be opened as a separate JIRA.

If you can't schedule time for this fix, maybe I can re-assign to myself and 
extract the fix for this bug from JIRA-8721's patch to here for 
discussion/review, what do you think? [~gustavoanatoly] / [~stack]

> When a region is opened, its mvcc isn't correctly recovered when there are 
> split hlogs to replay
> ------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-10227
>                 URL: https://issues.apache.org/jira/browse/HBASE-10227
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>            Reporter: Feng Honghua
>            Assignee: Gustavo Anatoly
>
> When opening a region, all stores are examined to get the max MemstoreTS and 
> it's used as the initial mvcc for the region, and then split hlogs are 
> replayed. In fact the edits in split hlogs have kvs with greater mvcc than 
> all MemstoreTS in all store files, but replaying them don't increment the 
> mvcc according at all. From an overall perspective this mvcc recovering is 
> 'logically' incorrect/incomplete.
> Why currently it doesn't incur problem is because no active scanners exists 
> and no new scanners can be created before the region opening completes, so 
> the mvcc of all kvs in the resulted hfiles from hlog replaying can be safely 
> set to zero. They are just treated as kvs put 'earlier' than the ones in 
> HFiles with mvcc greater than zero(say 'earlier' since they have mvcc less 
> than the ones with non-zero mvcc, but in fact they are put 'later'), and 
> without any incorrect impact just because during region opening there are no 
> active scanners existing / created.
> This bug is just in 'logic' sense for the time being, but if later on we need 
> to survive mvcc in the region's whole logic lifecycle(across regionservers) 
> and never set them to zero, this bug needs to be fixed first.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to