>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