I have been using a RegionObserver coprocessor on my HBase 0.94.6 cluster for 
quite a while and it works great. I am currently upgrading the functionality. 
When doing some testing in our integration environment I met with the issue 
that even when I uploaded a new version of my coprocessor jar to HDFS, HBase 
did not recognize it, and it kept using the old version.

I even disabled/reenabled the table - no help. Even with a new table, it still 
loads old class. Only when I changed the location of the jar in HDFS, did it 
load the new version.

I looked at the source code of CoprocessorHost and I see that it is forever 
holding a classloaderCache with no mechanism for clearing it out.

I assume that if I restart the region server it will take the new version of my 
coprocessor. 

Is there any workaround for upgrading a coprocessor without either changing the 
path, or restarting the HBase region server?

Thanks,
Hayden

Reply via email to