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)

Reply via email to