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

Stephen Yuan Jiang commented on HBASE-15575:
--------------------------------------------

Looking at the coprocessors for Split region, there are a lot of them in 
different stages:

{code}
  /**
   * Invoked just before a split
   * @throws IOException
   */
  public void preSplit(final byte[] splitRow) throws IOException 

  /**
   * Invoked just after a split
   * @param l the new left-hand daughter region
   * @param r the new right-hand daughter region
   * @throws IOException
   */
  public void postSplit(final Region l, final Region r) throws IOException {

  public boolean preSplitBeforePONR(final byte[] splitKey,
      final List<Mutation> metaEntries) throws IOException 

  public void preSplitAfterPONR() throws IOException 

  /**
   * Invoked just before the rollback of a failed split is started
   * @throws IOException
   */
  public void preRollBackSplit() throws IOException 
   

  /**
   * Invoked just after the rollback of a failed split is done
   * @throws IOException
   */
  public void postRollBackSplit() throws IOException 

  /**
   * Invoked after a split is completed irrespective of a failure or success.
   * @throws IOException
   */
  public void postCompleteSplit() throws IOException
{code}

We can do something similar for the table DDL: 
{noformat}
preXXX - rpc thread
postXXX and postXXXAsync - rpc thread after submit
preXXXAction - handler/procedure thread
preRollbackXXXAction -  handler/procedure thread during rollback
postCompletedXXXAction - handler/procedure thread when the operation succeed
postRollbackXXXAction - handler/procedure thread when the operation failed
{noformat}

[~mbertozzi], [~apurtell], how do you think?  For now, I'd clean up the 
reference of handler in coprocessor before 2.0 comes out so that we can 
deprecate out-of-date coprocessors and remove them in 3.0

> Rename table DDL *Handler methods in MasterObserver to *Procedure
> -----------------------------------------------------------------
>
>                 Key: HBASE-15575
>                 URL: https://issues.apache.org/jira/browse/HBASE-15575
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>    Affects Versions: 2.0.0
>            Reporter: Stephen Yuan Jiang
>            Assignee: Stephen Yuan Jiang
>            Priority: Minor
>             Fix For: 2.0.0
>
>         Attachments: HBASE-15575.v1-master.patch
>
>
> Procedure V2 replaced table DDL handler implementation to procedure 
> implementation.  It does not make sense to keep the *Handler methods in 
> MasterObserver.  This JIRA follows HBASE-13645 way to deprecate the existing 
> observers with *Handler and add the new observers with *Procedure name.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to