Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-6831

The job schedule in condition task could not be correct with skewed join optimization

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.11.0
    • None
    • Query Processor
    • None
    • Hive 0.11.0

    Description

      Code snippet in ConditionalTask.java as bellow:

      // resolved task
      if (driverContext.addToRunnable(tsk))

      { console.printInfo(tsk.getId() + " is selected by condition resolver."); }

      The selected task is added into the runnable queue immediately without any dependency checking. If the selected task is original task ,and its parent task is not being executed, then the result will be incorrect.

      Like this:
      1. Before skew join optimization:
      Step1 ,Step 2 <-- step 3 ( Step1 and Step2 is Step 3's parent)
      2. after skew join optimization:
      Step1 <- Step4 (ConditionTask)<- consists of [Step3,Step10]
      Step2 <- Step5 (ConditionTask)<- consists of [Step3,Step11]
      3. Runing
      Step3 is selected in Step4 and Step5
      Step3 will be execute immediately after Step4 , its not correct.
      Step3 will be execute after Step5 again, its not correct either.
      4. The correct scheduler is that step3 will be execute after step4 and step5.
      5. So, I add a checking operate in the snippet as bellow:

      if (!driverContext.getRunnable().contains(tsk)) {
      console.printInfo(tsk.getId() + " is selected by condition resolver.");
      if(DriverContext.isLaunchable(tsk))

      { driverContext.addToRunnable(tsk); }

      }

      So , that is work right for me in my enviroment. I am not sure whether it will has some problems in someother condition.

      Attachments

        1. 6831.patch
          0.7 kB
          william zhu

        Activity

          People

            Unassigned Unassigned
            3h.william william zhu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: