>From Ali Alsuliman <[email protected]>:

Ali Alsuliman has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18646 )


Change subject: Request timeout
......................................................................

Request timeout

Change-Id: I05855e9e03e3d8dae1aefc9c7d0867463909fb14
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M 
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICommonRequestParameters.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
5 files changed, 38 insertions(+), 14 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/46/18646/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
index bedcd9c..3a22a87 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java
@@ -91,7 +91,7 @@
                     .getStatementCategoryRestrictionMask(param.isReadOnly());
             ExecuteStatementRequestMessage requestMsg = 
createRequestMessage(request, requestReference, statementsText,
                     sessionOutput, resultProperties, param, 
optionalParameters, statementParameters, ncCtx,
-                    responseFuture, queryLanguage, handleUrl, 
stmtCategoryRestrictionMask, false);
+                    responseFuture, queryLanguage, handleUrl, 
stmtCategoryRestrictionMask);
             executionState.start();
             ncMb.sendMessageToPrimaryCC(requestMsg);
             try {
@@ -145,12 +145,12 @@
             ResultProperties resultProperties, QueryServiceRequestParameters 
param,
             Map<String, String> optionalParameters, Map<String, byte[]> 
statementParameters, INCServiceContext ncCtx,
             MessageFuture responseFuture, ILangExtension.Language 
queryLanguage, String handleUrl,
-            int stmtCategoryRestrictionMask, boolean forceDropDataset) {
+            int stmtCategoryRestrictionMask) {
         ExecuteStatementRequestMessage requestMessage = new 
ExecuteStatementRequestMessage(ncCtx.getNodeId(),
                 responseFuture.getFutureId(), queryLanguage, statementsText, 
sessionOutput.config(),
                 resultProperties.getNcToCcResultProperties(), 
param.getClientContextID(), param.getDataverse(),
                 handleUrl, optionalParameters, statementParameters, 
param.isMultiStatement(), param.getProfileType(),
-                stmtCategoryRestrictionMask, requestReference, 
forceDropDataset);
+                stmtCategoryRestrictionMask, requestReference, false, 
param.getTimeout());
         requestMessage.setSQLCompatMode(param.isSQLCompatMode());
         return requestMessage;
     }
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index 07d9632..f7c96a5 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -526,7 +526,7 @@
             Map<String, String> optionalParameters, Map<String, IAObject> 
stmtParams, int stmtCategoryRestriction) {
         RequestParameters requestParameters = new 
RequestParameters(requestReference, statementsText, resultSet,
                 resultProperties, stats, statementProperties, null, 
param.getClientContextID(), param.getDataverse(),
-                optionalParameters, stmtParams, param.isMultiStatement(), 
stmtCategoryRestriction);
+                optionalParameters, stmtParams, param.isMultiStatement(), 
stmtCategoryRestriction, param.getTimeout());
         requestParameters.setPrintSignature(param.isSignature());
         requestParameters.setSQLCompatMode(param.isSQLCompatMode());
         return requestParameters;
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 0cdbf95..3e8efda 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -89,6 +89,7 @@
     private final IRequestReference requestReference;
     private final boolean forceDropDataset;
     private final boolean skipAdmissionPolicy;
+    private final long timeOut;
     private boolean sqlCompatMode;

     public ExecuteStatementRequestMessage(String requestNodeId, long 
requestMessageId, ILangExtension.Language lang,
@@ -96,10 +97,10 @@
             String clientContextID, String defaultDataverseName, String 
handleUrl,
             Map<String, String> optionalParameters, Map<String, byte[]> 
statementParameters, boolean multiStatement,
             ProfileType profileType, int statementCategoryRestrictionMask, 
IRequestReference requestReference,
-            boolean forceDropDataset) {
+            boolean forceDropDataset, long timeOut) {
         this(requestNodeId, requestMessageId, lang, statementsText, 
sessionConfig, resultProperties, clientContextID,
                 defaultDataverseName, handleUrl, optionalParameters, 
statementParameters, multiStatement, profileType,
-                statementCategoryRestrictionMask, requestReference, 
forceDropDataset, false);
+                statementCategoryRestrictionMask, requestReference, 
forceDropDataset, false, timeOut);
     }

     protected ExecuteStatementRequestMessage(String requestNodeId, long 
requestMessageId, ILangExtension.Language lang,
@@ -107,7 +108,7 @@
             String clientContextID, String defaultDataverseName, String 
handleUrl,
             Map<String, String> optionalParameters, Map<String, byte[]> 
statementParameters, boolean multiStatement,
             ProfileType profileType, int statementCategoryRestrictionMask, 
IRequestReference requestReference,
-            boolean forceDropDataset, boolean skipAdmissionPolicy) {
+            boolean forceDropDataset, boolean skipAdmissionPolicy, long 
timeOut) {
         this.requestNodeId = requestNodeId;
         this.requestMessageId = requestMessageId;
         this.lang = lang;
@@ -125,6 +126,7 @@
         this.forceDropDataset = forceDropDataset;
         this.skipAdmissionPolicy = skipAdmissionPolicy;
         this.defaultDataverseName = defaultDataverseName;
+        this.timeOut = timeOut;
     }

     public boolean isSQLCompatMode() {
@@ -208,7 +210,7 @@
         RequestParameters requestParameters = new 
RequestParameters(requestReference, statementsText, null,
                 resultProperties, stats, statementProperties, outMetadata, 
clientContextID, defaultDataverseName,
                 optionalParameters, stmtParams, multiStatement, 
statementCategoryRestrictionMask, forceDropDataset,
-                skipAdmissionPolicy);
+                skipAdmissionPolicy, timeOut);
         requestParameters.setSQLCompatMode(sqlCompatMode);
         return requestParameters;
     }
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java
index 8bc6b76..b344eb9 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java
@@ -63,6 +63,7 @@
     private final String defaultDataverseName;
     private final boolean forceDropDataset;
     private final boolean skipAdmissionPolicy;
