Thanks Hanyu! Make sense. I was mistaken that timestamp is also in the key
for these queries.

Hao

On Mon, Oct 30, 2023 at 1:46 PM Hanyu (Peter) Zheng
<pzh...@confluent.io.invalid> wrote:

> Hi, Hao,
>
> For TimestampedKeyQuery, it only returns the value of the key, and the
> value should be ValueAndTimestamp<V>.
> If you want to get an  iterator of `ValueAndTimestamp<V>`, you can use
> TimestampedRangeQuery.
>
> Sincerely,
> Hanyu
>
> On Mon, Oct 30, 2023 at 1:42 PM Hanyu (Peter) Zheng <pzh...@confluent.io>
> wrote:
>
> > Hi, Matthias,
> > Now, if we use TimestampedKeyQuery to query kv-store, it will throw a
> > exception,
> > the exception like this:
> > java.lang.IllegalArgumentException: Cannot get result for failed query.
> >
> > Sincerely,
> > Hanyu
> >
> > On Thu, Oct 26, 2023 at 3:45 PM Hao Li <h...@confluent.io.invalid> wrote:
> >
> >> Thanks for the KIP Hanyu! One question: why not return an iterator of
> >> `ValueAndTimestamp<V>` for `TimestampedKeyQuery`? I suppose for a
> >> ts-kv-store, there could be multiple timestamps associated with the same
> >> key?
> >>
> >> Hao
> >>
> >> On Thu, Oct 26, 2023 at 10:23 AM Matthias J. Sax <mj...@apache.org>
> >> wrote:
> >>
> >> > Would we really get a ClassCastException?
> >> >
> >> >  From my understanding, the store would reject the query as
> unsupported
> >> > and thus the returned `QueryResult` object would have it's internal
> flag
> >> > set to indicate the failure, but no exception would be thrown
> directly?
> >> >
> >> > (Of course, there might be an exception thrown to the user if they
> don't
> >> > check `isSuccess()` flag but call `getResult()` directly.)
> >> >
> >> >
> >> > -Matthias
> >> >
> >> > On 10/25/23 8:55 AM, Hanyu (Peter) Zheng wrote:
> >> > > Hi, Bill,
> >> > > Thank you for your reply. Yes, now, if a user executes a timestamped
> >> > query
> >> > > against a non-timestamped store, It will throw ClassCastException.
> >> > > If a user uses KeyQuery to query kv-store or ts-kv-store, it always
> >> > return
> >> > > V.  If a user uses TimestampedKeyQuery to query kv-store, it will
> >> throw a
> >> > > exception, so TimestampedKeyQuery query can only query ts-kv-store
> and
> >> > > return ValueAndTimestamp object in the end.
> >> > >
> >> > > Sincerely,
> >> > > Hanyu
> >> > >
> >> > > On Wed, Oct 25, 2023 at 8:51 AM Hanyu (Peter) Zheng <
> >> pzh...@confluent.io
> >> > >
> >> > > wrote:
> >> > >
> >> > >> Thank you Lucas,
> >> > >>
> >> > >> I will fix the capitalization.
> >> > >> When a user executes a timestamped query against a non-timestamped
> >> > store,
> >> > >> It will throw ClassCastException.
> >> > >>
> >> > >> Sincerely,
> >> > >> Hanyu
> >> > >>
> >> > >> On Tue, Oct 24, 2023 at 1:36 AM Lucas Brutschy
> >> > >> <lbruts...@confluent.io.invalid> wrote:
> >> > >>
> >> > >>> Hi Hanyu,
> >> > >>>
> >> > >>> reading the KIP, I was wondering the same thing as Bill.
> >> > >>>
> >> > >>> Other than that, this looks good to me. Thanks for KIP.
> >> > >>>
> >> > >>> nit: you have method names `LowerBound` and `UpperBound`, where
> you
> >> > >>> probably want to fix the capitalization.
> >> > >>>
> >> > >>> Cheers,
> >> > >>> Lucas
> >> > >>>
> >> > >>> On Mon, Oct 23, 2023 at 5:46 PM Bill Bejeck <bbej...@gmail.com>
> >> wrote:
> >> > >>>>
> >> > >>>> Hey Hanyu,
> >> > >>>>
> >> > >>>> Thanks for the KIP, it's a welcomed addition.
> >> > >>>> Overall, the KIP looks good to me, I just have one comment.
> >> > >>>>
> >> > >>>> Can you discuss the expected behavior when a user executes a
> >> > timestamped
> >> > >>>> query against a non-timestamped store?  I think it should throw
> an
> >> > >>>> exception vs. using some default value.
> >> > >>>> If it's the case that Kafka Stream wraps all stores in a
> >> > >>>> `TimestampAndValue` store and returning a plain `V` or a
> >> > >>>> `TimestampAndValue<V>` object depends on the query type, then it
> >> would
> >> > >>> be
> >> > >>>> good to add those details to the KIP.
> >> > >>>>
> >> > >>>> Thanks,
> >> > >>>> Bill
> >> > >>>>
> >> > >>>>
> >> > >>>>
> >> > >>>> On Fri, Oct 20, 2023 at 5:07 PM Hanyu (Peter) Zheng
> >> > >>>> <pzh...@confluent.io.invalid> wrote:
> >> > >>>>
> >> > >>>>> Thank you Matthias,
> >> > >>>>>
> >> > >>>>> I will modify the KIP to eliminate this restriction.
> >> > >>>>>
> >> > >>>>> Sincerely,
> >> > >>>>> Hanyu
> >> > >>>>>
> >> > >>>>> On Fri, Oct 20, 2023 at 2:04 PM Hanyu (Peter) Zheng <
> >> > >>> pzh...@confluent.io>
> >> > >>>>> wrote:
> >> > >>>>>
> >> > >>>>>> Thank you Alieh,
> >> > >>>>>>
> >> > >>>>>> In these two new query types, I will remove 'get' from all
> getter
> >> > >>> method
> >> > >>>>>> names.
> >> > >>>>>>
> >> > >>>>>> Sincerely,
> >> > >>>>>> Hanyu
> >> > >>>>>>
> >> > >>>>>> On Fri, Oct 20, 2023 at 10:40 AM Matthias J. Sax <
> >> mj...@apache.org>
> >> > >>>>> wrote:
> >> > >>>>>>
> >> > >>>>>>> Thanks for the KIP Hanyu,
> >> > >>>>>>>
> >> > >>>>>>> One questions:
> >> > >>>>>>>
> >> > >>>>>>>> To address this inconsistency, we propose that KeyQuery
> should
> >> > >>> be
> >> > >>>>>>> restricted to querying kv-stores  only, ensuring that it
> always
> >> > >>> returns
> >> > >>>>> a
> >> > >>>>>>> plain V  type, making the behavior of the aforementioned code
> >> more
> >> > >>>>>>> predictable. Similarly, RangeQuery  should be dedicated to
> >> querying
> >> > >>>>>>> kv-stores , consistently returning only the plain V .
> >> > >>>>>>>
> >> > >>>>>>> Why do you want to restrict `KeyQuery` and `RangeQuery` to
> >> > >>> kv-stores? I
> >> > >>>>>>> think it would be possible to still allow both queries for
> >> > >>> ts-kv-stores,
> >> > >>>>>>> but change the implementation to return "plain V" instead of
> >> > >>>>>>> `ValueAndTimestamp<V>`, ie, the implementation would
> >> automatically
> >> > >>>>>>> unwrap the value.
> >> > >>>>>>>
> >> > >>>>>>>
> >> > >>>>>>>
> >> > >>>>>>> -Matthias
> >> > >>>>>>>
> >> > >>>>>>> On 10/20/23 2:32 AM, Alieh Saeedi wrote:
> >> > >>>>>>>> Hey Hanyu,
> >> > >>>>>>>>
> >> > >>>>>>>> Thanks for the KIP. It seems good to me.
> >> > >>>>>>>> Just one point: AFAIK, we are going to remove "get" from the
> >> > >>> name of
> >> > >>>>> all
> >> > >>>>>>>> getter methods.
> >> > >>>>>>>>
> >> > >>>>>>>> Cheers,
> >> > >>>>>>>> Alieh
> >> > >>>>>>>>
> >> > >>>>>>>> On Thu, Oct 19, 2023 at 5:44 PM Hanyu (Peter) Zheng
> >> > >>>>>>>> <pzh...@confluent.io.invalid> wrote:
> >> > >>>>>>>>
> >> > >>>>>>>>> Hello everyone,
> >> > >>>>>>>>>
> >> > >>>>>>>>> I would like to start the discussion for KIP-992: Proposal
> to
> >> > >>>>> introduce
> >> > >>>>>>>>> IQv2 Query Types: TimestampedKeyQuery and
> >> TimestampedRangeQuery
> >> > >>>>>>>>>
> >> > >>>>>>>>> The KIP can be found here:
> >> > >>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-992%3A+Proposal+to+introduce+IQv2+Query+Types%3A+TimestampedKeyQuery+and+TimestampedRangeQuery
> >> > >>>>>>>>>
> >> > >>>>>>>>> Any suggestions are more than welcome.
> >> > >>>>>>>>>
> >> > >>>>>>>>> Many thanks,
> >> > >>>>>>>>> Hanyu
> >> > >>>>>>>>>
> >> > >>>>>>>>> On Thu, Oct 19, 2023 at 8:17 AM Hanyu (Peter) Zheng <
> >> > >>>>>>> pzh...@confluent.io>
> >> > >>>>>>>>> wrote:
> >> > >>>>>>>>>
> >> > >>>>>>>>>>
> >> > >>>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-992%3A+Proposal+to+introduce+IQv2+Query+Types%3A+TimestampedKeyQuery+and+TimestampedRangeQuery
> >> > >>>>>>>>>>
> >> > >>>>>>>>>> --
> >> > >>>>>>>>>>
> >> > >>>>>>>>>> [image: Confluent] <https://www.confluent.io>
> >> > >>>>>>>>>> Hanyu (Peter) Zheng he/him/his
> >> > >>>>>>>>>> Software Engineer Intern
> >> > >>>>>>>>>> +1 (213) 431-7193 <+1+(213)+431-7193>
> >> > >>>>>>>>>> Follow us: [image: Blog]
> >> > >>>>>>>>>> <
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >> > >>>>>>>>>> [image:
> >> > >>>>>>>>>> Twitter] <https://twitter.com/ConfluentInc>[image:
> LinkedIn]
> >> > >>>>>>>>>> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image:
> >> Slack]
> >> > >>>>>>>>>> <https://slackpass.io/confluentcommunity>[image: YouTube]
> >> > >>>>>>>>>> <https://youtube.com/confluent>
> >> > >>>>>>>>>>
> >> > >>>>>>>>>> [image: Try Confluent Cloud for Free]
> >> > >>>>>>>>>> <
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >> > >>>>>>>>>>
> >> > >>>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>>> --
> >> > >>>>>>>>>
> >> > >>>>>>>>> [image: Confluent] <https://www.confluent.io>
> >> > >>>>>>>>> Hanyu (Peter) Zheng he/him/his
> >> > >>>>>>>>> Software Engineer Intern
> >> > >>>>>>>>> +1 (213) 431-7193 <+1+(213)+431-7193>
> >> > >>>>>>>>> Follow us: [image: Blog]
> >> > >>>>>>>>> <
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >> > >>>>>>>>>> [image:
> >> > >>>>>>>>> Twitter] <https://twitter.com/ConfluentInc>[image:
> LinkedIn]
> >> > >>>>>>>>> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image:
> >> Slack]
> >> > >>>>>>>>> <https://slackpass.io/confluentcommunity>[image: YouTube]
> >> > >>>>>>>>> <https://youtube.com/confluent>
> >> > >>>>>>>>>
> >> > >>>>>>>>> [image: Try Confluent Cloud for Free]
> >> > >>>>>>>>> <
> >> > >>>>>>>>>
> >> > >>>>>>>
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >> > >>>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>>
> >> > >>>>>>>
> >> > >>>>>>
> >> > >>>>>>
> >> > >>>>>> --
> >> > >>>>>>
> >> > >>>>>> [image: Confluent] <https://www.confluent.io>
> >> > >>>>>> Hanyu (Peter) Zheng he/him/his
> >> > >>>>>> Software Engineer Intern
> >> > >>>>>> +1 (213) 431-7193 <+1+(213)+431-7193>
> >> > >>>>>> Follow us: [image: Blog]
> >> > >>>>>> <
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >> > >>>>>> [image:
> >> > >>>>>> Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
> >> > >>>>>> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image: Slack]
> >> > >>>>>> <https://slackpass.io/confluentcommunity>[image: YouTube]
> >> > >>>>>> <https://youtube.com/confluent>
> >> > >>>>>>
> >> > >>>>>> [image: Try Confluent Cloud for Free]
> >> > >>>>>> <
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >> > >>>>>>
> >> > >>>>>>
> >> > >>>>>
> >> > >>>>>
> >> > >>>>> --
> >> > >>>>>
> >> > >>>>> [image: Confluent] <https://www.confluent.io>
> >> > >>>>> Hanyu (Peter) Zheng he/him/his
> >> > >>>>> Software Engineer Intern
> >> > >>>>> +1 (213) 431-7193 <+1+(213)+431-7193>
> >> > >>>>> Follow us: [image: Blog]
> >> > >>>>> <
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >> > >>>>>> [image:
> >> > >>>>> Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
> >> > >>>>> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image: Slack]
> >> > >>>>> <https://slackpass.io/confluentcommunity>[image: YouTube]
> >> > >>>>> <https://youtube.com/confluent>
> >> > >>>>>
> >> > >>>>> [image: Try Confluent Cloud for Free]
> >> > >>>>> <
> >> > >>>>>
> >> > >>>
> >> >
> >>
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >> > >>>>>>
> >> > >>>>>
> >> > >>>
> >> > >>
> >> > >>
> >> > >> --
> >> > >>
> >> > >> [image: Confluent] <https://www.confluent.io>
> >> > >> Hanyu (Peter) Zheng he/him/his
> >> > >> Software Engineer Intern
> >> > >> +1 (213) 431-7193 <+1+(213)+431-7193>
> >> > >> Follow us: [image: Blog]
> >> > >> <
> >> >
> >>
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >> > >[image:
> >> > >> Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
> >> > >> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image: Slack]
> >> > >> <https://slackpass.io/confluentcommunity>[image: YouTube]
> >> > >> <https://youtube.com/confluent>
> >> > >>
> >> > >> [image: Try Confluent Cloud for Free]
> >> > >> <
> >> >
> >>
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >> > >
> >> > >>
> >> > >
> >> > >
> >> >
> >>
> >
> >
> > --
> >
> > [image: Confluent] <https://www.confluent.io>
> > Hanyu (Peter) Zheng he/him/his
> > Software Engineer Intern
> > +1 (213) 431-7193 <+1+(213)+431-7193>
> > Follow us: [image: Blog]
> > <
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >[image:
> > Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
> > <https://www.linkedin.com/in/hanyu-peter-zheng/>[image: Slack]
> > <https://slackpass.io/confluentcommunity>[image: YouTube]
> > <https://youtube.com/confluent>
> >
> > [image: Try Confluent Cloud for Free]
> > <
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >
> >
>
>
> --
>
> [image: Confluent] <https://www.confluent.io>
> Hanyu (Peter) Zheng he/him/his
> Software Engineer Intern
> +1 (213) 431-7193 <+1+(213)+431-7193>
> Follow us: [image: Blog]
> <
> https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog
> >[image:
> Twitter] <https://twitter.com/ConfluentInc>[image: LinkedIn]
> <https://www.linkedin.com/in/hanyu-peter-zheng/>[image: Slack]
> <https://slackpass.io/confluentcommunity>[image: YouTube]
> <https://youtube.com/confluent>
>
> [image: Try Confluent Cloud for Free]
> <
> https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic
> >
>

Reply via email to