>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]>

Reply via email to