+    private final long timeOut;
     private boolean printSignature;
     private boolean sqlCompatMode;

@@ -72,34 +73,34 @@
             Map<String, String> optionalParameters, Map<String, IAObject> 
statementParameters, boolean multiStatement) {
         this(requestReference, statement, resultSet, resultProperties, stats, 
statementProperties, outMetadata,
                 clientContextId, defaultDataverseName, optionalParameters, 
statementParameters, multiStatement,
-                NO_CATEGORY_RESTRICTION_MASK);
+                NO_CATEGORY_RESTRICTION_MASK, 0L);
     }

     public RequestParameters(IRequestReference requestReference, String 
statement, IResultSet resultSet,
             ResultProperties resultProperties, Stats stats, 
StatementProperties statementProperties,
             IStatementExecutor.ResultMetadata outMetadata, String 
clientContextId, String defaultDataverseName,
             Map<String, String> optionalParameters, Map<String, IAObject> 
statementParameters, boolean multiStatement,
-            int statementCategoryRestrictionMask) {
+            int statementCategoryRestrictionMask, long timeOut) {
         this(requestReference, statement, resultSet, resultProperties, stats, 
statementProperties, outMetadata,
                 clientContextId, defaultDataverseName, optionalParameters, 
statementParameters, multiStatement,
-                statementCategoryRestrictionMask, false);
+                statementCategoryRestrictionMask, false, timeOut);
     }

     public RequestParameters(IRequestReference requestReference, String 
statement, IResultSet resultSet,
             ResultProperties resultProperties, Stats stats, 
StatementProperties statementProperties,
             IStatementExecutor.ResultMetadata outMetadata, String 
clientContextId, String defaultDataverseName,
             Map<String, String> optionalParameters, Map<String, IAObject> 
statementParameters, boolean multiStatement,
-            int statementCategoryRestrictionMask, boolean forceDropDataset) {
+            int statementCategoryRestrictionMask, boolean forceDropDataset, 
long timeOut) {
         this(requestReference, statement, resultSet, resultProperties, stats, 
statementProperties, outMetadata,
                 clientContextId, defaultDataverseName, optionalParameters, 
statementParameters, multiStatement,
-                statementCategoryRestrictionMask, forceDropDataset, false);
+                statementCategoryRestrictionMask, forceDropDataset, false, 
timeOut);
     }

     public RequestParameters(IRequestReference requestReference, String 
statement, IResultSet resultSet,
             ResultProperties resultProperties, Stats stats, 
StatementProperties statementProperties,
             IStatementExecutor.ResultMetadata outMetadata, String 
clientContextId, String defaultDataverseName,
             Map<String, String> optionalParameters, Map<String, IAObject> 
statementParameters, boolean multiStatement,
-            int statementCategoryRestrictionMask, boolean forceDropDataset, 
boolean skipAdmissionPolicy) {
+            int statementCategoryRestrictionMask, boolean forceDropDataset, 
boolean skipAdmissionPolicy, long timeOut) {
         this.requestReference = requestReference;
         this.statement = statement;
         this.resultSet = resultSet;
@@ -115,6 +116,7 @@
         this.forceDropDataset = forceDropDataset;
         this.defaultDataverseName = defaultDataverseName;
         this.skipAdmissionPolicy = skipAdmissionPolicy;
+        this.timeOut = timeOut;
     }

     @Override
@@ -163,6 +165,11 @@
     }

     @Override
+    public long getTimeOut() {
+        return timeOut;
+    }
+
+    @Override
     public int getStatementCategoryRestrictionMask() {
         return statementCategoryRestrictionMask;
     }
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICommonRequestParameters.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICommonRequestParameters.java
index 8daff1d..d3cd230 100644
--- 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICommonRequestParameters.java
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/ICommonRequestParameters.java
@@ -50,4 +50,10 @@
      * @return the request statement
      */
     String getStatement();
+
+    /**
+     * Gets the request timeout in milliseconds where 0 means no timeout
+     * @return the request timeout
+     */
+    long getTimeOut();
 }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18646
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: goldfish
Gerrit-Change-Id: I05855e9e03e3d8dae1aefc9c7d0867463909fb14
Gerrit-Change-Number: 18646
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-MessageType: newchange

Reply via email to