>From Ali Alsuliman <[email protected]>: Ali Alsuliman has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21279?usp=email )
Change subject: [ASTERIXDB-3649][HYR][API] Sweep only completed jobs + RESULT_TTL change ...................................................................... [ASTERIXDB-3649][HYR][API] Sweep only completed jobs + RESULT_TTL change - user model changes: no - storage format changes: no - interface changes: yes Details: - when a request (having a linked job id) is processed, remove the job record and the request for ones that are done. - when a request is discarded, allow discarding jobs having a terminal state like "failed", i.e. only disallow discarding in-progress jobs. - change default RESULT_TTL to 1 hour instead of 24 hours. Ext-ref: MB-71997 Change-Id: Ide6d7df9e522fe96e45808a2fd6b7eb802477093 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21279 Reviewed-by: Ian Maxon <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Tested-by: Ali Alsuliman <[email protected]> Integration-Tests: Jenkins <[email protected]> --- M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/AsyncRequestsAPIUtil.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultStateRecord.java M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultJobRecord.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.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-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/result/AbstractResultManager.java M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.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/ResultSetMap.java 14 files changed, 88 insertions(+), 58 deletions(-) Approvals: Ali Alsuliman: Looks good to me, but someone else must approve; Verified Ian Maxon: Looks good to me, approved Jenkins: Verified Anon. E. Moose #1000171: diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java index b7e195b..8e165c0 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java @@ -373,7 +373,7 @@ public void compileAndExecute(IHyracksClientConnection hcc, IRequestParameters requestParameters) throws Exception { validateStatements(requestParameters); boolean trackInAsyncDeferredRequests = shouldTrackAsSeparateRequest(requestParameters); - trackRequest(requestParameters, trackInAsyncDeferredRequests); + IClientRequest clientRequest = trackRequest(requestParameters, trackInAsyncDeferredRequests); Counter resultSetIdCounter = new Counter(0); FileSplit outputFile = null; String threadName = Thread.currentThread().getName(); @@ -613,34 +613,30 @@ if (statements.isEmpty() || ResultDelivery.ASYNC != resultDelivery) { // this assumes 1-1 mapping between a request and a statement, needs to be adapted for multi-statement appCtx.getRequestTracker().complete(reqId); - if (ResultDelivery.ASYNC != resultDelivery) { - completeDeferred(reqId, hasResultSet, exception); + if (ResultDelivery.ASYNC != resultDelivery && trackInAsyncDeferredRequests) { + completeDeferred((ClientRequest) clientRequest, hasResultSet, exception); } } Thread.currentThread().setName(threadName); } } - private void completeDeferred(String reqId, boolean hasResultSet, Exception exception) { + private void completeDeferred(ClientRequest clientRequest, boolean hasResultSet, Exception exception) { try { - Optional<IClientRequest> optClientReq = appCtx.getRequestTracker().getAsyncOrDeferredRequest(reqId); - if (optClientReq.isPresent()) { - ClientRequest clientRequest = (ClientRequest) optClientReq.get(); - JobId jobId = clientRequest.getJobId(); - if (jobId == null) { - // jobId = null either means: - // 1. compile error, compile-only, ... resulting in no job created whether query, DML or DDL - // 2. statement currently not setting jobId in the client request, e.g. DDLs - // for 2. it needs to be handled so that the job record is removed also if not producing a result - appCtx.getRequestTracker().removeAsyncOrDeferredRequest(reqId); - } else if (!hasResultSet) { - // don't sweep ones that completed successfully and produced a result - // sweeps statements not producing a result, e.g. DMLs without a return clause - // sweeps statements that threw an exception whether query, DML or DDL - ClusterControllerService ccSvs = - (ClusterControllerService) appCtx.getServiceContext().getControllerService(); - ccSvs.getResultDirectoryService().sweep(jobId); - } + JobId jobId = clientRequest.getJobId(); + if (jobId == null) { + // jobId = null either means: + // 1. compile error, compile-only, ... resulting in no job created whether query, DML or DDL + // 2. statement currently not setting jobId in the client request, e.g. DDLs + // for 2. it needs to be handled so that the job record is removed also if not producing a result + appCtx.getRequestTracker().removeAsyncOrDeferredRequest(clientRequest.getId()); + } else if (!hasResultSet) { + // don't sweep ones that completed successfully and produced a result + // sweeps statements not producing a result, e.g. DMLs without a return clause + // sweeps statements that threw an exception whether query, DML or DDL + ClusterControllerService ccSvs = + (ClusterControllerService) appCtx.getServiceContext().getControllerService(); + ccSvs.getResultDirectoryService().removeIfDone(jobId); } } catch (Throwable th) { if (exception != null) { @@ -6046,13 +6042,14 @@ } } - protected void trackRequest(IRequestParameters requestParameters, boolean trackInAsyncDeferredRequests) + protected IClientRequest trackRequest(IRequestParameters requestParameters, boolean trackInAsyncDeferredRequests) throws HyracksDataException { final IClientRequest clientRequest = appCtx.getReceptionist().requestReceived(requestParameters); this.appCtx.getRequestTracker().track(clientRequest); if (trackInAsyncDeferredRequests) { appCtx.getRequestTracker().trackAsyncOrDeferredRequest(clientRequest); } + return clientRequest; } /** diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/AsyncRequestsAPIUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/AsyncRequestsAPIUtil.java index b92ec57..bce9f7b 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/AsyncRequestsAPIUtil.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/AsyncRequestsAPIUtil.java @@ -39,10 +39,10 @@ import org.apache.hyracks.api.application.INCServiceContext; import org.apache.hyracks.api.exceptions.HyracksDataException; import org.apache.hyracks.api.job.JobId; -import org.apache.hyracks.api.result.IResultMetadata; import org.apache.hyracks.api.result.ResultDirectoryRecord; import org.apache.hyracks.api.result.ResultJobRecord; import org.apache.hyracks.api.result.ResultSetId; +import org.apache.hyracks.api.result.ResultSetMetaData; import org.apache.hyracks.control.cc.ClusterControllerService; import org.apache.hyracks.control.cc.result.IResultDirectoryService; import org.apache.hyracks.control.common.work.IResultCallback; @@ -74,20 +74,25 @@ ((ClusterControllerService) appCtx.getServiceContext().getControllerService()) .getResultDirectoryService(); // Check if result is in a valid state for discarding - ResultJobRecord.Status status = resultDirectoryService.getResultStatus(jobId, resultSetId); - if (status.getState() != ResultJobRecord.State.SUCCESS) { - LOGGER.log(Level.WARN, "Cannot discard result for job {}, result set {}, request {} - status is {}", jobId, - resultSetId, requestId, status); + ResultJobRecord jobRecord = resultDirectoryService.getJobRecord(jobId); + if (jobRecord == null) { + LOGGER.warn("Job record not found for job {}, request {}. Removing request tracking info", jobId, + requestId); + removeRequest(appCtx, requestId); return; } - IResultMetadata resultMetadata = resultDirectoryService.getResultMetadata(jobId, resultSetId); - if (resultMetadata == null) { + if (!jobRecord.isDone()) { + LOGGER.warn("Cannot discard result for job {}, result set {}, request {} - status is {}", jobId, + resultSetId, requestId, jobRecord.getStatus().getState()); + return; + } + ResultSetMetaData resultSetMetaData = jobRecord.getResultSetMetaData(); + if (resultSetMetaData == null || resultSetMetaData.getMetadata() == null) { LOGGER.debug( - "Result metadata not found for job {}, result set {}, request id {}. Removing async req tracking info", + "Result metadata not found for job {}, result set {}, request {}. Removing request tracking info and job record", jobId, resultSetId, requestId); - if (requestId != null) { - appCtx.getRequestTracker().removeAsyncOrDeferredRequest(requestId); - } + resultDirectoryService.sweep(jobId); + removeRequest(appCtx, requestId); return; } @@ -105,6 +110,10 @@ // Clean up result directory and request tracking resultDirectoryService.sweep(jobId); + removeRequest(appCtx, requestId); + } + + private static void removeRequest(ICcApplicationContext appCtx, String requestId) { if (requestId != null) { appCtx.getRequestTracker().removeAsyncOrDeferredRequest(requestId); } diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java index 54b4004..bd0d4dc 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java @@ -229,7 +229,7 @@ ccConfig.setClientListenAddress(Inet4Address.getLoopbackAddress().getHostAddress()); ccConfig.setClientListenPort(DEFAULT_HYRACKS_CC_CLIENT_PORT); ccConfig.setClusterListenPort(DEFAULT_HYRACKS_CC_CLUSTER_PORT); - ccConfig.setResultTTL(RESULT_TTL); + ccConfig.setResultTTLMillis(RESULT_TTL); ccConfig.setResultSweepThreshold(1000L); ccConfig.setEnforceFrameWriterProtocol(true); configManager.set(ControllerConfig.Option.DEFAULT_DIR, joinPath(getDefaultStoragePath(), "asterixdb")); @@ -258,7 +258,7 @@ ncConfig.setDataListenAddress(Inet4Address.getLoopbackAddress().getHostAddress()); ncConfig.setResultListenAddress(Inet4Address.getLoopbackAddress().getHostAddress()); ncConfig.setMessagingListenAddress(Inet4Address.getLoopbackAddress().getHostAddress()); - ncConfig.setResultTTL(RESULT_TTL); + ncConfig.setResultTTLMillis(RESULT_TTL); ncConfig.setResultSweepThreshold(1000L); ncConfig.setVirtualNC(); configManager.set(ControllerConfig.Option.DEFAULT_DIR, joinPath(getDefaultStoragePath(), "asterixdb", ncName)); diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultStateRecord.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultStateRecord.java index 752ff4f..4baa9ea 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultStateRecord.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/IResultStateRecord.java @@ -23,7 +23,7 @@ /** * Returns the timestamp in nanoseconds when the record is created. */ - long getTimestamp(); + long getTimestampNanos(); /** * Returns the per-request result TTL in nanoseconds, or -1 if system default should be used. @@ -33,6 +33,6 @@ /** * Returns the timestamp in nanoseconds when the record is completed, or 0 if not completed yet. */ - long getCompleteTimestamp(); + long getCompleteTimestampNanos(); } diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultJobRecord.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultJobRecord.java index eae1ba0..a9a0492 100644 --- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultJobRecord.java +++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/result/ResultJobRecord.java @@ -156,13 +156,17 @@ updateState(State.TIMEOUT); } + public boolean isDone() { + return status.state != State.RUNNING && status.state != State.IDLE; + } + @Override - public long getTimestamp() { + public long getTimestampNanos() { return timestamp; } @Override - public long getCompleteTimestamp() { + public long getCompleteTimestampNanos() { return jobEndTime; } diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java index a386ab8..f7ea382 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/ClusterControllerService.java @@ -181,7 +181,7 @@ ccContext = new ClusterControllerContext(topology); sweeper = new DeadNodeSweeper(); resultDirectoryService = - new ResultDirectoryService(ccConfig.getResultTTL(), ccConfig.getResultSweepThreshold()); + new ResultDirectoryService(ccConfig.getResultTTLMillis(), ccConfig.getResultSweepThreshold()); deploymentRunMap = new HashMap<>(); stateDumpRunMap = new HashMap<>(); 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 0366774..c2e49c6 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 @@ -29,6 +29,7 @@ import org.apache.hyracks.api.result.IResultManager; import org.apache.hyracks.api.result.IResultMetadata; import org.apache.hyracks.api.result.ResultDirectoryRecord; +import org.apache.hyracks.api.result.ResultJobRecord; import org.apache.hyracks.api.result.ResultJobRecord.Status; import org.apache.hyracks.api.result.ResultSetId; import org.apache.hyracks.control.common.work.IResultCallback; @@ -55,4 +56,9 @@ public void getResultPartitionLocations(JobId jobId, ResultSetId rsId, ResultDirectoryRecord[] knownLocations, IResultCallback<ResultDirectoryRecord[]> callback) throws HyracksDataException; + + public void removeIfDone(JobId jobId); + + public ResultJobRecord getJobRecord(JobId jobId); + } 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 d9d446f..40643d4 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 @@ -66,8 +66,8 @@ private final Map<JobId, JobResultInfo> jobResultLocations; private IJobResultCallback jobResultCallback; - public ResultDirectoryService(long resultTTL, long resultSweepThreshold) { - super(resultTTL); + public ResultDirectoryService(long resultTTLMillis, long resultSweepThreshold) { + super(resultTTLMillis); this.resultSweepThreshold = resultSweepThreshold; jobResultLocations = new LinkedHashMap<>(); } @@ -102,6 +102,7 @@ } @Override + //TODO: shouldn't this also be synchronized? public void notifyJobFinish(JobId jobId, JobSpecification spec, JobStatus jobStatus, List<Exception> exceptions) throws HyracksException { ResultJobRecord resultJobRecord = getResultJobRecord(jobId); @@ -228,6 +229,14 @@ } @Override + public synchronized void removeIfDone(JobId jobId) { + ResultJobRecord resultJobRecord = getResultJobRecord(jobId); + if (resultJobRecord != null && resultJobRecord.isDone()) { + sweep(jobId); + } + } + + @Override public synchronized Set<JobId> getJobIds() { return jobResultLocations.keySet(); } @@ -238,6 +247,11 @@ } @Override + public synchronized ResultJobRecord getJobRecord(JobId jobId) { + return getResultJobRecord(jobId); + } + + @Override public void sweep(JobId jobId) { JobResultInfo removedJob = sweepJob(jobId); if (removedJob != null) { diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java index 18825da..3c85e2f 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/CCConfig.java @@ -66,7 +66,7 @@ DEAD_NODE_SWEEP_THRESHOLD(LONG, HEARTBEAT_PERIOD), PROFILE_DUMP_PERIOD(NONNEGATIVE_INTEGER, 0), JOB_HISTORY_SIZE(NONNEGATIVE_INTEGER, 10), - RESULT_TTL(LONG, 86400000L), // TODO(mblow): add time unit + RESULT_TTL(LONG, 3600000L), // TODO(mblow): add time unit RESULT_SWEEP_THRESHOLD(LONG, 60000L), // TODO(mblow): add time unit @SuppressWarnings("RedundantCast") // not redundant- false positive from IDEA ROOT_DIR(STRING, (Function<IApplicationConfig, String>) appConfig -> FileUtil.joinPath(appConfig.getString(ControllerConfig.Option.DEFAULT_DIR), "ClusterControllerService"), "<value of " + ControllerConfig.Option.DEFAULT_DIR.cmdline() + ">/ClusterControllerService"), @@ -388,12 +388,12 @@ configManager.set(Option.JOB_HISTORY_SIZE, jobHistorySize); } - public long getResultTTL() { + public long getResultTTLMillis() { return getAppConfig().getLong(Option.RESULT_TTL); } - public void setResultTTL(long resultTTL) { - configManager.set(Option.RESULT_TTL, resultTTL); + public void setResultTTLMillis(long resultTTLMillis) { + configManager.set(Option.RESULT_TTL, resultTTLMillis); } public long getResultSweepThreshold() { diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java index f55dd59..50e9e42 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/controllers/NCConfig.java @@ -82,7 +82,7 @@ "<value of " + ControllerConfig.Option.DEFAULT_DIR.cmdline() + ">/iodevice"), NET_THREAD_COUNT(POSITIVE_INTEGER, 1), NET_BUFFER_COUNT(POSITIVE_INTEGER, 1), - RESULT_TTL(LONG, 86400000L), + RESULT_TTL(LONG, 3600000L), RESULT_SWEEP_THRESHOLD(LONG, 60000L), RESULT_MANAGER_MEMORY(INTEGER_BYTE_UNIT, -1), @SuppressWarnings("RedundantCast") // not redundant- false positive from IDEA @@ -568,12 +568,12 @@ configManager.set(nodeId, Option.NET_BUFFER_COUNT, netBufferCount); } - public long getResultTTL() { + public long getResultTTLMillis() { return appConfig.getLong(Option.RESULT_TTL); } - public void setResultTTL(long resultTTL) { - configManager.set(nodeId, Option.RESULT_TTL, resultTTL); + public void setResultTTLMillis(long resultTTLMillis) { + configManager.set(nodeId, Option.RESULT_TTL, resultTTLMillis); } public long getResultSweepThreshold() { diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/result/AbstractResultManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/result/AbstractResultManager.java index 46e6f2d..1aff09f 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/result/AbstractResultManager.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/result/AbstractResultManager.java @@ -50,7 +50,7 @@ } private boolean hasExpired(IResultStateRecord state, long currentTime) { - long completeTimestamp = state.getCompleteTimestamp(); + long completeTimestamp = state.getCompleteTimestampNanos(); if (completeTimestamp <= 0) { // Not completed yet, not expired return false; diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java index f3df6a8..a0c2185 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NodeControllerService.java @@ -265,7 +265,7 @@ private void init() { resultPartitionManager = new ResultPartitionManager(this, executor, ncConfig.getResultManagerMemory(), - ncConfig.getResultTTL(), ncConfig.getResultSweepThreshold()); + ncConfig.getResultTTLMillis(), ncConfig.getResultSweepThreshold()); resultNetworkManager = new ResultNetworkManager(ncConfig.getResultListenAddress(), ncConfig.getResultListenPort(), resultPartitionManager, ncConfig.getNetThreadCount(), ncConfig.getNetBufferCount(), ncConfig.getResultPublicAddress(), ncConfig.getResultPublicPort(), 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 963def0..b13988a 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 @@ -55,9 +55,9 @@ private final ResultMemoryManager resultMemoryManager; - public ResultPartitionManager(NodeControllerService ncs, Executor executor, int availableMemory, long resultTTL, - long resultSweepThreshold) { - super(resultTTL); + public ResultPartitionManager(NodeControllerService ncs, Executor executor, int availableMemory, + long resultTTLMillis, long resultSweepThreshold) { + super(resultTTLMillis); this.ncs = ncs; this.executor = executor; deallocatableRegistry = new DefaultDeallocatableRegistry(); diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultSetMap.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultSetMap.java index bb73f84..35b69e4 100644 --- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultSetMap.java +++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/result/ResultSetMap.java @@ -45,12 +45,12 @@ } @Override - public long getTimestamp() { + public long getTimestampNanos() { return timestamp; } @Override - public long getCompleteTimestamp() { + public long getCompleteTimestampNanos() { return completeTimestamp; } -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21279?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: lumina Gerrit-Change-Id: Ide6d7df9e522fe96e45808a2fd6b7eb802477093 Gerrit-Change-Number: 21279 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Hussain Towaileb <[email protected]> Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]>
