This is good discussion,

I mentioned this in phoenix-dev that we need to repurpose coprocessors, and
just give them put / get kind of injection points, but not allow
co-processors to tap into log / compaction, etc. Those will be better
served by explicitly defined plugins (like the recent StorageEngine, HLog,
etc) that we explicitly allow injecting code with some API stability
(though probably still evolving at a fast pace).

It would be good to have an idea of what classes / methods, phoenix and
similar depend on HBase right now.

Enis


On Mon, Feb 10, 2014 at 6:04 PM, Jeffrey Zhong <jzh...@hortonworks.com>wrote:

>
> We need to revisit which interfaces should be marked as real "private"
> because coprocessors allow custom applications to accesses internal
> states. Current private interface such as KeyValue, WALEdit, Hregion,
> HLogKey, Store etc is may used by custom coprocessor applications so any
> public method signature change in those "private" interfaces possibliy
> breaks custom coprocessor implementations.
>
> -Jeffrey
>
> On 2/10/14 4:59 PM, "lars hofhansl" <la...@apache.org> wrote:
>
> >True. But we can clearly annotate what is public and what is not.
> >In HRegion we'd have to do it per method. It's probably easier to extract
> >the public interface out into a Interface. (similar to Store and HStore)
> >HBASE-4207 solves a slightly different problem. Here I want to have
> >access to some HBase internals for performance, but I want to know what
> >is public and stable and what I should not touch (thinking about things
> >like Phoenix).
> >
> >
> >-- Lars
> >
> >
> >
> >________________________________
> > From: Andrew Purtell <apurt...@apache.org>
> >To: "dev@hbase.apache.org" <dev@hbase.apache.org>
> >Sent: Monday, February 10, 2014 4:46 PM
> >Subject: Re: DISCUSSION: 1.0.0
> >
> >
> >On Mon, Feb 10, 2014 at 4:42 PM, lars hofhansl <la...@apache.org> wrote:
> >
> >
> >> + known coprocessor interfaces. For example right now a coprocessor can
> >> use everything on HRegion. We need to distill what's useful into an
> >> interface.
> >
> >
> >We started this with Environment and the HTable wrapper as an example of
> >how to wrap an interface for CPs. At the end of the day we can't stop a
> >coprocessor from accessing internal objects and calling their methods
> >directly until HBASE-4047. (Maybe that makes the 1.0 list?)
> >
> >Related, paring down the coprocessor interfaces to only intercept RPC
> >based
> >actions and move everything else to plugins.
> >
> >
> >
> >--
> >Best regards,
> >
> >   - Andy
> >
> >Problems worthy of attack prove their worth by hitting back. - Piet Hein
> >(via Tom White)
>
>
>
> --
> CONFIDENTIALITY NOTICE
> NOTICE: This message is intended for the use of the individual or entity to
> which it is addressed and may contain information that is confidential,
> privileged and exempt from disclosure under applicable law. If the reader
> of this message is not the intended recipient, you are hereby notified that
> any printing, copying, dissemination, distribution, disclosure or
> forwarding of this communication is strictly prohibited. If you have
> received this communication in error, please contact the sender immediately
> and delete it from your system. Thank You.
>

Reply via email to