Details
-
Improvement
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
Incompatible change
-
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
Attachments
Attachments
Issue Links
- blocks
-
YARN-7213 [Umbrella] Test and validate HBase-2.0.x with Atsv2
- Resolved
- breaks
-
HBASE-21001 ReplicationObserver fails to load in HBase 2.0.0
- Resolved
- causes
-
HBASE-24329 Remove deprecated CoprocessorService
- In Progress
- is related to
-
HBASE-18776 Update coprocessor docs after HBASE-17732
- Open
-
HBASE-18884 Coprocessor Design Improvements follow up of HBASE-17732
- Resolved
-
HBASE-18898 Provide way for the core flow to know whether CP implemented each of the hooks
- Closed
- relates to
-
HBASE-18169 Coprocessor fix and cleanup before 2.0.0 release
- Closed
- links to