[
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.
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 DoesNotSupportBypassException if a Coprocessor Observer
tries to invoke bypass. Master Observers can no longer stop
or change move, split, assign, create table, etc.
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)