Thanks, David. Yeah, I agree. I was more bringing it up to make sure we explicitly discussed it.
Ron > On Apr 16, 2021, at 2:15 PM, David Arthur <mum...@gmail.com> wrote: > > Guozhang / Ismael, yes agreed on the plurality of the naming. I've updated > the KIP. > > Ron, idempotent allocations are certainly possible, but as you pointed out > it might not be needed. It would require some additional book-keeping by > the controller to recall what was the last producer ID block allocated for > each broker. It would also open us up to bugs where the same ID block could > be given out repeatedly in the case of a broker providing some wrong > information in its request. It also doesn't help in the case of a broker > restarting since the broker won't know what its last block was (unless it > adds some local state management). Generally, I think the added complexity > is not worth it. The RPC rate limiting should be sufficient to protect us > from exhausting the ID space. If you agree, I can update the discussion > section of the KIP with this conclusion. > > Thanks for the feedback so far, everyone! > > -David > >> On Wed, Apr 14, 2021 at 4:37 PM Ismael Juma <ism...@juma.me.uk> wrote: >> >> Hi Guozhang, >> >> That was my original suggestion, so I am naturally +1 :) >> >> Ismael >> >>> On Wed, Apr 14, 2021 at 11:44 AM Guozhang Wang <wangg...@gmail.com> wrote: >>> >>> Hi David, >>> >>> Just putting my paranoid hat here :) Could we name the req/resp name as >>> "AllocateProducerIds" instead of "AllocateProducerId"? Otherwise, LGTM! >>> >>> Guozhang >>> >>>> On Thu, Apr 8, 2021 at 2:23 PM Ron Dagostino <rndg...@gmail.com> wrote: >>>> >>>> Hi David. I'm wondering if it might be a good idea to have the broker >>>> send information about the last block it successfully received when it >>>> requests a new block. As the RPC stands right now it can't be >>>> idempotent -- it just tells the controller "provide me a new block, >>>> please". One case where it might be useful for the RPC to be >>>> idempotent is if the broker never receives the response from the >>>> controller such that it asks again. That would result in the burning >>>> of the block that the controller provided but that the broker never >>>> received. Now, granted, the ID space is 64 bits, so we would have to >>>> make ~2^54 requests to burn the entire space, and that isn't going to >>>> happen. So whether this is actually needed is questionable. And it >>>> might not be worth it to write the controller side code to make it act >>>> idempotently even if we added the request field to make it possible. >>>> But I figured this is worth mentioning even if we explicitly decide to >>>> reject it. >>>> >>>> Ron >>>> >>>> On Thu, Apr 8, 2021 at 3:16 PM Ron Dagostino <rndg...@gmail.com> >> wrote: >>>>> >>>>> Oh, I see. Yes, my mistake -- I read it wrong. You are right that >>>>> all we need in the metadata log is the latest value allocated. >>>>> >>>>> Ron >>>>> >>>>> On Thu, Apr 8, 2021 at 11:21 AM David Arthur <mum...@gmail.com> >> wrote: >>>>>> >>>>>> Ron -- I considered making the RPC response and record use the same >>> (or >>>>>> very similar) fields, but the use case is slightly different. A >>> broker >>>>>> handling the RPC needs to know the bounds of the block since it has >>> no >>>> idea >>>>>> what the block size is. Also, the brokers will normally see >>>> non-contiguous >>>>>> blocks. >>>>>> >>>>>> For the metadata log, we can just keep track of the latest producer >>> Id >>>> that >>>>>> was allocated. It's kind of like a high watermark for producer IDs. >>>> This >>>>>> actually saves us from needing an extra field in the record (the >> KIP >>>> has >>>>>> just ProducerIdEnd => int64 in the record). >>>>>> >>>>>> Does that make sense? >>>>>> >>>>>> On Wed, Apr 7, 2021 at 8:44 AM Ron Dagostino <rndg...@gmail.com> >>>> wrote: >>>>>> >>>>>>> Thanks for the KIP, David. >>>>>>> >>>>>>> With the RPC returning a start and length, should the record in >> the >>>>>>> metadata log do the same thing for consistency and to save the >> byte >>>>>>> per record? >>>>>>> >>>>>>> Ron >>>>>>> >>>>>>> >>>>>>> On Tue, Apr 6, 2021 at 11:06 PM Ismael Juma <ism...@juma.me.uk> >>>> wrote: >>>>>>>> >>>>>>>> Great, thanks. Instead of calling it "bridge release", can we >> say >>>> 3.0? >>>>>>>> >>>>>>>> Ismael >>>>>>>> >>>>>>>> On Tue, Apr 6, 2021 at 7:48 PM David Arthur <mum...@gmail.com> >>>> wrote: >>>>>>>> >>>>>>>>> Thanks for the feedback, Ismael. Renaming the RPC and using >>>> start+len >>>>>>>>> instead of start+end sounds fine. >>>>>>>>> >>>>>>>>> And yes, the controller will allocate the IDs in ZK mode for >>> the >>>> bridge >>>>>>>>> release. >>>>>>>>> >>>>>>>>> I'll update the KIP to reflect these points. >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> On Tue, Apr 6, 2021 at 7:30 PM Ismael Juma < >> ism...@juma.me.uk> >>>> wrote: >>>>>>>>> >>>>>>>>>> Sorry, one more question: the allocation of ids will be >> done >>>> by the >>>>>>>>>> controller even in ZK mode, right? >>>>>>>>>> >>>>>>>>>> Ismael >>>>>>>>>> >>>>>>>>>> On Tue, Apr 6, 2021 at 4:26 PM Ismael Juma < >>> ism...@juma.me.uk> >>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> One additional comment: if you return the number of ids >>>> instead of >>>>>>> the >>>>>>>>>> end >>>>>>>>>>> range, you can use an int32. >>>>>>>>>>> >>>>>>>>>>> Ismael >>>>>>>>>>> >>>>>>>>>>> On Tue, Apr 6, 2021 at 4:25 PM Ismael Juma < >>>> ism...@juma.me.uk> >>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Thanks for the KIP, David. Any reason not to rename >>>>>>>>>>>> AllocateProducerIdBlockRequest to >>>> AllocateProducerIdsRequest? >>>>>>>>>>>> >>>>>>>>>>>> Ismael >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Apr 6, 2021 at 3:51 PM David Arthur < >>>> mum...@gmail.com> >>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello everyone, >>>>>>>>>>>>> >>>>>>>>>>>>> I'd like to start the discussion for KIP-730 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-730%3A+Producer+ID+generation+in+KRaft+mode >>>>>>>>>>>>> >>>>>>>>>>>>> This KIP proposes a new RPC for generating blocks of >> IDs >>>> for >>>>>>>>>>>>> transactional >>>>>>>>>>>>> and idempotent producers. >>>>>>>>>>>>> >>>>>>>>>>>>> Cheers, >>>>>>>>>>>>> David Arthur >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> David Arthur >>>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> David Arthur >>>> >>> >>> >>> -- >>> -- Guozhang >>> >> > > > -- > David Arthur