Ankit Singhal created PHOENIX-2470:
--------------------------------------
Summary: 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)