Could we have a Filter interface that is IA.Public and contains no methods? Just a marker interface that gives users something they can assign to? Then FilterBase becomes IA.LimitedPrivate?
This might be awful for current users, I'm trying to explore in a new direction though. Mike On Wed, Sep 20, 2017 at 4:10 PM, Stack <[email protected]> wrote: > I was looking at the patch on HBASE-18811 > <https://issues.apache.org/jira/browse/HBASE-18811> to implement what has > since turned into this DISCUSSION. > > Get and Scan allow setting Filters. > > This means user must create them to pass in. > > If filters become LimitedPrivate, I'd imagine this will give users pause; > they'll ask if they should be using classes w/ this annotation. > > In refguide, it says "LimitedPrivate: used for internals we expect to be > pluggable, such as coprocessors" which does not provide much by way of > solace. > > It is as though Filter instances and their constructors should be public > but all else about them private. Not sure how we convey that w/ current > annotation vocabulary. > > Thanks, > M > > > > On Wed, Sep 20, 2017 at 9:41 AM, Stack <[email protected]> wrote: > > > Thanks Dave for chiming in. > > > > I like the suggestion Chia-Ping of LimittedPrivate + Stable. > > > > St.Ack > > > > On Wed, Sep 20, 2017 at 6:51 AM, Dave Latham <[email protected]> > wrote: > > > >> Thanks, Chia-Ping. I don't want to hold up improvements in HBase > >> internals > >> on behalf of Filters. Changing at major releases sounds reasonable. > >> > >> On Wed, Sep 20, 2017 at 12:32 AM, Chia-Ping Tsai <[email protected]> > >> wrote: > >> > >> > An alternative is that we make Filter IA.LimitedPrivate and > >> > InterfaceStability.Stable, so we guarantee the FIlter's APIs won't be > >> > changed in the patch/minor release. It seems to me the changing > >> Filter's IA > >> > declaration is necessary. The filter's APIs deeply embedded in our > read > >> > path and thus the filter may hinder our improvement in given major > >> release > >> > because we have to do the proper deprecation cycle for IA.Public. I > >> DON'T > >> > want to change the Filter's APIs at the present time, but we should > get > >> > everything ready beforehand. > >> > > >> > On 2017-09-19 00:41, Dave Latham <[email protected]> wrote: > >> > > Speaking on behalf of one HBase deployment, we do rely on custom > >> filters, > >> > > though have so far stayed away from more internal customizations > such > >> as > >> > > co-processors. We've gotten the sense over the years that Filters > >> were > >> > > fairly stable and seemed more reliable in that sense. I'd be sad > if a > >> > > change like this meant that more caution will need to be used in > >> order to > >> > > rely on Filters. I understand that some cleanup may need to happen > >> (e.g. > >> > > HBASE-13346) but hope that we can still be conservative in breaking > >> the > >> > > Filter apis. > >> > > > >> > > On Sat, Sep 16, 2017 at 7:27 PM, Chia-Ping Tsai < > [email protected]> > >> > wrote: > >> > > > >> > > > hi stack > >> > > > I have filed https://issues.apache.org/jira/browse/HBASE-18811. > >> FYI. > >> > > > > >> > > > On 2017-09-17 05:31, Stack <[email protected]> wrote: > >> > > > > It is an oversight that Filters are not annotated as > >> > (limited)private. We > >> > > > > are unable to guarantee them what public entails given their > >> design > >> > is as > >> > > > > yet imperfect and that they are interpolated at points subject > to > >> > change. > >> > > > > > >> > > > > +1 on taking them limited private in 2.0.0. > >> > > > > > >> > > > > Thanks for bringing this up Chia-Ping Tsai. Apt. > >> > > > > > >> > > > > St.Ack > >> > > > > > >> > > > > > >> > > > > On Sat, Sep 16, 2017 at 4:02 AM, Chia-Ping Tsai < > >> [email protected] > >> > > > >> > > > wrote: > >> > > > > > >> > > > > > Hi, Folks! > >> > > > > > > >> > > > > > We have many powerful callback functions to help user to build > >> > amazing > >> > > > > > application/services. The most of functions are declared as > >> > > > > > IA.LimitedPrivate excluding the filters. As i see it, the > >> > > > IA.LimitedPrivate > >> > > > > > will make the improvement of filter more flexible. Also, we > can > >> > > > introduce > >> > > > > > more server-side components to filters. > >> > > > > > > >> > > > > > https://issues.apache.org/jira/browse/HBASE-9529 had already > >> left > >> > the > >> > > > > > TODO "add filter limited private level" on FilterBase. I feel > >> it is > >> > > > time to > >> > > > > > discuss it again. > >> > > > > > > >> > > > > > Thanks, > >> > > > > > Chia-Ping Tsai > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > > > > >
