hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Appy (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-17732) Coprocessor Design Improvements
Date Thu, 07 Sep 2017 07:48:00 GMT

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

Mime
View raw message