private void maybeAddToHighPriorityTaskQueue(TaskInfo taskInfo) {
    // Only add task if its not already in the Queue AND there no mores than HOSTS tasks there already
    // as we are performing up to HOSTS preemptions at a time
    if (!taskInfo.isInHighPriorityQueue() && highPriorityTaskQueue.size() < activeInstances.size()) {
      taskInfo.setInHighPriorityQueue(true);
      highPriorityTaskQueue.add(taskInfo);
    }
  }
Go through the running tasks Tree in descending priority and find a candidate to preempt. The candidate should be:
1. lower priority than forTask
2. below forTask in the DAG
3. not considered already for preemption
A successful candidate is added to the preemptionCandidates queue for preemption by the scheduling loop.
@param runningTasks Tree of running tasks
@param forTask Task to find preemption candidate for
@param preemptHosts Hosts preference
@return true when preemption candidate is found
llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskSchedulerService.java