Eliminate use of ThreadLocals for CoprocessorEnvironment bypass() and complete()
--------------------------------------------------------------------------------
Key: HBASE-3759
URL: https://issues.apache.org/jira/browse/HBASE-3759
Project: HBase
Issue Type: Improvement
Components: coprocessors
Reporter: Gary Helmling
Assignee: Gary Helmling
In the current coprocessor framework, ThreadLocal objects are used for the
bypass and complete booleans in CoprocessorEnvironment. This allows the
*CoprocessorHost implementations to identify when to short-circuit processing
the the preXXX and postXXX hook methods.
Profiling the region server, however, shows that these ThreadLocals can become
a contention point when on a hot code path (such as prePut()). We should
refactor the CoprocessorHost pre/post implementations to remove usage of the
ThreadLocal variables and replace them with locally scoped variables to
eliminate contention between handler threads.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira