[
https://issues.apache.org/jira/browse/HBASE-29254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HBASE-29254:
-----------------------------------
Labels: pull-request-available (was: )
> 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
> Priority: Major
> Labels: pull-request-available
>
> {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)