Hi John,

Thanks for the great writeup! Couple of things I wanted to bring up(may or
mayn't be relevant):

1) The sample implementation that you have presented for KeyQuery is very
helpful. One thing which may be added to it is how it connects to the
KeyValue.get(key) method. That's something that atleast I couldn't totally
figure out-not sure about others though. I understand that it is out of
scope of th KIP to explain for every query that IQ supports but one
implementation just to get a sense of how the changes would feel like.
2) The other thing that I wanted to know is that StateStore on it's own has
a lot of implementations and some of them are wrappers, So at what levels
do users need to implement the query methods? Like a MeteredKeyValueStore
wraps RocksDbStore and calls it internally through a wrapped call. As per
the new changes, how would the scheme of things look like for the same
KeyQuery?

Thanks!
Sagar.


On Mon, Nov 15, 2021 at 6:20 PM Patrick Stuedi <pstu...@confluent.io.invalid>
wrote:

> Hi John,
>
> Thanks for submitting the KIP! One question I have is, assuming one
> instantiates InteractiveQueryRequest via withQuery, and then later calls
> getPositionBound, what will the result be? Also I noticed the Position
> returning method is in InteractiveQueryRequest and InteractiveQueryResult
> is named differently, any particular reason?
>
> Best,
>   Patrick
>
>
> On Fri, Nov 12, 2021 at 12:29 AM John Roesler <vvcep...@apache.org> wrote:
>
> > Thanks for taking a look, Sophie!
> >
> > Ah, that was a revision error. I had initially been planning
> > an Optional<Set<Integer>> with Optional.empty() meaning to
> > fetch all partitions, but then decided it was needlessly
> > complex and changed it to the current proposal with two
> > methods:
> >
> > boolean isAllPartitions();
> > Set<Integer> getPartitions(); (which would throw an
> > exception if it's an "all partitions" request).
> >
> > I've corrected the javadoc and also documented the
> > exception.
> >
> > Thanks!
> > -John
> >
> > On Thu, 2021-11-11 at 15:03 -0800, Sophie Blee-Goldman
> > wrote:
> > > Thanks John, I've been looking forward to this for a while now. It
> > > was pretty horrifying to learn
> > > how present-day IQ works  (or rather, doesn't work) with custom state
> > > stores :/
> > >
> > > One minor cosmetic point, In the InteractiveQueryRequest class, the #
> > > getPartitions
> > > method has a return type of Set<Integer>, but the javadocs refer to
> > Optional.
> > > Not
> > > sure which is intended for this API, but if is supposed to be the
> return
> > > type, do you perhaps
> > > mean for it to be  Optional.ofEmpty() and Optional.of(non-empty set)
> > > rather than Optional.of(empty set) and Optional.of(non-empty set) ?
> > >
> > > On Thu, Nov 11, 2021 at 12:03 PM John Roesler <vvcep...@apache.org>
> > wrote:
> > >
> > > > Hello again, all,
> > > >
> > > > Just bumping this discussion on a new, more flexible
> > > > Interactive Query API in Kafka Streams.
> > > >
> > > > If there are no concerns, I'll go ahead and call a vote on
> > > > Monday.
> > > >
> > > > Thanks!
> > > > -John
> > > >
> > > > On Tue, 2021-11-09 at 17:37 -0600, John Roesler wrote:
> > > > > Hello all,
> > > > >
> > > > > I'd like to start the discussion for KIP-796, which proposes
> > > > > a revamp of the Interactive Query APIs in Kafka Streams.
> > > > >
> > > > > The proposal is here:
> > > > > https://cwiki.apache.org/confluence/x/34xnCw
> > > > >
> > > > > I look forward to your feedback!
> > > > >
> > > > > Thank you,
> > > > > -John
> > > > >
> > > >
> > > >
> > > >
> >
> >
> >
>

Reply via email to