[ 
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/1mPkM1CRRvBMZL4dBQzrus8obyvNnHhR5it2yyhiFXTg/edit?usp=sharing

  was:
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


> 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, 
> HBASE-17732.master.004.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/1mPkM1CRRvBMZL4dBQzrus8obyvNnHhR5it2yyhiFXTg/edit?usp=sharing



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

Reply via email to