Repository: phoenix
Updated Branches:
  refs/heads/omid2 0f2b1b8ba -> d03eadc23


PHOENIX-4977 Make KillServerOnFailurePolicy a configurable option in 
PhoenixIndexFailurePolicy


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a48e42e7
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a48e42e7
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a48e42e7

Branch: refs/heads/omid2
Commit: a48e42e7f639c8194db84155ce73ca9d4df25d91
Parents: 2ff316a
Author: Vincent Poon <vincentp...@apache.org>
Authored: Tue Oct 23 16:03:22 2018 -0700
Committer: Vincent Poon <vincentp...@apache.org>
Committed: Thu Oct 25 12:06:31 2018 -0700

----------------------------------------------------------------------
 .../phoenix/hbase/index/write/DelegateIndexFailurePolicy.java  | 5 ++++-
 .../org/apache/phoenix/index/PhoenixIndexFailurePolicy.java    | 6 ++++++
 .../src/main/java/org/apache/phoenix/query/QueryServices.java  | 1 +
 3 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/a48e42e7/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/DelegateIndexFailurePolicy.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/DelegateIndexFailurePolicy.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/DelegateIndexFailurePolicy.java
index a7fb7ec..caf2b38 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/DelegateIndexFailurePolicy.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/DelegateIndexFailurePolicy.java
@@ -28,7 +28,7 @@ import com.google.common.collect.Multimap;
 
 public class DelegateIndexFailurePolicy implements IndexFailurePolicy {
 
-    private final IndexFailurePolicy delegate;
+    private IndexFailurePolicy delegate;
     
     public DelegateIndexFailurePolicy(IndexFailurePolicy delegate) {
         this.delegate = delegate;
@@ -55,4 +55,7 @@ public class DelegateIndexFailurePolicy implements 
IndexFailurePolicy {
         delegate.stop(arg0);
     }
 
+    public void setDelegate(IndexFailurePolicy delegate) {
+        this.delegate = delegate;
+    }
 }

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a48e42e7/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
 
b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
index 4c2013b..f0af6f6 100644
--- 
a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
+++ 
b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
@@ -60,6 +60,7 @@ import 
org.apache.phoenix.hbase.index.table.HTableInterfaceReference;
 import org.apache.phoenix.hbase.index.util.ImmutableBytesPtr;
 import org.apache.phoenix.hbase.index.write.DelegateIndexFailurePolicy;
 import org.apache.phoenix.hbase.index.write.KillServerOnFailurePolicy;
+import org.apache.phoenix.hbase.index.write.LeaveIndexActiveFailurePolicy;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
 import org.apache.phoenix.query.QueryServices;
@@ -133,6 +134,11 @@ public class PhoenixIndexFailurePolicy extends 
DelegateIndexFailurePolicy {
         } else {
                throwIndexWriteFailure = Boolean.parseBoolean(value);
         }
+
+        boolean killServer = 
env.getConfiguration().getBoolean(QueryServices.INDEX_FAILURE_KILL_SERVER, 
true);
+        if (!killServer) {
+            setDelegate(new LeaveIndexActiveFailurePolicy());
+        } // else, default in constructor is KillServerOnFailurePolicy
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/phoenix/blob/a48e42e7/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java 
b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java
index d3c8dc0..337bb05 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/query/QueryServices.java
@@ -154,6 +154,7 @@ public interface QueryServices extends SQLCloseable {
     public static final String INDEX_FAILURE_BLOCK_WRITE = 
"phoenix.index.failure.block.write";
     public static final String INDEX_FAILURE_DISABLE_INDEX = 
"phoenix.index.failure.disable.index";
     public static final String INDEX_FAILURE_THROW_EXCEPTION_ATTRIB = 
"phoenix.index.failure.throw.exception";
+    public static final String INDEX_FAILURE_KILL_SERVER = 
"phoenix.index.failure.unhandled.killserver";
 
     // Index will be partially re-built from index disable time stamp - 
following overlap time
     @Deprecated

Reply via email to