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)