Just realized that earlier linked doc might not be accessible publicly. Here's the new link : https://docs.google.com/document/d/1mPkM1CRRvBMZL4dBQzrus8obyvNnHhR5it2yyhiFXTg/edit?usp=sharing
-- Appy On Wed, Sep 6, 2017 at 5:07 PM, Apekshit Sharma <[email protected]> wrote: > Hi > > Links: HBASE-17732 <https://issues.apache.org/jira/browse/HBASE-17732>, Code > Review <https://reviews.apache.org/r/62141/> > > With 2.0 beta 1 approaching, this seems to be the ripe time to make much > needed coprocessor design changes. Here's a summary of what's changing > (from jira 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!! > > > There's a more detailed analysis/design doc which discusses motivation > behind the changes: > https://docs.google.com/document/d/1PBEnaqyJeiHvALFswF_yl81- > rOpQmZuixCDua-LT9X4/edit > > Impact on third party: > - Although it'll break every coprocessor out there, the change to make > things work again will be very tiny. Look at the changes I had to do to > Coprocessors in our tests. It's just few simple lines. > - CoprocessorService will be backward compatible. > > Status: Almost code complete. Fixing last 2-3 tests and adding a test to > ensure backward compatibility of CoprocessorService. > > ------------------------------------------------------------ > ------------------------------------ > Jira: https://issues.apache.org/jira/browse/HBASE-17732 > Code review: https://reviews.apache.org/r/62141/ > Doc: https://docs.google.com/document/d/1PBEnaqyJeiHvALFswF_yl81- > rOpQmZuixCDua-LT9X4/edit > ------------------------------------------------------------ > ------------------------------------ > > -- Appy > -- -- Appy
