[
https://issues.apache.org/jira/browse/HBASE-17732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Appy updated HBASE-17732:
-------------------------
Description:
The two main changes are:
* *Adding template for coprocessor type to CoprocessorEnvironment i.e.
{{interface CoprocessorEnvironment<C extends Coprocessor>}}*
** Enables us to load only relevant coprocessors in hosts. Right now each
type of host loads all types of coprocs and it's only during execOperation that
it checks if the coproc is of correct type i.e. XCoprocessorHost will load
XObserver, YObserver, and all others, and will check in execOperation if
{{coproc instanceOf XObserver}} and ignore the rest.
** Allow sharing of a bunch functions/classes which are currently duplicated
in each host. For eg. CoprocessorOperations, CoprocessorOperationWithResult,
execOperations().
* *Introduce 4 coprocessor classes and use composition between these new
classes and and old observers*
** The real gold here is, moving forward, we'll be able to break down giant
everything-in-one observers (masterobserver has 100+ functions) into smaller,
more focused observers. These smaller observer can then have different compat
guarantees!!
Here's a more detailed design doc:
https://docs.google.com/document/d/1PBEnaqyJeiHvALFswF_yl81-rOpQmZuixCDua-LT9X4/edit
was:
Adding template for coprocessor type to CoprocessorEnvironment will:
- allow us to load only relevant coprocessors in hosts (right now each type of
host loads all types of coprocs and it's only during execOperation that it
checks if the coproc is of correct type i.e. XCoprocessorHost will load
XObserver, YObserver, and all others, and will check in execOperation if
{{coproc instanceOf XObserver}} and ignore the rest).
- allow sharing of a bunch functions/classes which are currently 99% duplicate
of each other. For eg. CoprocessorOperations, CoprocessorOperationWithResult,
execOperations().
Here's a more detailed design doc:
https://docs.google.com/document/d/1PBEnaqyJeiHvALFswF_yl81-rOpQmZuixCDua-LT9X4/edit
> Coprocessor Design Improvements
> -------------------------------
>
> Key: HBASE-17732
> URL: https://issues.apache.org/jira/browse/HBASE-17732
> Project: HBase
> Issue Type: Improvement
> Reporter: Appy
> Assignee: Appy
> Attachments: HBASE-17732.master.001.patch,
> HBASE-17732.master.002.patch, HBASE-17732.master.003.patch
>
>
> The two main changes are:
> * *Adding template for coprocessor type to CoprocessorEnvironment i.e.
> {{interface CoprocessorEnvironment<C extends Coprocessor>}}*
> ** Enables us to load only relevant coprocessors in hosts. Right now each
> type of host loads all types of coprocs and it's only during execOperation
> that it checks if the coproc is of correct type i.e. XCoprocessorHost will
> load XObserver, YObserver, and all others, and will check in execOperation if
> {{coproc instanceOf XObserver}} and ignore the rest.
> ** Allow sharing of a bunch functions/classes which are currently
> duplicated in each host. For eg. CoprocessorOperations,
> CoprocessorOperationWithResult, execOperations().
> * *Introduce 4 coprocessor classes and use composition between these new
> classes and and old observers*
> ** The real gold here is, moving forward, we'll be able to break down giant
> everything-in-one observers (masterobserver has 100+ functions) into smaller,
> more focused observers. These smaller observer can then have different compat
> guarantees!!
> Here's a more detailed design doc:
> https://docs.google.com/document/d/1PBEnaqyJeiHvALFswF_yl81-rOpQmZuixCDua-LT9X4/edit
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)