[ https://issues.apache.org/jira/browse/HBASE-7205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502738#comment-13502738 ]
Adrian Muraru commented on HBASE-7205: -------------------------------------- There is a caching tentative in the current implementation of {code}org.apache.hadoop.hbase.coprocessor.CoprocessorHost#load{code} : and the custom class loader is cached on thread context: {code} Thread.currentThread().setContextClassLoader(cl); {code} However the classes are loaded from the current class-loader (different from thread classloader) {code} implClass = getClass().getClassLoader().loadClass(className); {code} [~te...@apache.org] Not sure if RegionCoprocessorHost is the right place, we need similar behavior on MasterCoprocessorHost so should be one level down. > Coprocessor classloader is replicated for all regions in the HRegionServer > -------------------------------------------------------------------------- > > Key: HBASE-7205 > URL: https://issues.apache.org/jira/browse/HBASE-7205 > Project: HBase > Issue Type: Bug > Components: Coprocessors > Affects Versions: 0.92.2, 0.94.2 > Reporter: Adrian Muraru > Priority: Critical > Fix For: 0.96.0 > > > HBASE-6308 introduced a new custom CoprocessorClassLoader to load the > coprocessor classes and a new instance of this CL is created for each single > HRegion opened. This leads to OOME-PermGen when the number of regions go > above hundres / region server. > Having the table coprocessor jailed in a separate classloader is good however > we should create only one for all regions of a table in each HRS. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira