Minwoo Kang created HBASE-29254:
-----------------------------------

             Summary: StoreScanner returns incorrect row after flush due to 
topChanged behavior
                 Key: HBASE-29254
                 URL: https://issues.apache.org/jira/browse/HBASE-29254
             Project: HBase
          Issue Type: Bug
          Components: Scanners
            Reporter: Minwoo Kang
            Assignee: Minwoo Kang


{color:#000000}For example, suppose the HStore contains the following 
cells:{color}
 
{color:#000000}(1) row1/family:qf1/ts + 2/DeleteColumn/vlen=0/seqid=102/{color}
{color:#000000}(2) row1/family:qf1/ts + 1/Put/vlen=6/seqid=101/value2{color}
{color:#000000}(3) row1/family:qf2/ts + 2/DeleteColumn/vlen=0/seqid=102/{color}
{color:#000000}(4) row1/family:qf2/ts + 1/Put/vlen=6/seqid=101/value2{color}
{color:#000000}(5) row1/family:qf3/ts + 2/DeleteColumn/vlen=0/seqid=102/{color}
{color:#000000}(6) row1/family:qf3/ts + 1/Put/vlen=6/seqid=101/value2{color}
{color:#000000}(7) row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1{color}
{color:#000000}(8) row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1{color}
{color:#000000}(9) row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1{color}
 
{color:#000000}The response from StoreScanner.next(result) should be:{color}
 
{color:#000000}*1. First result:*{color}
{color:#000000}empty{color}
 
*{color:#000000}2. Second result:{color}*
 - row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1
 - row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1
 - row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1

{color:#000000}However, if a flush occurs after reading up to (6), a topChanged 
is triggered, and the response from `StoreScanner.next(result)` becomes:{color} 

 
{color:#000000}*1. First result:*{color}
 - row2/family:qf1/ts + 3/Put/vlen=6/seqid=103/value1
 - row2/family:qf2/ts + 3/Put/vlen=6/seqid=103/value1
 - row2/family:qf3/ts + 3/Put/vlen=6/seqid=103/value1

 
*{color:#000000}2. Second result:{color}*
empty
 
The first result is supposed to return data for `row1`, but it ends up 
including `row2`, which results in the response being split incorrectly across 
user responses.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to