hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15097) When the scan operation covered two regions,sometimes the final results have duplicated rows.
Date Mon, 18 Jan 2016 16:38:39 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15105496#comment-15105496
] 

Ted Yu commented on HBASE-15097:
--------------------------------

The last test run was done on https://builds.apache.org/computer/H2 where local maven repo
may contain outdated artifacts.
This led to "hadoopcheck Patch causes 11 errors with Hadoop v2.4.0.", seen in other QA runs
before.


> When the scan operation covered two regions,sometimes the final results have duplicated
rows.
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15097
>                 URL: https://issues.apache.org/jira/browse/HBASE-15097
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 1.1.2
>         Environment: centos 6.5
> hbase 1.1.2 
>            Reporter: chenrongwei
>            Assignee: chenrongwei
>         Attachments: HBASE-15097-v001.patch, HBASE-15097-v002.patch, output.log, rowkey.txt,
snapshot2016-01-13 pm 8.42.37.png
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> When the scan operationā€˜s start key and end key covered two regions,the first region
returned the rows which were beyond of its' end key.So,this finally leads to duplicated rows
in the results.
> To avoid this problem,we should add a judgment before setting the variable "stopRow"
in the class of HRegion,like follow:
>             if (Bytes.equals(scan.getStopRow(), HConstants.EMPTY_END_ROW) &&
!scan.isGetScan()) {
>                 this.stopRow = null;
>             } else {
>                 if (Bytes.compareTo(scan.getStopRow(), this.getRegionInfo().getEndKey())
>= 0) {
>                     this.stopRow = this.getRegionInfo().getEndKey();
>                 } else {
>                     this.stopRow = scan.getStopRow();
>                 }
>             }



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

Mime
View raw message