hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11126) Add RegionObserver pre hooks that operate under row lock
Date Fri, 30 May 2014 13:59:02 GMT

    [ https://issues.apache.org/jira/browse/HBASE-11126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14013650#comment-14013650

Hadoop QA commented on HBASE-11126:

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  against trunk revision .
  ATTACHMENT ID: 12647587

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:green}+1 tests included{color}.  The patch appears to include 6 new or modified

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:green}+1 javadoc{color}.  The javadoc tool did not generate any warning messages.

    {color:green}+1 findbugs{color}.  The patch does not introduce any new Findbugs (version
1.3.9) warnings.

    {color:green}+1 release audit{color}.  The applied patch does not increase the total number
of release audit warnings.

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines longer than
    +      final Cell cell, final byte[] byteNow, final byte[] family, final Get get) throws
IOException {
+  public Result preAppendAfterRowLock(ObserverContext<RegionCoprocessorEnvironment>
e, Append append)

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

     {color:red}-1 core tests{color}.  The patch failed these unit tests:

Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/9648//console

This message is automatically generated.

> Add RegionObserver pre hooks that operate under row lock
> --------------------------------------------------------
>                 Key: HBASE-11126
>                 URL: https://issues.apache.org/jira/browse/HBASE-11126
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.99.0, 0.98.3
>            Reporter: Andrew Purtell
>            Assignee: ramkrishna.s.vasudevan
>         Attachments: HBASE-11126.patch, HBASE-11126_1.patch, HBASE-11126_4.patch, HBASE-11126_5.patch,
HBASE-11126_new_2.patch, HBASE-11126_new_3.patch
> The coprocessor hooks were placed outside of row locks. This was meant to sidestep performance
issues arising from significant work done within hook invocations. However as the security
code increases in sophistication we are now running into concurrency issues trying to use
them as a result of that early decision. Since the initial introduction of coprocessor upcalls
there has been some significant refactoring done around them and concurrency control in core
has become more complex. This is potentially an issue for many coprocessor users.
> We should do either:\\
> - Move all existing RegionObserver pre* hooks to execute under row lock.
> - Introduce a new set of RegionObserver pre* hooks that execute under row lock, named
to indicate such.
> The second option is less likely to lead to surprises.
> All RegionObserver hook Javadoc should be updated with advice to the coprocessor implementor
not to take their own row locks in the hook. If the current thread happens to already have
a row lock and they try to take a lock on another row, there is a deadlock risk.
> As always a drawback of adding hooks is the potential for performance impact. We should
benchmark the impact and decide if the second option above is a viable choice or if the first
option is required.
> Finally, we should introduce a higher level interface for managing the registration of
'user' code for execution from the low level hooks. I filed HBASE-11125 to discuss this further.

This message was sent by Atlassian JIRA

View raw message