@Override public void fatal(Throwable cause) { try (SetThreadName ignored = new SetThreadName("UpdateResponseHandler-%s", taskId)) { failTask(cause); } }
@Override public void fatal(Throwable cause) { try (SetThreadName ignored = new SetThreadName("TaskInfoFetcher-%s", taskId)) { onFail.accept(cause); } }
public void abort() { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { stages.values().forEach(SqlStageExecution::abort); } }
@Override public void fatal(Throwable cause) { try (SetThreadName ignored = new SetThreadName("ContinuousTaskStatusFetcher-%s", taskId)) { updateStats(currentRequestStartNanos.get()); onFail.accept(cause); } }
@Override public void addStateChangeListener(StateChangeListener<TaskStatus> stateChangeListener) { try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { taskStatusFetcher.addStateChangeListener(stateChangeListener); } }
public TaskInfo getTaskInfo() { try (SetThreadName ignored = new SetThreadName("Task-%s", taskId)) { return createTaskInfo(taskHolderReference.get()); } }
public TaskStatus getTaskStatus() { try (SetThreadName ignored = new SetThreadName("Task-%s", taskId)) { return createTaskStatus(taskHolderReference.get()); } }
public void cancelStage(StageId stageId) { try (SetThreadName ignored = new SetThreadName("Query-%s", queryStateMachine.getQueryId())) { SqlStageExecution sqlStageExecution = stages.get(stageId); SqlStageExecution stage = requireNonNull(sqlStageExecution, () -> format("Stage %s does not exist", stageId)); stage.cancel(); } }
@Override public void cancelStage(StageId stageId) { requireNonNull(stageId, "stageId is null"); try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { SqlQueryScheduler scheduler = queryScheduler.get(); if (scheduler != null) { scheduler.cancelStage(stageId); } } }
@Override public void addStateChangeListener(StateChangeListener<QueryState> stateChangeListener) { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { stateMachine.addStateChangeListener(stateChangeListener); } }
@Override public QueryInfo getQueryInfo() { try (SetThreadName ignored = new SetThreadName("Query-%s", stateMachine.getQueryId())) { // acquire reference to scheduler before checking finalQueryInfo, because // state change listener sets finalQueryInfo and then clears scheduler when // the query finishes. SqlQueryScheduler scheduler = queryScheduler.get(); return stateMachine.getFinalQueryInfo().orElseGet(() -> buildQueryInfo(scheduler)); } }
@Override public void success(TaskInfo newValue) { try (SetThreadName ignored = new SetThreadName("TaskInfoFetcher-%s", taskId)) { lastUpdateNanos.set(System.nanoTime()); long startNanos; synchronized (this) { startNanos = this.currentRequestStartNanos.get(); } updateStats(startNanos); errorTracker.requestSucceeded(); updateTaskInfo(newValue); } }
@Override public void failed(Throwable cause) { try (SetThreadName ignored = new SetThreadName("TaskInfoFetcher-%s", taskId)) { lastUpdateNanos.set(System.nanoTime()); try { // if task not already done, record error if (!isDone(getTaskInfo())) { errorTracker.requestFailed(cause); } } catch (Error e) { onFail.accept(e); throw e; } catch (RuntimeException e) { onFail.accept(e); } } }
checkState(!Thread.holdsLock(this), "Can not add sources while holding a lock on the %s", getClass().getSimpleName()); try (SetThreadName ignored = new SetThreadName("Task-%s", taskId)) {
public void removeTask(TaskHandle taskHandle) { try (SetThreadName ignored = new SetThreadName("Task-%s", taskHandle.getTaskId())) { doRemoveTask(taskHandle); } // replace blocked splits that were terminated addNewEntrants(); }
@Override public void start() { try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { // to start we just need to trigger an update scheduleUpdate(); taskStatusFetcher.start(); taskInfoFetcher.start(); } }
@Override public void success(TaskInfo value) { try (SetThreadName ignored = new SetThreadName("UpdateResponseHandler-%s", taskId)) { try { long currentRequestStartNanos; synchronized (HttpRemoteTask.this) { currentRequest = null; sendPlan.set(value.isNeedsPlan()); currentRequestStartNanos = HttpRemoteTask.this.currentRequestStartNanos; } updateStats(currentRequestStartNanos); processTaskUpdate(value, sources); updateErrorTracker.requestSucceeded(); } finally { sendUpdate(); } } }
@Override public void success(TaskStatus value) { try (SetThreadName ignored = new SetThreadName("ContinuousTaskStatusFetcher-%s", taskId)) { updateStats(currentRequestStartNanos.get()); try { updateTaskStatus(value); errorTracker.requestSucceeded(); } finally { scheduleNextRequest(); } } }
@Override public void onSuccess(Object result) { try (SetThreadName ignored = new SetThreadName("Task-%s", taskId)) { // record driver is finished status.decrementRemainingDriver(splitRunner.getLifespan()); checkTaskCompletion(); splitMonitor.splitCompletedEvent(taskId, getDriverStats()); } }
@Override public void failed(Throwable cause) { try (SetThreadName ignored = new SetThreadName("ContinuousTaskStatusFetcher-%s", taskId)) { updateStats(currentRequestStartNanos.get()); try { // if task not already done, record error TaskStatus taskStatus = getTaskStatus(); if (!taskStatus.getState().isDone()) { errorTracker.requestFailed(cause); } } catch (Error e) { onFail.accept(e); throw e; } catch (RuntimeException e) { onFail.accept(e); } finally { scheduleNextRequest(); } } }