You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (JIRA)" <ji...@apache.org> on 2016/01/13 13:11:39 UTC
[jira] [Commented] (HBASE-15097) When the scan operation covered
two regions,sometimes the final results have duplicated rows.
[ https://issues.apache.org/jira/browse/HBASE-15097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15096091#comment-15096091 ]
Anoop Sam John commented on HBASE-15097:
----------------------------------------
How come that region got data out of its boundary? Can u try reproduce this with a test case and attach the same here?
> 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
> Fix For: 1.1.2
>
> 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)