[ 
https://issues.apache.org/jira/browse/HBASE-16578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jingcheng Du updated HBASE-16578:
---------------------------------
    Description: 
StoreFileScanners on MOB cells rely on the scannerOrder to find the latest 
cells after compaction. The value of scannerOrder is assigned by the order of 
maxSeqId of StoreFile, and this maxSeqId is valued only after the reader of the 
StoreFile is created.
In {{StoreFileScanner.getScannersForStoreFiles}}, the StoreFiles are sorted 
before the readers are created and at that time the maxSeqId for each file is 
-1 (the default value). This will lead  to a chaos in scanners on MOB cells. We 
need to create readers just before the sorting in the method 
{{StoreFileScanner.getScannersForStoreFiles}}.

  was:
I have a unittest case, which could explore the mob data loss issue. The root 
cause is that with the following line:

https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.java#L625

It will make the old mob reference cell win during compaction.


> Mob data loss after mob compaction and normal compcation
> --------------------------------------------------------
>
>                 Key: HBASE-16578
>                 URL: https://issues.apache.org/jira/browse/HBASE-16578
>             Project: HBase
>          Issue Type: Bug
>          Components: mob
>    Affects Versions: 2.0.0
>            Reporter: huaxiang sun
>            Assignee: Jingcheng Du
>         Attachments: TestMobCompaction.java, TestMobCompaction.java
>
>
> StoreFileScanners on MOB cells rely on the scannerOrder to find the latest 
> cells after compaction. The value of scannerOrder is assigned by the order of 
> maxSeqId of StoreFile, and this maxSeqId is valued only after the reader of 
> the StoreFile is created.
> In {{StoreFileScanner.getScannersForStoreFiles}}, the StoreFiles are sorted 
> before the readers are created and at that time the maxSeqId for each file is 
> -1 (the default value). This will lead  to a chaos in scanners on MOB cells. 
> We need to create readers just before the sorting in the method 
> {{StoreFileScanner.getScannersForStoreFiles}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to