>From Peeyush Gupta <[email protected]>: Peeyush Gupta has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20529?usp=email )
( 2 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )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 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20529 Tested-by: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Integration-Tests: Jenkins <[email protected]> --- 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(-) Approvals: Murtadha Hubail: Looks good to me, approved Jenkins: Verified; Verified 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 f61bafc..5111cea 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 @@ -155,7 +155,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: merged Gerrit-Project: asterixdb Gerrit-Branch: phoenix Gerrit-Change-Id: I5c1df629ccb2ad15c0b50a1ae65482c53fe51adc Gerrit-Change-Number: 20529 Gerrit-PatchSet: 4 Gerrit-Owner: Peeyush Gupta <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]> Gerrit-CC: Anon. E. Moose #1000171
