Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1FECF10FBF for ; Wed, 28 May 2014 17:11:02 +0000 (UTC) Received: (qmail 36608 invoked by uid 500); 28 May 2014 17:11:01 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 36564 invoked by uid 500); 28 May 2014 17:11:01 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 36555 invoked by uid 99); 28 May 2014 17:11:01 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 May 2014 17:11:01 +0000 Date: Wed, 28 May 2014 17:11:01 +0000 (UTC) From: "Hadoop QA (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-11126) Add RegionObserver pre hooks that operate under row lock MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-11126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14011321#comment-14011321 ] Hadoop QA commented on HBASE-11126: ----------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12647144/HBASE-11126_4.patch against trunk revision . ATTACHMENT ID: 12647144 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 1 warning messages. {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 1.3.9) warnings. {color:red}-1 release audit{color}. The applied patch generated 32 release audit warnings (more than the trunk's current 0 warnings). {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn site goal succeeds with this patch. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//testReport/ Release audit warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/patchReleaseAuditProblems.txt Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/9622//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_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 (v6.2#6252)