+1, the KIP looks good to me now. Guozhang
On Tue, Jan 5, 2016 at 1:47 AM, Becket Qin <becket....@gmail.com> wrote: > Hi Adi, > > Please see inline comments. And thanks for correcting my typos :) > > > On Jan 5, 2016, at 3:37 AM, Aditya Auradkar > <aaurad...@linkedin.com.INVALID> wrote: > > > > Hey Becket/Anna - > > > > I have a few comments about the KIP. > > > > 1. (Minor) Can we rename the KIP? It's currently "Add CreateTime and > > LogAppendTime etc..". This is actually the title of the now rejected > Option > Done. Please notice the link will change as well. The previous link in the > thread no longer works. > > 1. > > 2. (Minor) Can we rename the proposed option? It isn't really "option 4" > > anymore. > Done. > > 3. I'm not clear on what exactly happens to compressed messages > > when message.timestamp.type=LogAppendTime? Does every batch get > > recompressed because the inner message gets rewritten with the server > > timestamp? Or does the message set on disk have the timestamp set to -1. > In > > that case, what do we use as timestamp for the message? > The current proposal is to keep the inner message timestamp=-1. Broker > only overwrites it if it is not -1, in that case the broker will do > recompression. > > 4. Do message.timestamp.type and max.message.time.difference.ms need to > be > > per-topic configs? It seems that this is really a client config i.e. a > > client is the source of timestamps not a topic. It could also be a > > broker-level config to keep things simple. > I feel the current proposal is more server oriented, i.e, server decides > whether accept, overwrite or reject a timestamp. This ensures the timestamp > on the broker has the same type. I am not sure about the granularity. My > gut feeling is that topic level configuration helps with multi tenant > cluster. Eventually it is the application who'd decide how they want to > define the timestamp and it might be hard to for all the applications have > same timestamp usage in the same cluster. > > 5. The "Proposed Changes" section in the KIP tries to build a time-based > > index for query but that is a separate proposal (KIP-33). Can we more > > crisply identify what exactly will change when this KIP (and 31) is > > implemented? It isn't super clear to me at this point. > Good point. They are not going to be implemented in this KIP. They are > listed because they are closely related to KIP-32. > > Other than the time index and changes on top of it, KIP-31 and KIP-32 will > implement everything else needed for message format change. > > > > Aside from that, I think the "Rejected Alternatives" section of the KIP > is > > excellent. Very good insight into what options were discussed and > rejected. > > > > Aditya > > > >> On Mon, Dec 28, 2015 at 3:57 PM, Becket Qin <becket....@gmail.com> > wrote: > >> > >> Thanks Guozhang, Gwen and Neha for the comments. Sorry for late reply > >> because I only have occasional gmail access from my phone... > >> > >> I just updated the wiki for KIP-32. > >> > >> Gwen, > >> > >> Yes, the migration plan is what you described. > >> > >> I agree with your comments on the version. > >> I changed message.format.version to use the release version. > >> I did not change the internal version, we can discuss this in a separate > >> thread. > >> > >> Thanks, > >> > >> Jiangjie (Becket) Qin > >> > >> > >> > >>> On Dec 24, 2015, at 5:38 AM, Guozhang Wang <wangg...@gmail.com> wrote: > >>> > >>> Also I agree with Gwen that such changes may worth a 0.10 release or > even > >>> 1.0, having it in 0.9.1 would be quite confusing to users. > >>> > >>> Guozhang > >>> > >>>> On Wed, Dec 23, 2015 at 1:36 PM, Guozhang Wang <wangg...@gmail.com> > >> wrote: > >>>> > >>>> Becket, > >>>> > >>>> Please let us know once you have updated the wiki page regarding the > >>>> migration plan. Thanks! > >>>> > >>>> Guozhang > >>>> > >>>>> On Wed, Dec 23, 2015 at 11:52 AM, Gwen Shapira <g...@confluent.io> > >> wrote: > >>>>> > >>>>> Thanks Becket, Anne and Neha for responding to my concern. > >>>>> > >>>>> I had an offline discussion with Anne where she helped me understand > >> the > >>>>> migration process. It isn't as bad as it looks in the KIP :) > >>>>> > >>>>> If I understand it correctly, the process (for users) will be: > >>>>> > >>>>> 1. Prepare for upgrade (set format.version = 0, ApiVersion = 0.9.0) > >>>>> 2. Rolling upgrade of brokers > >>>>> 3. Bump ApiVersion to 0.9.0-1, so fetch requests between brokers will > >> use > >>>>> the new protocol > >>>>> 4. Start upgrading clients > >>>>> 5. When "enough" clients are upgraded, bump format.version to 1 > >> (rolling). > >>>>> > >>>>> Becket, can you confirm? > >>>>> > >>>>> Assuming this is the process, I'm +1 on the change. > >>>>> > >>>>> Reminder to coders and reviewers that pull-requests with user-facing > >>>>> changes should include documentation changes as well as code changes. > >>>>> And a polite request to try to be helpful to users on when to use > >>>>> create-time and when to use log-append-time as configuration - this > is > >> not > >>>>> a trivial decision. > >>>>> > >>>>> A separate point I'm going to raise in a different thread is that we > >> need > >>>>> to streamline our versions a bit: > >>>>> 1. I'm afraid that 0.9.0-1 will be confusing to users who care about > >>>>> released versions (what if we forget to change it before the release? > >> Is > >>>>> it > >>>>> meaningful enough to someone running off trunk?), we need to come up > >> with > >>>>> something that will work for both LinkedIn and everyone else. > >>>>> 2. ApiVersion has real version numbers. message.format.version has > >>>>> sequence > >>>>> numbers. This makes us look pretty silly :) > >>>>> > >>>>> My version concerns can be addressed separately and should not hold > >> back > >>>>> this KIP. > >>>>> > >>>>> Gwen > >>>>> > >>>>> > >>>>> > >>>>> On Tue, Dec 22, 2015 at 11:01 PM, Becket Qin <becket....@gmail.com> > >>>>> wrote: > >>>>> > >>>>>> Hi Anna, > >>>>>> > >>>>>> Thanks for initiating the voting process. I did not start the voting > >>>>>> process because there were still some ongoing discussion with Jun > >> about > >>>>> the > >>>>>> timestamp regarding compressed messages. That is why the wiki page > >>>>> hasn't > >>>>>> reflected the latest conversation as Guozhang pointed out. > >>>>>> > >>>>>> Like Neha said I think we have reached general agreement on this > KIP. > >> So > >>>>>> it is probably fine to start the KIP voting. At least we draw more > >>>>>> attention to the KIP even if there are some new discussion to bring > >> up. > >>>>>> > >>>>>> Regarding the upgrade plan, given we decided to implement KIP-31 and > >>>>>> KIP-32 in the same patch to avoid change binary protocol twice, the > >>>>> upgrade > >>>>>> plan was mostly discussed on the discussion thread of KIP-31. > >>>>>> > >>>>>> Since the voting has been initiated, I will update the wiki with > >> latest > >>>>>> conversation to avoid further confusion. > >>>>>> > >>>>>> BTW, I actually have started coding work on KIP-31 and KIP-32 and > will > >>>>>> focus on the patch before I return from vacation in mid Jan because > I > >>>>> have > >>>>>> no LInkedIn VPN access in China anyway... > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> Jiangjie > >>>>>> > >>>>>>> On Dec 23, 2015, at 12:31 PM, Anna Povzner <a...@confluent.io> > >> wrote: > >>>>>>> > >>>>>>> Hi Gwen, > >>>>>>> > >>>>>>> I just wanted to point out that I just started the vote. Becket > wrote > >>>>> the > >>>>>>> proposal and led the discussions. > >>>>>>> > >>>>>>> What I understood from reading the discussion thread, the migration > >>>>> plan > >>>>>>> was discussed at the KIP meeting, and not much on the mailing list > >>>>>> itself. > >>>>>>> > >>>>>>> My question about the migration plan was same as Guozhang wrote: > The > >>>>> case > >>>>>>> when an upgraded broker receives an old producer request. The > >>>>> proposal is > >>>>>>> for the broker to fill in the timestamp field with the current time > >> at > >>>>>> the > >>>>>>> broker. Cons: it goes against the definition of CreateTime type of > >> the > >>>>>>> timestamp (we are "over-writing" it at the broker). Pros: It looks > >>>>> like > >>>>>>> most of the use-cases would actually want that behavior, because > >>>>>> otherwise > >>>>>>> timestamp is useless and they will need to support an old, > >>>>> pre-timestamp, > >>>>>>> behavior. E.g., if we modify log retention policy to use the > >>>>> timestamp, > >>>>>> we > >>>>>>> would need to support an old implementation (the one that does not > >> use > >>>>>>> timestamps in the message). So I actually have a preference for the > >>>>>>> proposed approach. > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Anna > >>>>>>> > >>>>>>>> On Tue, Dec 22, 2015 at 8:02 PM, Neha Narkhede <n...@confluent.io > > > >>>>>> wrote: > >>>>>>>> > >>>>>>>> Hey Gwen, > >>>>>>>> > >>>>>>>> Migration plan wasn't really discussed a ton in the previous > >> threads. > >>>>>> So it > >>>>>>>> will be great to dive deep and see if there are gaps there. I had > >>>>> some > >>>>>>>> questions, but the details listed on the KIP are great. > >>>>>>>> > >>>>>>>> It is complex, though the plan outlined in the wiki assumes a zero > >>>>>> downtime > >>>>>>>> upgrade assuming that producers and consumers can't be upgraded in > >>>>>> tandem. > >>>>>>>> This is typical for companies that have a significant Kafka > >>>>> footprint, > >>>>>> like > >>>>>>>> LinkedIn. > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> Neha > >>>>>>>> > >>>>>>>>> On Tue, Dec 22, 2015 at 7:48 PM, Gwen Shapira <g...@confluent.io > > > >>>>>> wrote: > >>>>>>>>> > >>>>>>>>> Hi Anna, > >>>>>>>>> > >>>>>>>>> Thanks for the KIP, especially for the details on all the > >>>>> alternatives > >>>>>>>> and > >>>>>>>>> how we arrived at the proposal. Its really great! > >>>>>>>>> > >>>>>>>>> Can you point me at where the migration plan was discussed? It > >> looks > >>>>>>>> overly > >>>>>>>>> complex and I have a bunch of questions, but if there was a > >>>>> discussion, > >>>>>>>> I'd > >>>>>>>>> like to read up rather than repeating it :) > >>>>>>>>> > >>>>>>>>> Gwen > >>>>>>>>> > >>>>>>>>>> On Tue, Dec 22, 2015 at 12:34 PM, Anna Povzner < > a...@confluent.io > >>> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> Hi, > >>>>>>>>>> > >>>>>>>>>> I am opening the voting thread for KIP-32: Add CreateTime and > >>>>>>>>>> LogAppendTime to Kafka message. > >>>>>>>>>> > >>>>>>>>>> For reference, here's the KIP wiki: > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-32+-+Add+CreateTime+and+LogAppendTime+to+Kafka+message > >>>>>>>>>> > >>>>>>>>>> And the mailing list threads: > >>>>>>>>>> > >>>>>>>>>> September: > >> > http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm6NMg%3DPh4HAJdxr%3DpmZhfFcD5OEV2yxj3fg%2BXnEBTW%2B3w%40mail.gmail.com%3E > >>>>>>>>>> > >>>>>>>>>> October: > >> > http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/%3CCAHrRUm7RiBAJxwO15s1tztz%3D15oibO-QJ%2B_w8AxafTnuw3jjCw%40mail.gmail.com%3E > >>>>>>>>>> > >>>>>>>>>> December: > >> > http://mail-archives.apache.org/mod_mbox/kafka-dev/201512.mbox/%3CCAHrRUm4ugxDYzyy26MGRGKpK4hsjT4EKTuu18M3wztYq4PE%3DaQ%40mail.gmail.com%3E > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Thanks > >>>>>>>>>> Anna > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> -- > >>>>>>>> Thanks, > >>>>>>>> Neha > >>>> > >>>> > >>>> > >>>> -- > >>>> -- Guozhang > >>> > >>> > >>> > >>> -- > >>> -- Guozhang > >> > -- -- Guozhang