[ https://issues.apache.org/jira/browse/HBASE-3759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13017701#comment-13017701 ]
Gary Helmling edited comment on HBASE-3759 at 4/9/11 12:15 AM: --------------------------------------------------------------- CPU profiling call trees showing usage by the ThreadLocal bypass/complete implementation (Call_Tree_tl_\*) vs. a locally scoped context object for bypass/complete (Call_Tree_context_\*). was (Author: ghelmling): CPU profiling call trees showing usage by the ThreadLocal bypass/complete implementation (Call_Tree_tl_*) vs. a locally scoped context object for bypass/complete (Call_Tree_context_*). > 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 > Attachments: cp_bypass.tar.gz > > > 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