[ https://issues.apache.org/jira/browse/HBASE-9426?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13858438#comment-13858438 ]
Hadoop QA commented on HBASE-9426: ---------------------------------- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12620777/HBASE-9426-4.patch against trunk revision . ATTACHMENT ID: 12620777 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop1.0{color}. The patch compiles against the hadoop 1.0 profile. {color:green}+1 hadoop1.1{color}. The patch compiles against the hadoop 1.1 profile. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 1 warning messages. {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {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:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn site goal to fail. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/8299//console This message is automatically generated. > Make custom distributed barrier procedure pluggable > ---------------------------------------------------- > > Key: HBASE-9426 > URL: https://issues.apache.org/jira/browse/HBASE-9426 > Project: HBase > Issue Type: Improvement > Affects Versions: 0.95.2, 0.94.11 > Reporter: Richard Ding > Assignee: Richard Ding > Attachments: HBASE-9426-4.patch, HBASE-9426.patch.1, > HBASE-9426.patch.2, HBASE-9426.patch.3, HBASE-9426.patch.4 > > > Currently if one wants to implement a custom distributed barrier procedure > (e.g., distributed log roll or distributed table flush), the HBase core code > needs to be modified in order for the procedure to work. > Looking into the snapshot code (especially on region server side), most of > the code to enable the procedure are generic life-cycle management (i.e., > init, start, stop). We can make this part pluggable. > Here is the proposal. Following the coprocessor example, we define two > properties: > {code} > hbase.procedure.regionserver.classes > hbase.procedure.master.classes > {code} > The values for both are comma delimited list of classes. On region server > side, the classes implements the following interface: > {code} > public interface RegionServerProcedureManager { > public void initialize(RegionServerServices rss) throws KeeperException; > public void start(); > public void stop(boolean force) throws IOException; > public String getProcedureName(); > } > {code} > While on Master side, the classes implement the interface: > {code} > public interface MasterProcedureManager { > public void initialize(MasterServices master) throws KeeperException, > IOException, UnsupportedOperationException; > public void stop(String why); > public String getProcedureName(); > public void execProcedure(ProcedureDescription desc) throws IOException; > IOException; > } > {code} > Where the ProcedureDescription is defined as > {code} > message ProcedureDescription { > required string name = 1; > required string instance = 2; > optional int64 creationTime = 3 [default = 0]; > message Property { > required string tag = 1; > optional string value = 2; > } > repeated Property props = 4; > } > {code} > A generic API can be defined on HMaster to trigger a procedure: > {code} > public boolean execProcedure(ProcedureDescription desc) throws IOException; > {code} > _SnapshotManager_ and _RegionServerSnapshotManager_ are special examples of > _MasterProcedureManager_ and _RegionServerProcedureManager_. They will be > automatically included (users don't need to specify them in the conf file). -- This message was sent by Atlassian JIRA (v6.1.5#6160)