You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ab...@apache.org on 2020/04/07 12:41:05 UTC

[hive] branch master updated: HIVE-23122: LLAP: TaskExecutorService should log details about task eviction decision details (László Bodor reviewed by Panagiotis Garefalakis, Rajesh Balamohan)

This is an automated email from the ASF dual-hosted git repository.

abstractdog pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new aed6bbf  HIVE-23122: LLAP: TaskExecutorService should log details about task eviction decision details (László Bodor reviewed by Panagiotis Garefalakis, Rajesh Balamohan)
aed6bbf is described below

commit aed6bbfca79949ce944e14fd4a12d17eef8e1c73
Author: László Bodor <bo...@gmail.com>
AuthorDate: Tue Apr 7 14:40:28 2020 +0200

    HIVE-23122: LLAP: TaskExecutorService should log details about task eviction decision details (László Bodor reviewed by Panagiotis Garefalakis, Rajesh Balamohan)
    
    Signed-off-by: Laszlo Bodor <bo...@gmail.com>
---
 .../hive/llap/daemon/impl/TaskExecutorService.java | 25 ++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorService.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorService.java
index 32fbad5..d8b517d 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorService.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorService.java
@@ -579,6 +579,31 @@ public class TaskExecutorService extends AbstractService
       if (LOG.isInfoEnabled()) {
         LOG.info("{} evicted from wait queue in favor of {} because of lower priority",
             evictedTask.getRequestId(), task.getRequestId());
+      } else if (LOG.isDebugEnabled()) { // detailed info about the decision
+        FragmentRuntimeInfo evictedInfo =
+            evictedTask.getTaskRunnerCallable().getFragmentRuntimeInfo();
+        FragmentRuntimeInfo taskInfo = task.getFragmentRuntimeInfo();
+
+        int knownPendingTasksForEvicted = evictedInfo.getNumSelfAndUpstreamTasks()
+            - evictedInfo.getNumSelfAndUpstreamCompletedTasks();
+        int knownPendingTasksForCurrent =
+            taskInfo.getNumSelfAndUpstreamTasks() - taskInfo.getNumSelfAndUpstreamCompletedTasks();
+
+        long firstAttemptStartTimeEvicted = evictedInfo.getFirstAttemptStartTime();
+        long firstAttemptStartTimeCurrent = taskInfo.getFirstAttemptStartTime();
+
+        LOG.debug(
+            "{} (guaranteed: {}, canFinishForPriority: {}, withinDagPriority: {}, currentAttemptStartTime: {}, "
+                + "firstAttemptStartTime: {}, knownPending: {}) evicted from wait queue"
+                + "in favor of {} (guaranteed: {}, canFinishForPriority: {}, withinDagPriority: {},"
+                + " currentAttemptStartTime: {}, firstAttemptStartTime: {}, knownPending: {})"
+                + "because of lower priority",
+            evictedTask.getRequestId(), evictedTask.isGuaranteed(), evictedTask.canFinishForPriority(),
+            evictedInfo.getWithinDagPriority(), evictedInfo.getCurrentAttemptStartTime(),
+            firstAttemptStartTimeEvicted, knownPendingTasksForEvicted, task.getRequestId(),
+            taskWrapper.isGuaranteed(), taskWrapper.canFinishForPriority(), taskInfo.getWithinDagPriority(),
+            taskInfo.getCurrentAttemptStartTime(), firstAttemptStartTimeCurrent,
+            knownPendingTasksForCurrent);
       }
       try {
         knownTasks.remove(evictedTask.getRequestId());