This is an automated email from the ASF dual-hosted git repository.

pboado pushed a commit to branch 4.x-cdh5.16
in repository https://gitbox.apache.org/repos/asf/phoenix.git

commit 4db9a6fb614a9d39130fe764adf52d92fb1ec8f7
Author: Monani Mihir <monani.mi...@gmail.com>
AuthorDate: Fri Dec 14 12:45:55 2018 +0000

    PHOENIX-5048 Index Rebuilder does not handle INDEX_STATE timestamp check 
for all index
    
    Signed-off-by: Geoffrey Jacoby <gjac...@apache.org>
---
 .../coprocessor/MetaDataRegionObserver.java        | 35 +++++++++++++---------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
index 4968525..4045d47 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataRegionObserver.java
@@ -512,20 +512,27 @@ public class MetaDataRegionObserver extends 
BaseRegionObserver {
                                                                String 
indexTableFullName = SchemaUtil.getTableName(
                                                                                
indexPTable.getSchemaName().getString(),
                                                                                
indexPTable.getTableName().getString());
-                                                               if (scanEndTime 
== latestUpperBoundTimestamp) {
-                                                                       
IndexUtil.updateIndexState(conn, indexTableFullName, PIndexState.ACTIVE, 0L, 
latestUpperBoundTimestamp);
-                                                                       
batchExecutedPerTableMap.remove(dataPTable.getName());
-                                    LOG.info("Making Index:" + 
indexPTable.getTableName() + " active after rebuilding");
-                                                               } else {
-                                                                   // 
Increment timestamp so that client sees updated disable timestamp
-                                    IndexUtil.updateIndexState(conn, 
indexTableFullName, indexPTable.getIndexState(), scanEndTime * 
signOfDisableTimeStamp, latestUpperBoundTimestamp);
-                                                                       Long 
noOfBatches = batchExecutedPerTableMap.get(dataPTable.getName());
-                                                                       if 
(noOfBatches == null) {
-                                                                               
noOfBatches = 0l;
-                                                                       }
-                                                                       
batchExecutedPerTableMap.put(dataPTable.getName(), ++noOfBatches);
-                                                                       
LOG.info("During Round-robin build: Successfully updated index disabled 
timestamp  for "
-                                                                               
                        + indexTableFullName + " to " + scanEndTime);
+                                                               try {
+                                                                   if 
(scanEndTime == latestUpperBoundTimestamp) {
+                                                                       
IndexUtil.updateIndexState(conn, indexTableFullName, PIndexState.ACTIVE, 0L,
+                                                                           
latestUpperBoundTimestamp);
+                                                                       
batchExecutedPerTableMap.remove(dataPTable.getName());
+                                                                       
LOG.info("Making Index:" + indexPTable.getTableName() + " active after 
rebuilding");
+                                                                   } else {
+                                                                       // 
Increment timestamp so that client sees updated disable timestamp
+                                                                       
IndexUtil.updateIndexState(conn, indexTableFullName, 
indexPTable.getIndexState(),
+                                                                           
scanEndTime * signOfDisableTimeStamp, latestUpperBoundTimestamp);
+                                                                       Long 
noOfBatches = batchExecutedPerTableMap.get(dataPTable.getName());
+                                                                       if 
(noOfBatches == null) {
+                                                                           
noOfBatches = 0l;
+                                                                       }
+                                                                       
batchExecutedPerTableMap.put(dataPTable.getName(), ++noOfBatches);
+                                                                       
LOG.info(
+                                                                           
"During Round-robin build: Successfully updated index disabled timestamp  for "
+                                                                               
+ indexTableFullName + " to " + scanEndTime);
+                                                                   }
+                                                               } catch 
(SQLException e) {
+                                                                   
LOG.error("Unable to rebuild " + dataPTable + " index " + indexTableFullName, 
e);
                                                                }
                                                        }
                                                } catch (Exception e) {

Reply via email to