zhengchenyu commented on code in PR #4899: URL: https://github.com/apache/hive/pull/4899#discussion_r2320617588
########## ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezProcessor.java: ########## @@ -293,6 +293,13 @@ protected void initializeAndRunProcessor(Map<String, LogicalInput> inputs, rproc.run(); perfLogger.perfLogEnd(CLASS_NAME, PerfLogger.TEZ_RUN_PROCESSOR); + + // Try to call canCommit to AM. If there is no other speculative attempt execute canCommit, then continue. + // If there are other speculative attempt execute canCommit first, then wait until the attempt is killed + // or the committed task fails. + while (!this.processorContext.canCommit()) { Review Comment: In tez source code [TaskImpl::canCommit](https://github.com/apache/tez/blob/6683866ea5e9a7b900ccbcd617e49588974019ae/tez-dag/src/main/java/org/apache/tez/dag/app/dag/impl/TaskImpl.java#L694), we can see only one task attempt can commit successfully. If one attempt is committed, canCommit for other attempt will return false, here I sleep until the speculative attempt was killed. In fact, tez example use this way to avoid commit simultaneously. I just copy from [here](https://github.com/apache/tez/blob/6683866ea5e9a7b900ccbcd617e49588974019ae/tez-mapreduce/src/main/java/org/apache/tez/mapreduce/processor/SimpleMRProcessor.java#L71)。 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org