huaxiang sun created HBASE-17196:
------------------------------------

             Summary: deleted mob cell can come back after major compaction and 
minor mob compaction
                 Key: HBASE-17196
                 URL: https://issues.apache.org/jira/browse/HBASE-17196
             Project: HBase
          Issue Type: Bug
          Components: mob
    Affects Versions: 2.0.0
            Reporter: huaxiang sun
            Assignee: huaxiang sun


In the following case, the deleted mob cell can come back.

{code}
1) hbase(main):001:0> create 't1', {NAME => 'f1', IS_MOB => true, MOB_THRESHOLD 
=> 10}

2) hbase(main):002:0> put 't1', 'r1', 'f1:q1', 'aaaaaaaaaaaaaaaaaaaa'

3) hbase(main):003:0> flush 't1'

4) hbase(main):004:0> deleteall 't1', 'r1'

5) hbase(main):005:0> scan 't1'
ROW                                                 COLUMN+CELL                 
                                                                                
                                          
0 row(s)

6) hbase(main):006:0> flush 't1'

7) hbase(main):007:0> major_compact 't1'

After that, go to mobdir, remove the _del file, this is to simulate the case 
that  mob minor compaction does not the _del file. Right now, the cell in 
normal region is gone after the major compaction.

8) hbase(main):008:0> put 't1', 'r2', 'f1:q1', 'bbbbbbbbbbbbbbbbbbbbbbbb'
                                                                                
                                                                      
9) hbase(main):009:0> flush 't1'

10) hbase(main):010:0> scan 't1'
ROW                                                 COLUMN+CELL                 
                                                                                
                                          
 r2                                                 column=f1:q1, 
timestamp=1480451201393, value=bbbbbbbbbbbbbbbbbbbbbbbb                         
                                                        
1 row(s)

11) hbase(main):011:0> compact 't1', 'f1', 'MOB'

12) hbase(main):012:0> scan 't1'
ROW                                                 COLUMN+CELL                 
                                                                                
                                          
 r1                                                 column=f1:q1, 
timestamp=1480450987725, value=aaaaaaaaaaaaaaaaaaaa                             
                                                        
 r2                                                 column=f1:q1, 
timestamp=1480451201393, value=bbbbbbbbbbbbbbbbbbbbbbbb                         
                                                        
2 row(s)

The deleted "r1" comes back. The reason is that mob minor compaction does not 
include _del files so it generates references for the deleted cell.
{code}



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

Reply via email to