[ 
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)

Reply via email to