In my opinion that's a valid use case we should support with appropriate changes to interface annotations and, therefore, stability. I don't believe the interfaces have been changing much, so this shouldn't represent a problem other than maybe we want to review what we have before promoting them. The security coprocessors do the same: they use tags to add special metadata to cells, then apply additional logic/filtering while overriding some scanner behavior.
On Fri, Sep 22, 2017 at 9:54 AM, Vrushali C <vrushalic2...@gmail.com> wrote: > For what it's worth, Yarn Timeline Service v2 makes use of Tags only in the > coprocessor code in the custom Scanner that is invoked during > get/scan/compact and at the PrePut step. > > thanks > Vrushali > > > On Fri, Sep 22, 2017 at 9:20 AM, Andrew Purtell <andrew.purt...@gmail.com> > wrote: > > > I think not making the relevant APIs LP(Coprocessor) was an oversight. In > > my opinion we should do that. I'm not sure about Public. We could do that > > too but somewhere we need to call out that coprocessors have access to > > tags, but not clients. (Tags are removed at RPC except for replication.) > LP > > doesn't imply what Public might. > > > > > On Sep 22, 2017, at 9:11 AM, Andrew Purtell <andrew.purt...@gmail.com> > > wrote: > > > > > > Tags are server side internal metadata. Some carry sensitive > information > > like labels. I guess this could appear odd if not around for discussion > > when they were introduced. So what documentation can be improved to > lessen > > the surprise? Javadoc? Online book? A JIRA with suggestions welcome. > > > > > > > > >> On Sep 22, 2017, at 9:07 AM, Josh Elser <els...@apache.org> wrote: > > >> > > >> I can appreciate how we've gotten to this point, it just struck me > > extremely odd that the contents of a Tag weren't expected to be accessed > by > > users. "Arbitrary metadata that rides along with a cell, you just can't > see > > that metadata" ;) > > >> > > >> I totally understand not wanting to let another thing come into 2.0. > > Like MikeD said, let's hope for a faster 3.0 and we can slate this for > that > > time. > > >> > > >> Thanks for entertaining the discussion. We'll just deal with the > > "downstream pain" for 2.0. > > >> > > >>> On 9/22/17 1:32 AM, ramkrishna vasudevan wrote: > > >>> CellUtil similar type of methods. Coming to Tags yes there are not > > much > > >>> cases where clients can directly set Tags. And I think we don't > expose > > any > > >>> APIs which allow you to use mutations with Tags. So probably moving > to > > >>> LimitedPrivate is better and mark with Evolving if there are some > users > > >>> depending on the internals of Tags and its impl. But this will be a > > One of > > >>> case. > > >>> And also since Tags are internal ideally the CellUtil#getTAgs() > should > > have > > >>> been in another Util method that is exposed with LimitedPrivate and > > also > > >>> Tags if tags should be made LimitedPRivate. So this may help in not > > having > > >>> a PRivate interface like Tag in a public CellUtil class. > > >>> 3.0 is fine but need some clean up in 2.0? Indicating what could > happen > > >>> going forward from 2.0? > > >>> Regards > > >>> Ram > > >>>> On Fri, Sep 22, 2017 at 2:59 AM, Sean Busbey <bus...@apache.org> > > wrote: > > >>>> Yeah. I mean, I think we should improve the situation. Just think > > >>>> it's too much to bite off at this stage of 2.0, we can aim for 3.0 > and > > >>>> start working in some tooling to help us. > > >>>> > > >>>>> On Thu, Sep 21, 2017 at 3:35 PM, Josh Elser <els...@apache.org> > > wrote: > > >>>>> That really makes me groan (we have downstream users depending on > > code > > >>>> we've > > >>>>> explicitly said "don't use"), but if that's what it is given the > > current > > >>>>> state, so be it. My complaining won't fix it. > > >>>>> > > >>>>> Thanks. > > >>>>> > > >>>>> > > >>>>>> On 9/21/17 4:25 PM, Sean Busbey wrote: > > >>>>>> > > >>>>>> We have lots of examples of including non-Public stuff in Public > > APIs. > > >>>>>> we have docs that advise folks to be wary on relying on them > beyond > > >>>>>> opaque symbols. > > >>>>>> > > >>>>>> ref: http://hbase.apache.org/book.html#hbase.client.api.surface > > >>>>>> > > >>>>>>> On Thu, Sep 21, 2017 at 3:21 PM, Josh Elser <els...@apache.org> > > wrote: > > >>>>>>> > > >>>>>>> I was going to suggest LimitedPrivate in my original, but this > > doesn't > > >>>>>>> make > > >>>>>>> sense as we're exposing Public API via CellUtil. > > >>>>>>> > > >>>>>>> It seems odd to me that we wouldn't treat the cell tags as a > > supported > > >>>>>>> API > > >>>>>>> call. However, I'm happy to remain "confused" if the rest of > folks > > >>>> don't > > >>>>>>> consider tags to be intended for users :) > > >>>>>>> > > >>>>>>> > > >>>>>>>> On 9/21/17 3:15 PM, Ted Yu wrote: > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> Can we mark Tag LimitedPrivate ? > > >>>>>>>> > > >>>>>>>> We know how ATS uses Tags so it should be straight forward to > keep > > >>>> their > > >>>>>>>> usage intact. > > >>>>>>>> > > >>>>>>>> On Thu, Sep 21, 2017 at 12:03 PM, Josh Elser <els...@apache.org > > > > >>>> wrote: > > >>>>>>>> > > >>>>>>>>> Hiya, > > >>>>>>>>> > > >>>>>>>>> (Background, I'm starting what is likely to be an onerous task > of > > >>>>>>>>> looking > > >>>>>>>>> through downstream components and seeing what is broken with > the > > >>>> latest > > >>>>>>>>> hbase-2.0.0*) > > >>>>>>>>> > > >>>>>>>>> Looking at YARN's use of HBase for the Application > > TimelineServer, I > > >>>>>>>>> see > > >>>>>>>>> that they're relying on the Tag interface. > > >>>>>>>>> > > >>>>>>>>> Presently, Tag is marked as Private, yet we expose it via the > > Public > > >>>>>>>>> CellUtil. > > >>>>>>>>> > > >>>>>>>>> My gut reaction is that we should bump Tag up Public since the > > intent > > >>>>>>>>> is > > >>>>>>>>> for downstream users to, ya know, use those Tags. Any > objections? > > >>>>>>>>> > > >>>>>>>>> If we don't want to expose Tag, we should make a pass over the > > Public > > >>>>>>>>> methods and mark them as Private (so not as to provide a Public > > >>>> method > > >>>>>>>>> with > > >>>>>>>>> Private objects). CellUtil#getTag(Cell, byte) would be one such > > >>>>>>>>> example. > > >>>>>>>>> > > >>>>>>>>> - Josh > > >>>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>> > > >>>> > > > -- Best regards, Andrew Words like orphans lost among the crosstalk, meaning torn from truth's decrepit hands - A23, Crosstalk