Hi, Bruno Thank you for your suggestions, I will update them soon. Sincerely,
Hanyu On Wed, Oct 4, 2023 at 9:25 AM Hanyu (Peter) Zheng <pzh...@confluent.io> wrote: > Hi, Lucas, > > Thank you for your suggestions. > I will update the KIP and code together. > > Sincerely, > Hanyu > > On Tue, Oct 3, 2023 at 8:16 PM Hanyu (Peter) Zheng <pzh...@confluent.io> > wrote: > >> If we use WithDescendingKeys() to generate a RangeQuery to do the >> reveseQuery, how do we achieve the methods like withRange, withUpperBound, >> and withLowerBound only in this method? >> >> On Tue, Oct 3, 2023 at 8:01 PM Hanyu (Peter) Zheng <pzh...@confluent.io> >> wrote: >> >>> I believe there's no need to introduce a method like >>> WithDescendingKeys(). Instead, we can simply add a reverse flag to >>> RangeQuery. Each method within RangeQuery would then accept an additional >>> parameter. If the reverse is set to true, it would indicate the results >>> should be reversed. >>> >>> Initially, I introduced a reverse variable. When set to false, the >>> RangeQuery class behaves normally. However, when reverse is set to true, >>> the RangeQuery essentially takes on the functionality of ReverseRangeQuery. >>> Further details can be found in the "Rejected Alternatives" section. >>> >>> In my perspective, RangeQuery is a class responsible for creating a >>> series of RangeQuery objects. It offers methods such as withRange, >>> withUpperBound, and withLowerBound, allowing us to generate objects >>> representing different queries. I'm unsure how adding a >>> withDescendingOrder() method would be compatible with the other methods, >>> especially considering that, based on KIP 969, WithDescendingKeys() doesn't >>> appear to take any input variables. And if withDescendingOrder() doesn't >>> accept any input, how does it return a RangeQuery? >>> >>> On Tue, Oct 3, 2023 at 4:37 PM Hanyu (Peter) Zheng <pzh...@confluent.io> >>> wrote: >>> >>>> Hi, Colt, >>>> The underlying structure of inMemoryKeyValueStore is treeMap. >>>> Sincerely, >>>> Hanyu >>>> >>>> On Tue, Oct 3, 2023 at 4:34 PM Hanyu (Peter) Zheng <pzh...@confluent.io> >>>> wrote: >>>> >>>>> Hi Bill, >>>>> 1. I will update the KIP in accordance with the PR and synchronize >>>>> their future updates. >>>>> 2. I will use that name. >>>>> 3. you mean add something about ordering at the motivation section? >>>>> >>>>> Sincerely, >>>>> Hanyu >>>>> >>>>> >>>>> On Tue, Oct 3, 2023 at 4:29 PM Hanyu (Peter) Zheng < >>>>> pzh...@confluent.io> wrote: >>>>> >>>>>> Hi, Walker, >>>>>> >>>>>> 1. I will update the KIP in accordance with the PR and synchronize >>>>>> their future updates. >>>>>> 2. I will use that name. >>>>>> 3. I'll provide additional details in that section. >>>>>> 4. I intend to utilize rangeQuery to achieve what we're referring to >>>>>> as reverseQuery. In essence, reverseQuery is merely a term. To clear up >>>>>> any >>>>>> ambiguity, I'll make necessary adjustments to the KIP. >>>>>> >>>>>> Sincerely, >>>>>> Hanyu >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Oct 3, 2023 at 4:09 PM Hanyu (Peter) Zheng < >>>>>> pzh...@confluent.io> wrote: >>>>>> >>>>>>> Ok, I will change it back to following the code, and update them >>>>>>> together. >>>>>>> >>>>>>> On Tue, Oct 3, 2023 at 2:27 PM Walker Carlson >>>>>>> <wcarl...@confluent.io.invalid> wrote: >>>>>>> >>>>>>>> Hello Hanyu, >>>>>>>> >>>>>>>> Looking over your kip things mostly make sense but I have a couple >>>>>>>> of >>>>>>>> comments. >>>>>>>> >>>>>>>> >>>>>>>> 1. You have "withDescandingOrder()". I think you mean >>>>>>>> "descending" :) >>>>>>>> Also there are still a few places in the do where its called >>>>>>>> "setReverse" >>>>>>>> 2. Also I like "WithDescendingKeys()" better >>>>>>>> 3. I'm not sure of what ordering guarantees we are offering. >>>>>>>> Perhaps we >>>>>>>> can add a section to the motivation clearly spelling out the >>>>>>>> current >>>>>>>> ordering and the new offering? >>>>>>>> 4. When you say "use unbounded reverseQuery to achieve >>>>>>>> reverseAll" do >>>>>>>> you mean "use unbounded RangeQuery to achieve reverseAll"? as >>>>>>>> far as I can >>>>>>>> tell we don't have a reverseQuery as a named object? >>>>>>>> >>>>>>>> >>>>>>>> Looking good so far >>>>>>>> >>>>>>>> best, >>>>>>>> Walker >>>>>>>> >>>>>>>> On Tue, Oct 3, 2023 at 2:13 PM Colt McNealy <c...@littlehorse.io> >>>>>>>> wrote: >>>>>>>> >>>>>>>> > Hello Hanyu, >>>>>>>> > >>>>>>>> > Thank you for the KIP. I agree with Matthias' proposal to keep >>>>>>>> the naming >>>>>>>> > convention consistent with KIP-969. I favor the >>>>>>>> `.withDescendingKeys()` >>>>>>>> > name. >>>>>>>> > >>>>>>>> > I am curious about one thing. RocksDB guarantees that records >>>>>>>> returned >>>>>>>> > during a range scan are lexicographically ordered by the bytes of >>>>>>>> the keys >>>>>>>> > (either ascending or descending order, as specified in the >>>>>>>> query). This >>>>>>>> > means that results within a single partition are indeed >>>>>>>> ordered.** My >>>>>>>> > reading of KIP-805 suggests to me that you don't need to specify >>>>>>>> the >>>>>>>> > partition number you are querying in IQv2, which means that you >>>>>>>> can have a >>>>>>>> > valid reversed RangeQuery over a store with "multiple partitions" >>>>>>>> in it. >>>>>>>> > >>>>>>>> > Currently, IQv1 does not guarantee order of keys in this >>>>>>>> scenario. Does >>>>>>>> > IQv2 support ordering across partitions? Such an implementation >>>>>>>> would >>>>>>>> > require opening a rocksdb range scan** on multiple rocksdb >>>>>>>> instances (one >>>>>>>> > per partition), and polling the first key of each. Whether or not >>>>>>>> this is >>>>>>>> > ordered, could we please add that to the documentation? >>>>>>>> > >>>>>>>> > **(How is this implemented/guaranteed in an >>>>>>>> `inMemoryKeyValueStore`? I >>>>>>>> > don't know about that implementation). >>>>>>>> > >>>>>>>> > Colt McNealy >>>>>>>> > >>>>>>>> > *Founder, LittleHorse.dev* >>>>>>>> > >>>>>>>> > >>>>>>>> > On Tue, Oct 3, 2023 at 1:35 PM Hanyu (Peter) Zheng >>>>>>>> > <pzh...@confluent.io.invalid> wrote: >>>>>>>> > >>>>>>>> > > ok, I will update it. Thank you Matthias >>>>>>>> > > >>>>>>>> > > Sincerely, >>>>>>>> > > Hanyu >>>>>>>> > > >>>>>>>> > > On Tue, Oct 3, 2023 at 11:23 AM Matthias J. Sax < >>>>>>>> mj...@apache.org> >>>>>>>> > wrote: >>>>>>>> > > >>>>>>>> > > > Thanks for the KIP Hanyu! >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > I took a quick look and it think the proposal makes sense >>>>>>>> overall. >>>>>>>> > > > >>>>>>>> > > > A few comments about how to structure the KIP. >>>>>>>> > > > >>>>>>>> > > > As you propose to not add `ReverseRangQuery` class, the code >>>>>>>> example >>>>>>>> > > > should go into "Rejected Alternatives" section, not in the >>>>>>>> "Proposed >>>>>>>> > > > Changes" section. >>>>>>>> > > > >>>>>>>> > > > For the `RangeQuery` code example, please omit all existing >>>>>>>> methods >>>>>>>> > etc, >>>>>>>> > > > and only include what will be added/changed. This make it >>>>>>>> simpler to >>>>>>>> > > > read the KIP. >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > nit: typo >>>>>>>> > > > >>>>>>>> > > > > the fault value is false >>>>>>>> > > > >>>>>>>> > > > Should be "the default value is false". >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > Not sure if `setReverse()` is the best name. Maybe >>>>>>>> > `withDescandingOrder` >>>>>>>> > > > (or similar, I guess `withReverseOrder` would also work) >>>>>>>> might be >>>>>>>> > > > better? Would be good to align to KIP-969 proposal that >>>>>>>> suggest do use >>>>>>>> > > > `withDescendingKeys` methods for "reverse key-range"; if we >>>>>>>> go with >>>>>>>> > > > `withReverseOrder` we should change KIP-969 accordingly. >>>>>>>> > > > >>>>>>>> > > > Curious to hear what others think about naming this >>>>>>>> consistently across >>>>>>>> > > > both KIPs. >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > -Matthias >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > On 10/3/23 9:17 AM, Hanyu (Peter) Zheng wrote: >>>>>>>> > > > > >>>>>>>> > > > >>>>>>>> > > >>>>>>>> > >>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-985%3A+Add+reverseRange+and+reverseAll+query+over+kv-store+in+IQv2 >>>>>>>> > > > > >>>>>>>> > > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> > > -- >>>>>>>> > > >>>>>>>> > > [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> >> > > > -- > > [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>