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

Ted Yu commented on HBASE-9426:
-------------------------------

Generated files should be included for QA to run test suite. Without them, I 
got:
{code}
[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) 
on project hbase-client: Compilation failure: Compilation failure:
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[95,61]
 cannot find symbol
[ERROR] symbol  : class ProcedureDescription
[ERROR] location: class org.apache.hadoop.hbase.protobuf.generated.HBaseProtos
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[135,62]
 cannot find symbol
[ERROR] symbol  : class ExecProcedureRequest
[ERROR] location: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[136,62]
 cannot find symbol
[ERROR] symbol  : class ExecProcedureResponse
[ERROR] location: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[137,62]
 cannot find symbol
[ERROR] symbol  : class IsProcedureDoneRequest
[ERROR] location: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[138,62]
 cannot find symbol
[ERROR] symbol  : class IsProcedureDoneResponse
[ERROR] location: class org.apache.hadoop.hbase.protobuf.generated.MasterProtos
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2053,38]
 cannot find symbol
[ERROR] symbol: class ExecProcedureRequest
[ERROR] RpcController controller, ExecProcedureRequest request)
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2052,15]
 cannot find symbol
[ERROR] symbol: class ExecProcedureResponse
[ERROR] public ExecProcedureResponse execProcedure(
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2060,12]
 cannot find symbol
[ERROR] symbol: class IsProcedureDoneRequest
[ERROR] IsProcedureDoneRequest request) throws ServiceException {
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2059,15]
 cannot find symbol
[ERROR] symbol: class IsProcedureDoneResponse
[ERROR] public IsProcedureDoneResponse isProcedureDone(RpcController controller,
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2051,8]
 method does not override or implement a method from a supertype
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java:[2058,8]
 method does not override or implement a method from a supertype
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3014,24]
 package ProcedureDescription does not exist
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3014,43]
 cannot find symbol
[ERROR] symbol  : variable ProcedureDescription
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3022,10]
 cannot find symbol
[ERROR] symbol  : class ExecProcedureRequest
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3022,41]
 cannot find symbol
[ERROR] symbol  : variable ExecProcedureRequest
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3025,39]
 cannot find symbol
[ERROR] symbol  : class ExecProcedureResponse
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3027,13]
 cannot find symbol
[ERROR] symbol: class ExecProcedureResponse
[ERROR] public ExecProcedureResponse call() throws ServiceException {
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3080,30]
 package ProcedureDescription does not exist
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3080,49]
 cannot find symbol
[ERROR] symbol  : variable ProcedureDescription
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3087,10]
 cannot find symbol
[ERROR] symbol  : class ProcedureDescription
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3089,27]
 cannot find symbol
[ERROR] symbol  : class IsProcedureDoneResponse
[ERROR] location: class org.apache.hadoop.hbase.client.HBaseAdmin
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3091,17]
 cannot find symbol
[ERROR] symbol: class IsProcedureDoneResponse
[ERROR] public IsProcedureDoneResponse call() throws ServiceException {
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3092,48]
 cannot find symbol
[ERROR] symbol: variable IsProcedureDoneRequest
[ERROR] return master.isProcedureDone(null, IsProcedureDoneRequest
[ERROR] 
/Users/tyu/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java:[3095,10]
 cannot find symbol
[ERROR] symbol  : method getDone()
[ERROR] location: class java.lang.Object
{code}
The current patch can be uploaded onto review board if you choose hbase-git 
repository.

> 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.patch.1, HBASE-9426.patch.2, 
> HBASE-9426.patch.3
>
>
> 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)

Reply via email to