You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Ankit Singhal (JIRA)" <ji...@apache.org> on 2015/12/01 14:13:11 UTC
[jira] [Commented] (PHOENIX-2470) Skip duplicate or empty scan left
after StaleRegionBoundaryCacheException
[ https://issues.apache.org/jira/browse/PHOENIX-2470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15033656#comment-15033656 ]
Ankit Singhal commented on PHOENIX-2470:
----------------------------------------
[~jamestaylor],[~rajeshbabu],[~samarthjain], any thoughts?
> Skip duplicate or empty scan left after StaleRegionBoundaryCacheException
> -------------------------------------------------------------------------
>
> Key: PHOENIX-2470
> URL: https://issues.apache.org/jira/browse/PHOENIX-2470
> Project: Phoenix
> Issue Type: Bug
> Reporter: Ankit Singhal
> Assignee: Ankit Singhal
>
> We should skip the stale scanners because of two reasons:-
> 1. For local indexing , they can generate duplicate result if the compaction didn't complete for the merged region.
> 2. Stale scanners which may result empty but may impact performance.
> For eg:- skipping scanners which has overlap with the previous succesfull scanner
> In BaseResultIterators.java
> {code}
> + if (isLocalIndex && previousScan != null
> + && ((!isReverse && Bytes.compareTo(scanPair.getFirst().getStartRow(),
> + previousScan.getStopRow()) < 0)
> + || (isReverse && Bytes.compareTo(scanPair.getFirst().getStartRow(),
> + previousScan.getStopRow()) > 0)
> + || (scanPair.getFirst().getAttribute(EXPECTED_UPPER_REGION_KEY) != null
> + && previousScan.getAttribute(EXPECTED_UPPER_REGION_KEY) != null
> + && Bytes.compareTo(scanPair.getFirst().getAttribute(EXPECTED_UPPER_REGION_KEY),
> + previousScan.getAttribute(EXPECTED_UPPER_REGION_KEY)) == 0))) {
> +
> + continue;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)