Eliminate use of ReadWriteLock in RegionObserver coprocessor invocation
-----------------------------------------------------------------------
Key: HBASE-3587
URL: https://issues.apache.org/jira/browse/HBASE-3587
Project: HBase
Issue Type: Improvement
Components: coprocessors
Reporter: Gary Helmling
Follow-up to a discussion on the dev list:
http://search-hadoop.com/m/jOovV1uAJBP
The CoprocessorHost ReentrantReadWriteLock is imposing some overhead on data
read/write operations, even when no coprocessors are loaded. Currently
execution of RegionCoprocessorHost pre/postXXX() methods are guarded by
acquiring the coprocessor read lock. This is used to prevent coprocessor
registration from modifying the coprocessor collection while upcall hooks are
in progress.
On further discussion, and looking at the locking in HRegion, it should be
sufficient to just use a CopyOnWriteArrayList for the coprocessor collection.
We can then remove the coprocessor lock and eliminate the associated overhead
without having to special case the "no loaded coprocessors" condition.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira