Hi Everyone,

I'm experiencing a threading issue with the Hive client where I want to run 
multiple queries on the same JVM.

 The problem I'm having is that org.apache.hadoop.hive.ql.Driver#run (line 907) 
 has the following few lines of code :

 synchronized (compileMonitor) {

      ret = compile(command);

    }


The compileMonitor is a static so it blocks all threads even though I'm using 
different instances of the Driver class. I could explicitly call Driver#compile 
then Driver#execute to avoid the synchronized block but I don't know if it's 
serving a special purpose. Does anyone know why that synchronized block is 
there and if its really necessary ?


Thanks,

Kris

Reply via email to