[ https://issues.apache.org/jira/browse/HBASE-16578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15571183#comment-15571183 ]
Jingcheng Du commented on HBASE-16578: -------------------------------------- The failures of the these unit tests are caused by the OOM, should not be related with this patch. I will commit this after [~mbertozzi] reviews or tomorrow. Thanks. > 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: HBASE-16578-V2.patch, HBASE-16578.patch, > TestMobCompaction.java, TestMobCompaction.java > > > StoreFileScanners on MOB cells rely on the scannerOrder to find the latest > cells after mob 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 {{Compactor.compact}}, the compacted store files are cloned and their > readers are not created. And 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 in the following normal compaction. Some older cells might be > chosen during the normal compaction. > We need to create readers either before the sorting in the method > {{StoreFileScanner.getScannersForStoreFiles}}, or create readers just after > the store files are cloned in {{Compactor.compact}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)