org.apache.hadoop.hbase.procedure
Class MasterProcedureManager

java.lang.Object
  extended by org.apache.hadoop.hbase.procedure.ProcedureManager
      extended by org.apache.hadoop.hbase.procedure.MasterProcedureManager
All Implemented Interfaces:
Stoppable
Direct Known Subclasses:
SnapshotManager

@InterfaceAudience.Private
@InterfaceStability.Evolving
public abstract class MasterProcedureManager
extends ProcedureManager
implements Stoppable

A life-cycle management interface for globally barriered procedures on master. See the following doc on details of globally barriered procedure: https://issues.apache.org/jira/secure/attachment/12555103/121127-global-barrier-proc.pdf To implement a custom globally barriered procedure, user needs to extend two classes: MasterProcedureManager and RegionServerProcedureManager. Implementation of MasterProcedureManager is loaded into HMaster process via configuration parameter 'hbase.procedure.master.classes', while implementation of RegionServerProcedureManager is loaded into HRegionServer process via configuration parameter 'hbase.procedure.regionserver.classes'. An example of globally barriered procedure implementation is SnapshotManager and RegionServerSnapshotManager. A globally barriered procedure is identified by its signature (usually it is the name of the procedure znode). During the initialization phase, the initialize methods are called by both HMaster and HRegionServer witch create the procedure znode and register the listeners. A procedure can be triggered by its signature and an instant name (encapsulated in a HBaseProtos.ProcedureDescription object). When the servers are shutdown, the stop methods on both classes are called to clean up the data associated with the procedure.


Constructor Summary
MasterProcedureManager()
           
 
Method Summary
abstract  void execProcedure(HBaseProtos.ProcedureDescription desc)
          Execute a distributed procedure on cluster
abstract  void initialize(MasterServices master, MetricsMaster metricsMaster)
          Initialize a globally barriered procedure for master.
abstract  boolean isProcedureDone(HBaseProtos.ProcedureDescription desc)
          Check if the procedure is finished successfully
 
Methods inherited from class org.apache.hadoop.hbase.procedure.ProcedureManager
equals, getProcedureSignature, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.hadoop.hbase.Stoppable
isStopped, stop
 

Constructor Detail

MasterProcedureManager

public MasterProcedureManager()
Method Detail

initialize

public abstract void initialize(MasterServices master,
                                MetricsMaster metricsMaster)
                         throws org.apache.zookeeper.KeeperException,
                                IOException,
                                UnsupportedOperationException
Initialize a globally barriered procedure for master.

Parameters:
master - Master service interface
Throws:
org.apache.zookeeper.KeeperException
IOException
UnsupportedOperationException

execProcedure

public abstract void execProcedure(HBaseProtos.ProcedureDescription desc)
                            throws IOException
Execute a distributed procedure on cluster

Parameters:
desc - Procedure description
Throws:
IOException

isProcedureDone

public abstract boolean isProcedureDone(HBaseProtos.ProcedureDescription desc)
                                 throws IOException
Check if the procedure is finished successfully

Parameters:
desc - Procedure description
Returns:
true if the specified procedure is finished successfully
Throws:
IOException


Copyright © 2015 The Apache Software Foundation. All rights reserved.