[ 
https://issues.apache.org/jira/browse/HBASE-18770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-18770:
--------------------------
    Release Note: 
Removes blanket bypass mechanism (Observer#bypass). Instead, a curated ubset of 
methods are bypassable.

    Changes Coprocessor ObserverContext 'bypass' semantic. We flip the
    default so bypass is NOT supported on Observer invocations; only a
    couple of preXXX methods in RegionObserver allow it: e.g.  preGet
    and prePut but not preFlush, etc. Everywhere else, we throw
    a Exception if a Coprocessor Observer tries to invoke bypass. Master
    Observers can no longer stop or change move, split, assign, create table, 
etc.
    preBatchMutate can no longer be bypassed (bypass the finer-grained
    prePut, preDelete, etc. instead)

    Ditto on complete, the mechanism that allowed a Coprocessor
    rule that all subsequent Coprocessors are skipped in an
    invocation chain; now, complete is only available to
    bypassable methods (and Coprocessors will get an exception if
    they try to 'complete' when it is not allowed).

    See javadoc for whether a Coprocessor Observer method supports
    'bypass'. If no mention, 'bypass' is NOT supported.

The below methods have been marked deprecated in hbase2. We would have liked to 
have removed them because they use IA.Private parameters but they are in use by 
CoreCoprocessors or are critical to downstreamers and we have no alternatives 
to provide currently.


@Deprecated public boolean prePrepareTimeStampForDeleteVersion(final Mutation 
mutation, final Cell kv, final byte[] byteNow, final Get get) throws 
IOException {
              
@Deprecated public boolean preWALRestore(final RegionInfo info, final WALKey 
logKey, final WALEdit logEdit) throws IOException {

@Deprecated public void postWALRestore(final RegionInfo info, final WALKey 
logKey, final WALEdit logEdit) throws IOException {
       
@Deprecated public DeleteTracker postInstantiateDeleteTracker(DeleteTracker 
result) throws IOException 

  was:
Removes blanket bypass mechanism (Observer#bypass). Instead, a curated ubset of 
methods are bypassable.

    Changes Coprocessor ObserverContext 'bypass' semantic. We flip the
    default so bypass is NOT supported on Observer invocations; only a
    couple of preXXX methods in RegionObserver allow it: e.g.  preGet
    and prePut but not preFlush, etc. Everywhere else, we throw
    a Exception if a Coprocessor Observer tries to invoke bypass. Master
    Observers can no longer stop or change move, split, assign, create table, 
etc.
    preBatchMutate can no longer be bypassed (bypass the finer-grained
    prePut, preDelete, etc. instead)

    Ditto on complete, the mechanism that allowed a Coprocessor
    rule that all subsequent Coprocessors are skipped in an
    invocation chain; now, complete is only available to
    bypassable methods (and Coprocessors will get an exception if
    they try to 'complete' when it is not allowed).

    See javadoc for whether a Coprocessor Observer method supports
    'bypass'. If no mention, 'bypass' is NOT supported.


> Remove bypass method in ObserverContext and implement the 'bypass' logic case 
> by case
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-18770
>                 URL: https://issues.apache.org/jira/browse/HBASE-18770
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>            Reporter: Duo Zhang
>            Assignee: stack
>            Priority: Critical
>             Fix For: 2.0.0-alpha-4
>
>         Attachments: HBASE-18770.master.001.patch, 
> HBASE-18770.master.002.patch, HBASE-18770.master.003.patch, 
> HBASE-18770.master.004.patch, HBASE-18770.master.005.patch, 
> HBASE-18770.master.006.patch, HBASE-18770.master.007.patch, 
> HBASE-18770.master.008.patch, HBASE-18770.master.009.patch, 
> HBASE-18770.master.010.patch
>
>
> http://search-hadoop.com/m/HBase/YGbbXd0RDCIHSC1



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to