From 598b1d33d58bcaf5db0ae6aac6581e24a86d99ae Mon Sep 17 00:00:00 2001 From: Jiale Qi Date: Thu, 7 Aug 2025 17:45:58 +0800 Subject: [PATCH] Enforce speculation configuration to prevent execution on normal tasks. --- .../dag/app/dag/speculation/legacy/LegacySpeculator.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/speculation/legacy/LegacySpeculator.java b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/speculation/legacy/LegacySpeculator.java index 940bb23025..5c20cecd1a 100644 --- a/tez-dag/src/main/java/org/apache/tez/dag/app/dag/speculation/legacy/LegacySpeculator.java +++ b/tez-dag/src/main/java/org/apache/tez/dag/app/dag/speculation/legacy/LegacySpeculator.java @@ -369,8 +369,9 @@ private long speculationValue(Task task, long now, boolean shouldUseTimeout) { return TOO_NEW; } + long taskRuntime = now - taskAttemptStartTime; if (shouldUseTimeout) { - if ((now - taskAttemptStartTime) > taskTimeout) { + if (taskRuntime > taskTimeout) { // If the task has timed out, then we want to schedule a speculation // immediately. However we cannot return immediately since we may // already have a speculation running. @@ -380,6 +381,10 @@ private long speculationValue(Task task, long now, boolean shouldUseTimeout) { return ON_SCHEDULE; } } else { + if (taskRuntime < acceptableRuntime) { + return ON_SCHEDULE; + } + long estimatedRunTime = estimator .estimatedRuntime(runningTaskAttemptID);