>From Peeyush Gupta <[email protected]>:
Peeyush Gupta has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20529?usp=email )
Change subject: [ASTERIXDB-3649][*DB] Async request API backward compatibility
fixes
......................................................................
[ASTERIXDB-3649][*DB] Async request API backward compatibility fixes
- user model changes: no
- storage format changes: no
- interface changes: no
Ext-ref: MB-60882
Change-Id: I5c1df629ccb2ad15c0b50a1ae65482c53fe51adc
---
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryResultApiServlet.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceRequestParameters.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultRequestMessage.java
D
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultResponseMessage.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/MetricsPrinter.java
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-exhausted-result/async-exhausted-result.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-failed/async-failed.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.6.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-repeated/async-repeated.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-running/async-running.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-timeout/async.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async/async.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-compilation-failed/async-compilation-failed.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-exhausted-result/async-exhausted-result.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-failed/async-failed.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-json/async-json.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-repeated/async-repeated.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-running/async-running.1.async.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async/async.1.async.sqlpp
M
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultPartitionManager.java
M
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultDirectoryRecord.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/IResultDirectoryService.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/ResultDirectoryService.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/ReportResultPartitionWriteCompletionWork.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/base/IClusterController.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/ClusterControllerRemoteProxy.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionManager.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionWriter.java
M
hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultState.java
33 files changed, 56 insertions(+), 90 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/29/20529/1
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryResultApiServlet.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryResultApiServlet.java
index c9972fc..90978fb 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryResultApiServlet.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryResultApiServlet.java
@@ -23,7 +23,6 @@
import org.apache.asterix.app.message.DiscardResultRequestMessage;
import org.apache.asterix.common.api.IApplicationContext;
import org.apache.asterix.common.messaging.api.INCMessageBroker;
-import org.apache.asterix.common.messaging.api.MessageFuture;
import org.apache.asterix.utils.AsyncRequestsAPIUtil;
import org.apache.hyracks.api.application.INCServiceContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -48,10 +47,8 @@
protected void discardResult(String requestId, JobId jobId, ResultSetId
resultSetId) throws HyracksDataException {
INCServiceContext serviceCtx = (INCServiceContext)
appCtx.getServiceContext();
INCMessageBroker messageBroker = (INCMessageBroker)
serviceCtx.getMessageBroker();
- MessageFuture messageFuture = messageBroker.registerMessageFuture();
- long futureId = messageFuture.getFutureId();
DiscardResultRequestMessage request =
- new DiscardResultRequestMessage(serviceCtx.getNodeId(),
futureId, jobId, resultSetId, requestId);
+ new DiscardResultRequestMessage(serviceCtx.getNodeId(), jobId,
resultSetId, requestId);
try {
messageBroker.sendMessageToPrimaryCC(request);
} catch (Exception e) {
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceRequestParameters.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceRequestParameters.java
index 49aba9c..8b48405 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceRequestParameters.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceRequestParameters.java
@@ -476,6 +476,7 @@
setHost(servlet.host(request));
setPath(servlet.servletPath(request));
setOptionalParams(optionalParams);
+ setIncludeHost(servlet.isOldApi(request));
try {
if (useRequestParameters(request)) {
setFromRequestParameters(request);
@@ -541,8 +542,7 @@
setClientType(parseIfExists(req, Parameter.CLIENT_TYPE.str(),
valGetter, getClientType(), clientTypes::get));
setSQLCompatMode(parseBoolean(req, Parameter.SQL_COMPAT.str(),
valGetter, isSQLCompatMode()));
setSource(valGetter.apply(req, Parameter.SOURCE.str()));
- setIncludeHost(parseBoolean(req, Parameter.INCLUDE_HOST.str(),
valGetter,
- isIncludeHost() || getMode() == ResultDelivery.DEFERRED));
+ setIncludeHost(parseBoolean(req, Parameter.INCLUDE_HOST.str(),
valGetter, isIncludeHost()));
}
protected void setExtraParams(JsonNode jsonRequest) throws
HyracksDataException {
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 c0de06a..c4956bd 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
@@ -454,4 +454,8 @@
protected String getApplicationVersion() {
return
ApplicationConfigurator.getApplicationVersion(appCtx.getBuildProperties());
}
+
+ protected boolean isOldApi(IServletRequest request) {
+ return true;
+ }
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultRequestMessage.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultRequestMessage.java
index b7486c5..7ca897a 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultRequestMessage.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultRequestMessage.java
@@ -20,7 +20,6 @@
import org.apache.asterix.common.dataflow.ICcApplicationContext;
import org.apache.asterix.common.messaging.api.ICcAddressedMessage;
-import org.apache.asterix.messaging.CCMessageBroker;
import org.apache.asterix.utils.AsyncRequestsAPIUtil;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.job.JobId;
@@ -36,12 +35,9 @@
private final JobId jobId;
private final ResultSetId resultSetId;
private final String requestId;
- private final long ncReqId;
- public DiscardResultRequestMessage(String nodeId, long ncReqId, JobId
jobId, ResultSetId resultSetId,
- String requestId) {
+ public DiscardResultRequestMessage(String nodeId, JobId jobId, ResultSetId
resultSetId, String requestId) {
this.nodeId = nodeId;
- this.ncReqId = ncReqId;
this.jobId = jobId;
this.resultSetId = resultSetId;
this.requestId = requestId;
@@ -49,14 +45,6 @@
@Override
public void handle(ICcApplicationContext appCtx) throws
HyracksDataException {
- CCMessageBroker messageBroker = (CCMessageBroker)
appCtx.getServiceContext().getMessageBroker();
AsyncRequestsAPIUtil.discardResultPartitions((ICcApplicationContext)
appCtx, jobId, resultSetId, requestId);
- DiscardResultResponseMessage response = new
DiscardResultResponseMessage(this.ncReqId);
- try {
- messageBroker.sendApplicationMessageToNC(response, nodeId);
- } catch (Exception e) {
- LOGGER.info("Failed to process request", e);
- throw HyracksDataException.create(e);
- }
}
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultResponseMessage.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultResponseMessage.java
deleted file mode 100644
index d938517..0000000
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/DiscardResultResponseMessage.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.asterix.app.message;
-
-import org.apache.asterix.common.api.INcApplicationContext;
-import org.apache.asterix.common.messaging.api.INcAddressedMessage;
-import org.apache.asterix.common.messaging.api.MessageFuture;
-import org.apache.asterix.messaging.NCMessageBroker;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class DiscardResultResponseMessage implements INcAddressedMessage {
-
- private static final long serialVersionUID = 1L;
- private final long reqId;
-
- public DiscardResultResponseMessage(long reqId) {
- this.reqId = reqId;
- }
-
- @Override
- public void handle(INcApplicationContext appCtx) throws
HyracksDataException, InterruptedException {
- NCMessageBroker mb = (NCMessageBroker)
appCtx.getServiceContext().getMessageBroker();
- MessageFuture future = mb.deregisterMessageFuture(reqId);
- if (future != null) {
- future.complete(this);
- }
- }
-}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/MetricsPrinter.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/MetricsPrinter.java
index 952c897..368c0da 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/MetricsPrinter.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/fields/MetricsPrinter.java
@@ -59,6 +59,7 @@
}
}
+ private static final Set<Metrics> ALL_METRICS = Set.of(Metrics.values());
public static final String FIELD_NAME = "metrics";
private final ResponseMetrics metrics;
private final Charset resultCharset;
@@ -71,7 +72,7 @@
public MetricsPrinter(ResponseMetrics metrics, Charset resultCharset,
Set<Metrics> selectedMetrics) {
this.metrics = metrics;
this.resultCharset = resultCharset;
- this.selectedMetrics = selectedMetrics == null ?
Set.of(Metrics.values()) : selectedMetrics;
+ this.selectedMetrics = selectedMetrics == null ? ALL_METRICS :
selectedMetrics;
}
@Override
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-exhausted-result/async-exhausted-result.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-exhausted-result/async-exhausted-result.1.async.sqlpp
index b59b87a..58c30ed 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-exhausted-result/async-exhausted-result.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-exhausted-result/async-exhausted-result.1.async.sqlpp
@@ -19,4 +19,5 @@
-- maxresultreads=1
-- handlevariable=status
+-- param include-host=false
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-failed/async-failed.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-failed/async-failed.1.async.sqlpp
index 3277705..b1aef31 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-failed/async-failed.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-failed/async-failed.1.async.sqlpp
@@ -18,5 +18,6 @@
*/
-- handlevariable=status
+-- param include-host=false
set `import-private-functions` `true`;
select value inject_failure(sleep("result", 5000), true);
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.1.async.sqlpp
index 97e3367..298f44c 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.1.async.sqlpp
@@ -18,4 +18,5 @@
*/
-- handlevariable=status
+-- param include-host=false
select i, i * i as i2 from range(1, 5) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.6.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.6.async.sqlpp
index 32ad877..0e123c3 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.6.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-json/async-json.6.async.sqlpp
@@ -17,7 +17,7 @@
* under the License.
*/
-- handlevariable=status
-
+-- param include-host=false
use test;
SET `compiler.sort.parallel` "true";
Select * from Test order by val;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-repeated/async-repeated.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-repeated/async-repeated.1.async.sqlpp
index 60e88f4..ff1feac 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-repeated/async-repeated.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-repeated/async-repeated.1.async.sqlpp
@@ -19,4 +19,5 @@
-- maxresultreads=2
-- handlevariable=status
+-- param include-host=false
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-running/async-running.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-running/async-running.1.async.sqlpp
index 3fed1e4..d80bd5a 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-running/async-running.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-running/async-running.1.async.sqlpp
@@ -18,4 +18,5 @@
*/
-- handlevariable=status
+-- param include-host=false
select value sleep("result", 5000);
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-timeout/async.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-timeout/async.1.async.sqlpp
index d77d375..0a0e3ce 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-timeout/async.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async-timeout/async.1.async.sqlpp
@@ -19,4 +19,5 @@
-- handlevariable=status
-- param timeout=1s
+-- param include-host=false
select sleep("should not return", 60000);
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async/async.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async/async.1.async.sqlpp
index 5044611..f1d4cb0 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async/async.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred-improved/async/async.1.async.sqlpp
@@ -18,4 +18,5 @@
*/
-- handlevariable=status
+-- param include-host=false
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-compilation-failed/async-compilation-failed.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-compilation-failed/async-compilation-failed.1.async.sqlpp
index e63fd76..66d97f2 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-compilation-failed/async-compilation-failed.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-compilation-failed/async-compilation-failed.1.async.sqlpp
@@ -18,7 +18,6 @@
*/
-- handlevariable=status
--- param include-host=true
select count(*)
from gargel
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-exhausted-result/async-exhausted-result.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-exhausted-result/async-exhausted-result.1.async.sqlpp
index 48872a1..f8ec2cf 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-exhausted-result/async-exhausted-result.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-exhausted-result/async-exhausted-result.1.async.sqlpp
@@ -19,6 +19,5 @@
-- maxresultreads=1
-- handlevariable=status
--- param include-host=true
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-failed/async-failed.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-failed/async-failed.1.async.sqlpp
index b95cca0..d31a17a 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-failed/async-failed.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-failed/async-failed.1.async.sqlpp
@@ -18,7 +18,6 @@
*/
-- handlevariable=status
--- param include-host=true
set `import-private-functions` `true`;
select value inject_failure(sleep("result", 5000), true);
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-json/async-json.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-json/async-json.1.async.sqlpp
index 950fc1a..e24253a 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-json/async-json.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-json/async-json.1.async.sqlpp
@@ -18,6 +18,5 @@
*/
-- handlevariable=status
--- param include-host=true
select i, i * i as i2 from range(1, 5) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-repeated/async-repeated.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-repeated/async-repeated.1.async.sqlpp
index 5328445..8055915 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-repeated/async-repeated.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-repeated/async-repeated.1.async.sqlpp
@@ -19,6 +19,5 @@
-- maxresultreads=2
-- handlevariable=status
--- param include-host=true
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-running/async-running.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-running/async-running.1.async.sqlpp
index 80f4868..661887f 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-running/async-running.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async-running/async-running.1.async.sqlpp
@@ -18,6 +18,5 @@
*/
-- handlevariable=status
--- param include-host=true
select value sleep("result", 5000);
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async/async.1.async.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async/async.1.async.sqlpp
index 56b8960..1e18f66 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async/async.1.async.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/async-deferred/async/async.1.async.sqlpp
@@ -18,6 +18,5 @@
*/
-- handlevariable=status
--- param include-host=true
select i, i * i as i2 from range(1, 10) i;
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
index b27a4e0..8f3ff6d 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/api/IRequestTracker.java
@@ -94,10 +94,26 @@
*/
long getTotalNumberOfFailedRequests();
+ /**
+ * Starts tracking an asynchronous or deferred request
+ *
+ * @param request
+ */
void trackAsyncOrDeferredRequest(IClientRequest request);
+ /**
+ * Removes an asynchronous or deferred request from tracking
+ *
+ * @param requestId
+ */
void removeAsyncOrDeferredRequest(String requestId);
+ /**
+ * Gets an asynchronous or deferred request by {@code requestId}
+ *
+ * @param requestId
+ * @return an Optional of the client request
+ */
Optional<IClientRequest> getAsyncOrDeferredRequest(String requestId);
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultPartitionManager.java
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultPartitionManager.java
index 65ae2ab..800f78c 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultPartitionManager.java
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultPartitionManager.java
@@ -30,7 +30,7 @@
void registerResultPartitionLocation(JobId jobId, ResultSetId rsId, int
partition, int nPartitions,
IResultMetadata metadata, boolean emptyResult) throws
HyracksException;
- void reportPartitionWriteCompletion(JobId jobId, ResultSetId resultSetId,
int partition, int resultCount)
+ void reportPartitionWriteCompletion(JobId jobId, ResultSetId resultSetId,
int partition, long resultCount)
throws HyracksException;
void reportPartitionConsumed(JobId jobId, ResultSetId rsId, int partition)
throws HyracksException;
diff --git
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultDirectoryRecord.java
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultDirectoryRecord.java
index b56d36c..c7071c5 100644
---
a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultDirectoryRecord.java
+++
b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultDirectoryRecord.java
@@ -40,7 +40,7 @@
private boolean empty;
- private int resultCount;
+ private long resultCount;
private String nodeId;
@@ -71,7 +71,7 @@
this.empty = empty;
}
- public void setResultCount(int resultCount) {
+ public void setResultCount(long resultCount) {
this.resultCount = resultCount;
}
@@ -103,7 +103,7 @@
status = Status.FAILED;
}
- public int getResultCount() {
+ public long getResultCount() {
return resultCount;
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/IResultDirectoryService.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/IResultDirectoryService.java
index 69a420a..0366774 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/IResultDirectoryService.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/IResultDirectoryService.java
@@ -40,7 +40,7 @@
boolean emptyResult, int partition, int nPartitions,
NetworkAddress networkAddress, String nodeId)
throws HyracksDataException;
- public void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId
rsId, int partition, int resultCount)
+ public void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId
rsId, int partition, long resultCount)
throws HyracksDataException;
public void reportResultPartitionConsumed(JobId jobId, ResultSetId rsId,
int partition) throws HyracksDataException;
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/ResultDirectoryService.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/ResultDirectoryService.java
index c7ccc22..f7187a0 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/ResultDirectoryService.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/result/ResultDirectoryService.java
@@ -154,7 +154,7 @@
@Override
public synchronized void reportResultPartitionWriteCompletion(JobId jobId,
ResultSetId rsId, int partition,
- int resultCount) throws HyracksDataException {
+ long resultCount) throws HyracksDataException {
ResultJobRecord djr = getNonNullResultJobRecord(jobId);
djr.getDirectoryRecord(partition).writeEOS();
djr.getDirectoryRecord(partition).setResultCount(resultCount);
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/ReportResultPartitionWriteCompletionWork.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/ReportResultPartitionWriteCompletionWork.java
index bc161f8..3657fad 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/ReportResultPartitionWriteCompletionWork.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/ReportResultPartitionWriteCompletionWork.java
@@ -33,10 +33,10 @@
private final int partition;
- private final int resultCount;
+ private final long resultCount;
public ReportResultPartitionWriteCompletionWork(ClusterControllerService
ccs, JobId jobId, ResultSetId rsId,
- int partition, int resultCount) {
+ int partition, long resultCount) {
this.ccs = ccs;
this.jobId = jobId;
this.rsId = rsId;
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/base/IClusterController.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/base/IClusterController.java
index 7381857..874947d 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/base/IClusterController.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/base/IClusterController.java
@@ -71,7 +71,7 @@
void registerResultPartitionLocation(JobId jobId, ResultSetId rsId,
IResultMetadata metadata, boolean emptyResult,
int partition, int nPartitions, NetworkAddress networkAddress,
String nodeId) throws Exception;
- void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId rsId,
int partition, int resultCount)
+ void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId rsId,
int partition, long resultCount)
throws Exception;
void reportResultPartitionConsumed(JobId jobId, ResultSetId rsId, int
partition) throws Exception;
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
index 333f07c..8b68f91 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/CCNCFunctions.java
@@ -670,10 +670,10 @@
private final int partition;
- private final int resultCount;
+ private final long resultCount;
public ReportResultPartitionWriteCompletionFunction(JobId jobId,
ResultSetId rsId, int partition,
- int resultCount) {
+ long resultCount) {
this.jobId = jobId;
this.rsId = rsId;
this.partition = partition;
@@ -697,7 +697,7 @@
return partition;
}
- public int getResultCount() {
+ public long getResultCount() {
return resultCount;
}
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/ClusterControllerRemoteProxy.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/ClusterControllerRemoteProxy.java
index 46b1924..f4ac77d 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/ClusterControllerRemoteProxy.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/ipc/ClusterControllerRemoteProxy.java
@@ -150,7 +150,7 @@
}
@Override
- public void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId
rsId, int partition, int resultCount)
+ public void reportResultPartitionWriteCompletion(JobId jobId, ResultSetId
rsId, int partition, long resultCount)
throws Exception {
ReportResultPartitionWriteCompletionFunction fn =
new ReportResultPartitionWriteCompletionFunction(jobId, rsId,
partition, resultCount);
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionManager.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionManager.java
index 877db8a..41cd316 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionManager.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionManager.java
@@ -100,7 +100,7 @@
}
@Override
- public void reportPartitionWriteCompletion(JobId jobId, ResultSetId rsId,
int partition, int resultCount)
+ public void reportPartitionWriteCompletion(JobId jobId, ResultSetId rsId,
int partition, long resultCount)
throws HyracksException {
try {
LOGGER.trace("Reporting partition write completion: JobId:
{}:ResultSetId: {}:partition: {}", jobId, rsId,
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionWriter.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionWriter.java
index aec5697..abec6bc 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionWriter.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultPartitionWriter.java
@@ -58,7 +58,7 @@
private boolean failed = false;
- private int resultCount;
+ private long resultCount;
public ResultPartitionWriter(IHyracksTaskContext ctx,
IResultPartitionManager manager, JobId jobId,
ResultSetId rsId, boolean asyncMode, IResultMetadata metadata, int
partition, int nPartitions,
diff --git
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultState.java
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultState.java
index 880afb7..ac24096 100644
---
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultState.java
+++
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultState.java
@@ -74,9 +74,7 @@
ResultState(ResultSetPartitionId resultSetPartitionId, boolean asyncMode,
IIOManager ioManager,
IWorkspaceFileFactory fileFactory, int frameSize, long maxReads) {
- if (maxReads < -1) {
- throw new IllegalArgumentException("maxReads must be >= -1");
- }
+ validateMaxReads(maxReads);
this.maxReads = maxReads;
this.resultSetPartitionId = resultSetPartitionId;
this.asyncMode = asyncMode;
@@ -92,6 +90,12 @@
fileHandle = null;
}
+ private void validateMaxReads(long maxReads) {
+ if (maxReads != UNLIMITED_READS && maxReads < 1) {
+ throw new IllegalArgumentException("maxReads must be >= 1 or -1
for unlimited reads");
+ }
+ }
+
public synchronized void open() {
size = 0;
persistentSize = 0;
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20529?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: phoenix
Gerrit-Change-Id: I5c1df629ccb2ad15c0b50a1ae65482c53fe51adc
Gerrit-Change-Number: 20529
Gerrit-PatchSet: 1
Gerrit-Owner: Peeyush Gupta <[email protected]>