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

alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit a016c1102c9f62031cbf667c8e43605925347402
Author: Ian Maxon <[email protected]>
AuthorDate: Mon Mar 22 13:04:28 2021 -0700

    [ASTERIXDB-2854] Make UDF deploy timeout configurable
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    
    - Add a config variable for UDF deployment timeout.
      For very large libraries, this is necessary as
      it can take some time for them to be distributed
      and extracted on every node in the cluster
    
    Change-Id: Ic318a3b70d5d44c1dbd26f543eb6ef5fe62002ac
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10623
    Reviewed-by: Ian Maxon <[email protected]>
    Reviewed-by: Dmitry Lychagin <[email protected]>
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Contrib: Ian Maxon <[email protected]>
---
 .../java/org/apache/asterix/api/http/server/NCUdfApiServlet.java  | 4 +++-
 .../results/api/cluster_state_1/cluster_state_1.1.regexadm        | 1 +
 .../api/cluster_state_1_full/cluster_state_1_full.1.regexadm      | 1 +
 .../api/cluster_state_1_less/cluster_state_1_less.1.regexadm      | 1 +
 .../java/org/apache/asterix/common/config/ExternalProperties.java | 8 +++++++-
 5 files changed, 13 insertions(+), 2 deletions(-)

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
index f164938..717ebf8 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCUdfApiServlet.java
@@ -83,6 +83,7 @@ public class NCUdfApiServlet extends AbstractNCUdfServlet {
     protected Path workingDir;
     protected String sysAuthHeader;
     private ILibraryManager libraryManager;
+    private int timeout;
 
     private static final Logger LOGGER = LogManager.getLogger();
 
@@ -91,6 +92,7 @@ public class NCUdfApiServlet extends AbstractNCUdfServlet {
         super(ctx, paths, appCtx, compilationProvider, httpServerProtocol, 
httpServerPort);
         this.compilationProvider = compilationProvider;
         this.receptionist = appCtx.getReceptionist();
+        this.timeout = 
appCtx.getExternalProperties().getLibraryDeployTimeout();
     }
 
     @Override
@@ -152,7 +154,7 @@ public class NCUdfApiServlet extends AbstractNCUdfServlet {
         InternalRequestResponse responseMsg;
         try {
             ncMb.sendMessageToPrimaryCC(requestMessage);
-            responseMsg = (InternalRequestResponse) responseFuture.get(120000, 
TimeUnit.MILLISECONDS);
+            responseMsg = (InternalRequestResponse) 
responseFuture.get(timeout, TimeUnit.SECONDS);
         } finally {
             ncMb.deregisterMessageFuture(responseFuture.getFutureId());
         }
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
index b6a49a6..eba50dc 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1/cluster_state_1.1.regexadm
@@ -24,6 +24,7 @@
     "compiler\.textsearchmemory" : 163840,
     "compiler\.windowmemory" : 196608,
     "default\.dir" : "target/io/dir/asterixdb",
+    "library\.deploy\.timeout" : 1800,
     "log\.dir" : "logs/",
     "log\.level" : "INFO",
     "max\.wait\.active\.cluster" : 60,
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
index dedb40f..98faa65 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_full/cluster_state_1_full.1.regexadm
@@ -24,6 +24,7 @@
     "compiler\.textsearchmemory" : 163840,
     "compiler\.windowmemory" : 196608,
     "default\.dir" : "target/io/dir/asterixdb",
+    "library\.deploy\.timeout" : 1800,
     "log\.dir" : "logs/",
     "log\.level" : "WARN",
     "max\.wait\.active\.cluster" : 60,
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
index 985d3bd..a92f7d1 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/api/cluster_state_1_less/cluster_state_1_less.1.regexadm
@@ -24,6 +24,7 @@
     "compiler\.textsearchmemory" : 163840,
     "compiler\.windowmemory" : 196608,
     "default\.dir" : "target/io/dir/asterixdb",
+    "library\.deploy\.timeout" : 1800,
     "log\.dir" : "logs/",
     "log\.level" : "WARN",
     "max\.wait\.active\.cluster" : 60,
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ExternalProperties.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ExternalProperties.java
index 9bef65d..46258bf 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ExternalProperties.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/ExternalProperties.java
@@ -50,7 +50,8 @@ public class ExternalProperties extends AbstractProperties {
                 POSITIVE_INTEGER_BYTE_UNIT,
                 StorageUtil.getIntSizeInBytes(200, 
StorageUtil.StorageUnit.MEGABYTE),
                 "The maximum accepted web request size in bytes"),
-        REQUESTS_ARCHIVE_SIZE(NONNEGATIVE_INTEGER, 50, "The maximum number of 
archived requests to maintain");
+        REQUESTS_ARCHIVE_SIZE(NONNEGATIVE_INTEGER, 50, "The maximum number of 
archived requests to maintain"),
+        LIBRARY_DEPLOY_TIMEOUT(POSITIVE_INTEGER, 1800, "Timeout to upload a 
UDF in seconds");
 
         private final IOptionType type;
         private final Object defaultValue;
@@ -76,6 +77,7 @@ public class ExternalProperties extends AbstractProperties {
                 case LOG_LEVEL:
                 case MAX_WAIT_ACTIVE_CLUSTER:
                 case MAX_WEB_REQUEST_SIZE:
+                case LIBRARY_DEPLOY_TIMEOUT:
                     return Section.COMMON;
                 case CC_JAVA_OPTS:
                 case NC_JAVA_OPTS:
@@ -149,4 +151,8 @@ public class ExternalProperties extends AbstractProperties {
         return accessor.getInt(Option.REQUESTS_ARCHIVE_SIZE);
     }
 
+    public int getLibraryDeployTimeout() {
+        return accessor.getInt(Option.LIBRARY_DEPLOY_TIMEOUT);
+    }
+
 }

Reply via email to