hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-18770) Remove bypass method in ObserverContext and implement the 'bypass' logic case by case
Date Mon, 30 Oct 2017 16:46:01 GMT

     [ 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)

Mime
View raw message