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 > > > >> > > > > >