Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-27 Thread Becket Qin
Hi folks,

During the implementation of the KIP, Guozhang raised another proposal on
how to indicate the message timestamp type used by messages.

The difference between current and the new proposal only differs on
messages that are a) compressed, and b) using LogAppendTime

For compressed messages using LogAppendTime, the timestamps in the current
proposal is as below:
1. When a producer produces the messages, it tries to set timestamp to -1
for inner messages if it knows LogAppendTime is used.
2. When a broker receives the messages, it will overwrite the timestamp of
inner message to -1 if needed and write server time to the wrapper message.
Broker will do re-compression if inner message timestamp is overwritten.
3. When a consumer receives the messages, it will see the inner message
timestamp is -1 so the wrapper message timestamp is used.

Implementation wise, this proposal requires the producer to set timestamp
for inner messages correctly to avoid broker side re-compression. To do
that, the short term solution is to let producer infer the timestamp type
returned by broker in ProduceResponse and set correct timestamp afterwards.
This means the first few batches will still need re-compression on the
broker. The long term solution is to have producer get topic configuration
during metadata update.


The proposed modification is:
1. When a producer produces the messages, it always using create time.
2. When a broker receives the messages, it ignores the inner messages
timestamp, but simply set a wrapper message timestamp type attribute bit to
1 and set the timestamp of the wrapper message to server time. (The broker
will also set the timesatmp type attribute bit accordingly for
non-compressed messages using LogAppendTime).
3. When a consumer receives the messages, it checks timestamp type
attribute bit of wrapper message. If it is set to 1, the inner message's
timestamp will be ignored and the wrapper message's timestamp will be used.

This approach uses an extra attribute bit. The good thing of the modified
protocol is consumers will be able to know the timestamp type. And
re-compression on broker side is completely avoided no matter what value is
sent by the producer. In this approach the inner messages will have wrong
timestamps.

The changed proposal has gone through some discussion during the KIP
hangout as well as the discussion thread. Based on the current consensus, I
have updated the KIP wiki with changed proposal and will implement it

Please let us know if you have any concern over the changed proposal.

Thanks,

Jiangjie (Becket) Qin

On Thu, Jan 21, 2016 at 10:08 AM, Jiangjie Qin 
wrote:

> I updated KIP-32 wiki with Anna's suggestion on ProduceResponse format
> change.
>
> Because it looks everyone also has a +1 on ProduceResponse format change, I
> take this update passed as well.
>
> KIP-32 passed with +6(binding).
>
> Thanks a lot for everyone's participation and all the comments.
>
> BTW, the patch for KIP-31 and KIP-32 has been submitted for review in PR
> #764.
>
> Thanks,
>
> Jiangjie (Becket) Qin
>
> On Mon, Jan 11, 2016 at 10:48 PM, Becket Qin  wrote:
>
> > That makes sense to me, too. I will update the KIP to reflect this.
> > Thanks, Anna.
> >
> > > On Jan 9, 2016, at 9:37 AM, Neha Narkhede  wrote:
> > >
> > > Anna - Good suggestion. Sounds good to me as well
> > >
> > > On Fri, Jan 8, 2016 at 2:32 PM, Aditya Auradkar <
> > > aaurad...@linkedin.com.invalid> wrote:
> > >
> > >> Anna,
> > >>
> > >> That sounds good to me as well.
> > >>
> > >> Aditya
> > >>
> > >>> On Fri, Jan 8, 2016 at 2:11 PM, Gwen Shapira 
> > wrote:
> > >>>
> > >>> Sounds good to me too. Seems pretty easy to add and can be useful for
> > >>> producers.
> > >>>
> >  On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy 
> > wrote:
> > 
> >  Hi Anna,
> > 
> >  That sounds good to me - Becket/others any thoughts?
> > 
> >  Thanks,
> > 
> >  Joel
> > 
> >  On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner 
> > >> wrote:
> > 
> > > Hi Becket and everyone,
> > >
> > > Could we please add the following functionality to this KIP. I
> think
> > >> it
> > > would be very useful for the broker to return the timestamp in the
> > >> ack
> > >>> to
> > > the producer (in response: timestamp per partition) and propagate
> it
> > >>> back
> > > to client in RecordMetadata. This way, if timestamp type is
> >  LogAppendTime,
> > > the producer client will see what timestamp was actually set -- and
> > >> it
> > > would match the timestamp that consumer sees. Also, returning the
> >  timestamp
> > > in RecordMetadata is also useful for timestamp type = CreateTime,
> > >> since
> > > timestamp could be also set in KafkaProducer (if client set
> timestamp
> > >>> in
> > > ProducerRecord to 0).
> > >
> > > Since this requires protocol change as well, it will be better to
> >  implement
> > > this as part of KIP-32, rather than propo

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-21 Thread Jiangjie Qin
I updated KIP-32 wiki with Anna's suggestion on ProduceResponse format
change.

Because it looks everyone also has a +1 on ProduceResponse format change, I
take this update passed as well.

KIP-32 passed with +6(binding).

Thanks a lot for everyone's participation and all the comments.

BTW, the patch for KIP-31 and KIP-32 has been submitted for review in PR
#764.

Thanks,

Jiangjie (Becket) Qin

On Mon, Jan 11, 2016 at 10:48 PM, Becket Qin  wrote:

> That makes sense to me, too. I will update the KIP to reflect this.
> Thanks, Anna.
>
> > On Jan 9, 2016, at 9:37 AM, Neha Narkhede  wrote:
> >
> > Anna - Good suggestion. Sounds good to me as well
> >
> > On Fri, Jan 8, 2016 at 2:32 PM, Aditya Auradkar <
> > aaurad...@linkedin.com.invalid> wrote:
> >
> >> Anna,
> >>
> >> That sounds good to me as well.
> >>
> >> Aditya
> >>
> >>> On Fri, Jan 8, 2016 at 2:11 PM, Gwen Shapira 
> wrote:
> >>>
> >>> Sounds good to me too. Seems pretty easy to add and can be useful for
> >>> producers.
> >>>
>  On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy 
> wrote:
> 
>  Hi Anna,
> 
>  That sounds good to me - Becket/others any thoughts?
> 
>  Thanks,
> 
>  Joel
> 
>  On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner 
> >> wrote:
> 
> > Hi Becket and everyone,
> >
> > Could we please add the following functionality to this KIP. I think
> >> it
> > would be very useful for the broker to return the timestamp in the
> >> ack
> >>> to
> > the producer (in response: timestamp per partition) and propagate it
> >>> back
> > to client in RecordMetadata. This way, if timestamp type is
>  LogAppendTime,
> > the producer client will see what timestamp was actually set -- and
> >> it
> > would match the timestamp that consumer sees. Also, returning the
>  timestamp
> > in RecordMetadata is also useful for timestamp type = CreateTime,
> >> since
> > timestamp could be also set in KafkaProducer (if client set timestamp
> >>> in
> > ProducerRecord to 0).
> >
> > Since this requires protocol change as well, it will be better to
>  implement
> > this as part of KIP-32, rather than proposing a new KIP.
> >
> > Thanks,
> > Anna
> >
> >
> > On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy 
> >>> wrote:
> >
> >> +1 from me
> >>
> >> Looking through this thread it seems there was some confusion on
> >> the
> >> migration discussion. This discussion in fact happened in the
> >> KIP-31
> >> discuss thread, not so much in the KIP hangout. There is
> >> considerable
> >> overlap in discussions between KIP-3[1,2,3] so it makes sense to
> >> cross-reference all of these.
> >>
> >> I'm finding the Apache list archive a little cumbersome to use
> >> (e.g.,
>  the
> >> current link in KIP-31 points to the beginning of September
> >> archives)
>  but
> >> the emails discussing migration were in October:
> >>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
> >>
> >> Markmail has a better interface but interestingly it has not
> >> indexed
>  any
> > of
> >> the emails from August, September and early October (
> >>
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> >> ).
> >> Perhaps KIPs should include a permalink to the first message of the
> > DISCUSS
> >> thread. E.g.,
> >>
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
> >>
> >> Also, just to clarify Jay's comments on the content of KIPs: I
> >> think
> > having
> >> a pseudo-code spec/implementation guide is useful (especially for
> >> client-side KIPs). While the motivation should definitely capture
> >>> “why
>  we
> >> are doing the KIP” it probably shouldn’t have to exhaustively
> >> capture
> > “why
> >> we are doing the KIP *this way*”. i.e., some of the discussions are
> >> extremely nuanced and in this case spans multiple KIPs so links to
>  other
> >> KIPs and the discuss threads and KIP hangout recordings are perhaps
> >> sufficient to fill this gap - or maybe a new section that
> >> summarizes
>  the
> >> discussions.
> >>
> >> Thanks,
> >>
> >> Joel
> >>
> >>> On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
> >>>
> >>> Hi, Jiangjie,
> >>>
> >>> 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> >>> Unfortunately, we use MessageSet in SimpleConsumer, which is part
> >>> of
> > the
> >>> public api. Replacing MessageSet with o.a.k.common.record will be
> >>> an
> >>> incompatible api change. So, we probably should do this after we
> >> deprecate
> >>> SimpleConsumer.
> >>>
> >>> My original question is actually whether we just bump up magic
> >> byte
>  

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-11 Thread Becket Qin
That makes sense to me, too. I will update the KIP to reflect this. Thanks, 
Anna.

> On Jan 9, 2016, at 9:37 AM, Neha Narkhede  wrote:
> 
> Anna - Good suggestion. Sounds good to me as well
> 
> On Fri, Jan 8, 2016 at 2:32 PM, Aditya Auradkar <
> aaurad...@linkedin.com.invalid> wrote:
> 
>> Anna,
>> 
>> That sounds good to me as well.
>> 
>> Aditya
>> 
>>> On Fri, Jan 8, 2016 at 2:11 PM, Gwen Shapira  wrote:
>>> 
>>> Sounds good to me too. Seems pretty easy to add and can be useful for
>>> producers.
>>> 
 On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy  wrote:
 
 Hi Anna,
 
 That sounds good to me - Becket/others any thoughts?
 
 Thanks,
 
 Joel
 
 On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner 
>> wrote:
 
> Hi Becket and everyone,
> 
> Could we please add the following functionality to this KIP. I think
>> it
> would be very useful for the broker to return the timestamp in the
>> ack
>>> to
> the producer (in response: timestamp per partition) and propagate it
>>> back
> to client in RecordMetadata. This way, if timestamp type is
 LogAppendTime,
> the producer client will see what timestamp was actually set -- and
>> it
> would match the timestamp that consumer sees. Also, returning the
 timestamp
> in RecordMetadata is also useful for timestamp type = CreateTime,
>> since
> timestamp could be also set in KafkaProducer (if client set timestamp
>>> in
> ProducerRecord to 0).
> 
> Since this requires protocol change as well, it will be better to
 implement
> this as part of KIP-32, rather than proposing a new KIP.
> 
> Thanks,
> Anna
> 
> 
> On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy 
>>> wrote:
> 
>> +1 from me
>> 
>> Looking through this thread it seems there was some confusion on
>> the
>> migration discussion. This discussion in fact happened in the
>> KIP-31
>> discuss thread, not so much in the KIP hangout. There is
>> considerable
>> overlap in discussions between KIP-3[1,2,3] so it makes sense to
>> cross-reference all of these.
>> 
>> I'm finding the Apache list archive a little cumbersome to use
>> (e.g.,
 the
>> current link in KIP-31 points to the beginning of September
>> archives)
 but
>> the emails discussing migration were in October:
>>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
>> 
>> Markmail has a better interface but interestingly it has not
>> indexed
 any
> of
>> the emails from August, September and early October (
>> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
>> ).
>> Perhaps KIPs should include a permalink to the first message of the
> DISCUSS
>> thread. E.g.,
>> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
>> 
>> Also, just to clarify Jay's comments on the content of KIPs: I
>> think
> having
>> a pseudo-code spec/implementation guide is useful (especially for
>> client-side KIPs). While the motivation should definitely capture
>>> “why
 we
>> are doing the KIP” it probably shouldn’t have to exhaustively
>> capture
> “why
>> we are doing the KIP *this way*”. i.e., some of the discussions are
>> extremely nuanced and in this case spans multiple KIPs so links to
 other
>> KIPs and the discuss threads and KIP hangout recordings are perhaps
>> sufficient to fill this gap - or maybe a new section that
>> summarizes
 the
>> discussions.
>> 
>> Thanks,
>> 
>> Joel
>> 
>>> On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
>>> 
>>> Hi, Jiangjie,
>>> 
>>> 52. Replacing MessageSet with o.a.k.common.record will be ideal.
>>> Unfortunately, we use MessageSet in SimpleConsumer, which is part
>>> of
> the
>>> public api. Replacing MessageSet with o.a.k.common.record will be
>>> an
>>> incompatible api change. So, we probably should do this after we
>> deprecate
>>> SimpleConsumer.
>>> 
>>> My original question is actually whether we just bump up magic
>> byte
 in
>>> Message once to incorporate both the offset and the timestamp
>>> change.
> It
>>> seems that the answer is yes. Could you reflect that in the KIP?
>>> 
>>> Thanks,
>>> 
>>> Jun
>>> 
>>> 
>>> On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin >> 
> wrote:
>>> 
 Thanks a lot for the careful reading, Jun.
 Please see inline replies.
 
 
> On Jan 6, 2016, at 3:24 AM, Jun Rao 
>> wrote:
> 
> Jiangjie,
> 
> Thanks for the updated KIP. Overall, a +1 on the proposal. A
>>> few
>> minor
> comments on the KIP.
> 
> KIP-32:
> 50. 6.c says "The log rolling

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Neha Narkhede
Anna - Good suggestion. Sounds good to me as well

On Fri, Jan 8, 2016 at 2:32 PM, Aditya Auradkar <
aaurad...@linkedin.com.invalid> wrote:

> Anna,
>
> That sounds good to me as well.
>
> Aditya
>
> On Fri, Jan 8, 2016 at 2:11 PM, Gwen Shapira  wrote:
>
> > Sounds good to me too. Seems pretty easy to add and can be useful for
> > producers.
> >
> > On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy  wrote:
> >
> > > Hi Anna,
> > >
> > > That sounds good to me - Becket/others any thoughts?
> > >
> > > Thanks,
> > >
> > > Joel
> > >
> > > On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner 
> wrote:
> > >
> > > > Hi Becket and everyone,
> > > >
> > > > Could we please add the following functionality to this KIP. I think
> it
> > > > would be very useful for the broker to return the timestamp in the
> ack
> > to
> > > > the producer (in response: timestamp per partition) and propagate it
> > back
> > > > to client in RecordMetadata. This way, if timestamp type is
> > > LogAppendTime,
> > > > the producer client will see what timestamp was actually set -- and
> it
> > > > would match the timestamp that consumer sees. Also, returning the
> > > timestamp
> > > > in RecordMetadata is also useful for timestamp type = CreateTime,
> since
> > > > timestamp could be also set in KafkaProducer (if client set timestamp
> > in
> > > > ProducerRecord to 0).
> > > >
> > > > Since this requires protocol change as well, it will be better to
> > > implement
> > > > this as part of KIP-32, rather than proposing a new KIP.
> > > >
> > > > Thanks,
> > > > Anna
> > > >
> > > >
> > > > On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy 
> > wrote:
> > > >
> > > > > +1 from me
> > > > >
> > > > > Looking through this thread it seems there was some confusion on
> the
> > > > > migration discussion. This discussion in fact happened in the
> KIP-31
> > > > > discuss thread, not so much in the KIP hangout. There is
> considerable
> > > > > overlap in discussions between KIP-3[1,2,3] so it makes sense to
> > > > > cross-reference all of these.
> > > > >
> > > > > I'm finding the Apache list archive a little cumbersome to use
> (e.g.,
> > > the
> > > > > current link in KIP-31 points to the beginning of September
> archives)
> > > but
> > > > > the emails discussing migration were in October:
> > > > >
> > http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
> > > > >
> > > > > Markmail has a better interface but interestingly it has not
> indexed
> > > any
> > > > of
> > > > > the emails from August, September and early October (
> > > > >
> > > > >
> > > >
> > >
> >
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> > > > > ).
> > > > > Perhaps KIPs should include a permalink to the first message of the
> > > > DISCUSS
> > > > > thread. E.g.,
> > > > >
> > > > >
> > > >
> > >
> >
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
> > > > >
> > > > > Also, just to clarify Jay's comments on the content of KIPs: I
> think
> > > > having
> > > > > a pseudo-code spec/implementation guide is useful (especially for
> > > > > client-side KIPs). While the motivation should definitely capture
> > “why
> > > we
> > > > > are doing the KIP” it probably shouldn’t have to exhaustively
> capture
> > > > “why
> > > > > we are doing the KIP *this way*”. i.e., some of the discussions are
> > > > > extremely nuanced and in this case spans multiple KIPs so links to
> > > other
> > > > > KIPs and the discuss threads and KIP hangout recordings are perhaps
> > > > > sufficient to fill this gap - or maybe a new section that
> summarizes
> > > the
> > > > > discussions.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Joel
> > > > >
> > > > > On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
> > > > >
> > > > > > Hi, Jiangjie,
> > > > > >
> > > > > > 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> > > > > > Unfortunately, we use MessageSet in SimpleConsumer, which is part
> > of
> > > > the
> > > > > > public api. Replacing MessageSet with o.a.k.common.record will be
> > an
> > > > > > incompatible api change. So, we probably should do this after we
> > > > > deprecate
> > > > > > SimpleConsumer.
> > > > > >
> > > > > > My original question is actually whether we just bump up magic
> byte
> > > in
> > > > > > Message once to incorporate both the offset and the timestamp
> > change.
> > > > It
> > > > > > seems that the answer is yes. Could you reflect that in the KIP?
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Jun
> > > > > >
> > > > > >
> > > > > > On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin  >
> > > > wrote:
> > > > > >
> > > > > > > Thanks a lot for the careful reading, Jun.
> > > > > > > Please see inline replies.
> > > > > > >
> > > > > > >
> > > > > > > > On Jan 6, 2016, at 3:24 AM, Jun Rao 
> wrote:
> > > > > > > >
> > > > > > > > Jiangjie,
> > > > > > > >
> > > > > > > > Thanks

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Aditya Auradkar
Anna,

That sounds good to me as well.

Aditya

On Fri, Jan 8, 2016 at 2:11 PM, Gwen Shapira  wrote:

> Sounds good to me too. Seems pretty easy to add and can be useful for
> producers.
>
> On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy  wrote:
>
> > Hi Anna,
> >
> > That sounds good to me - Becket/others any thoughts?
> >
> > Thanks,
> >
> > Joel
> >
> > On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner  wrote:
> >
> > > Hi Becket and everyone,
> > >
> > > Could we please add the following functionality to this KIP. I think it
> > > would be very useful for the broker to return the timestamp in the ack
> to
> > > the producer (in response: timestamp per partition) and propagate it
> back
> > > to client in RecordMetadata. This way, if timestamp type is
> > LogAppendTime,
> > > the producer client will see what timestamp was actually set -- and it
> > > would match the timestamp that consumer sees. Also, returning the
> > timestamp
> > > in RecordMetadata is also useful for timestamp type = CreateTime, since
> > > timestamp could be also set in KafkaProducer (if client set timestamp
> in
> > > ProducerRecord to 0).
> > >
> > > Since this requires protocol change as well, it will be better to
> > implement
> > > this as part of KIP-32, rather than proposing a new KIP.
> > >
> > > Thanks,
> > > Anna
> > >
> > >
> > > On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy 
> wrote:
> > >
> > > > +1 from me
> > > >
> > > > Looking through this thread it seems there was some confusion on the
> > > > migration discussion. This discussion in fact happened in the KIP-31
> > > > discuss thread, not so much in the KIP hangout. There is considerable
> > > > overlap in discussions between KIP-3[1,2,3] so it makes sense to
> > > > cross-reference all of these.
> > > >
> > > > I'm finding the Apache list archive a little cumbersome to use (e.g.,
> > the
> > > > current link in KIP-31 points to the beginning of September archives)
> > but
> > > > the emails discussing migration were in October:
> > > >
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
> > > >
> > > > Markmail has a better interface but interestingly it has not indexed
> > any
> > > of
> > > > the emails from August, September and early October (
> > > >
> > > >
> > >
> >
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> > > > ).
> > > > Perhaps KIPs should include a permalink to the first message of the
> > > DISCUSS
> > > > thread. E.g.,
> > > >
> > > >
> > >
> >
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
> > > >
> > > > Also, just to clarify Jay's comments on the content of KIPs: I think
> > > having
> > > > a pseudo-code spec/implementation guide is useful (especially for
> > > > client-side KIPs). While the motivation should definitely capture
> “why
> > we
> > > > are doing the KIP” it probably shouldn’t have to exhaustively capture
> > > “why
> > > > we are doing the KIP *this way*”. i.e., some of the discussions are
> > > > extremely nuanced and in this case spans multiple KIPs so links to
> > other
> > > > KIPs and the discuss threads and KIP hangout recordings are perhaps
> > > > sufficient to fill this gap - or maybe a new section that summarizes
> > the
> > > > discussions.
> > > >
> > > > Thanks,
> > > >
> > > > Joel
> > > >
> > > > On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
> > > >
> > > > > Hi, Jiangjie,
> > > > >
> > > > > 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> > > > > Unfortunately, we use MessageSet in SimpleConsumer, which is part
> of
> > > the
> > > > > public api. Replacing MessageSet with o.a.k.common.record will be
> an
> > > > > incompatible api change. So, we probably should do this after we
> > > > deprecate
> > > > > SimpleConsumer.
> > > > >
> > > > > My original question is actually whether we just bump up magic byte
> > in
> > > > > Message once to incorporate both the offset and the timestamp
> change.
> > > It
> > > > > seems that the answer is yes. Could you reflect that in the KIP?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Jun
> > > > >
> > > > >
> > > > > On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin 
> > > wrote:
> > > > >
> > > > > > Thanks a lot for the careful reading, Jun.
> > > > > > Please see inline replies.
> > > > > >
> > > > > >
> > > > > > > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> > > > > > >
> > > > > > > Jiangjie,
> > > > > > >
> > > > > > > Thanks for the updated KIP. Overall, a +1 on the proposal. A
> few
> > > > minor
> > > > > > > comments on the KIP.
> > > > > > >
> > > > > > > KIP-32:
> > > > > > > 50. 6.c says "The log rolling has to depend on the earliest
> > > > timestamp",
> > > > > > > which is inconsistent with KIP-33.
> > > > > > Corrected.
> > > > > > >
> > > > > > > 51. 8.b "If the time difference threshold is set to 0. The
> > > timestamp
> > > > in
> > > > > > the
> > > > > > > message

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Gwen Shapira
Sounds good to me too. Seems pretty easy to add and can be useful for
producers.

On Fri, Jan 8, 2016 at 1:22 PM, Joel Koshy  wrote:

> Hi Anna,
>
> That sounds good to me - Becket/others any thoughts?
>
> Thanks,
>
> Joel
>
> On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner  wrote:
>
> > Hi Becket and everyone,
> >
> > Could we please add the following functionality to this KIP. I think it
> > would be very useful for the broker to return the timestamp in the ack to
> > the producer (in response: timestamp per partition) and propagate it back
> > to client in RecordMetadata. This way, if timestamp type is
> LogAppendTime,
> > the producer client will see what timestamp was actually set -- and it
> > would match the timestamp that consumer sees. Also, returning the
> timestamp
> > in RecordMetadata is also useful for timestamp type = CreateTime, since
> > timestamp could be also set in KafkaProducer (if client set timestamp in
> > ProducerRecord to 0).
> >
> > Since this requires protocol change as well, it will be better to
> implement
> > this as part of KIP-32, rather than proposing a new KIP.
> >
> > Thanks,
> > Anna
> >
> >
> > On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy  wrote:
> >
> > > +1 from me
> > >
> > > Looking through this thread it seems there was some confusion on the
> > > migration discussion. This discussion in fact happened in the KIP-31
> > > discuss thread, not so much in the KIP hangout. There is considerable
> > > overlap in discussions between KIP-3[1,2,3] so it makes sense to
> > > cross-reference all of these.
> > >
> > > I'm finding the Apache list archive a little cumbersome to use (e.g.,
> the
> > > current link in KIP-31 points to the beginning of September archives)
> but
> > > the emails discussing migration were in October:
> > > http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
> > >
> > > Markmail has a better interface but interestingly it has not indexed
> any
> > of
> > > the emails from August, September and early October (
> > >
> > >
> >
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> > > ).
> > > Perhaps KIPs should include a permalink to the first message of the
> > DISCUSS
> > > thread. E.g.,
> > >
> > >
> >
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
> > >
> > > Also, just to clarify Jay's comments on the content of KIPs: I think
> > having
> > > a pseudo-code spec/implementation guide is useful (especially for
> > > client-side KIPs). While the motivation should definitely capture “why
> we
> > > are doing the KIP” it probably shouldn’t have to exhaustively capture
> > “why
> > > we are doing the KIP *this way*”. i.e., some of the discussions are
> > > extremely nuanced and in this case spans multiple KIPs so links to
> other
> > > KIPs and the discuss threads and KIP hangout recordings are perhaps
> > > sufficient to fill this gap - or maybe a new section that summarizes
> the
> > > discussions.
> > >
> > > Thanks,
> > >
> > > Joel
> > >
> > > On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
> > >
> > > > Hi, Jiangjie,
> > > >
> > > > 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> > > > Unfortunately, we use MessageSet in SimpleConsumer, which is part of
> > the
> > > > public api. Replacing MessageSet with o.a.k.common.record will be an
> > > > incompatible api change. So, we probably should do this after we
> > > deprecate
> > > > SimpleConsumer.
> > > >
> > > > My original question is actually whether we just bump up magic byte
> in
> > > > Message once to incorporate both the offset and the timestamp change.
> > It
> > > > seems that the answer is yes. Could you reflect that in the KIP?
> > > >
> > > > Thanks,
> > > >
> > > > Jun
> > > >
> > > >
> > > > On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin 
> > wrote:
> > > >
> > > > > Thanks a lot for the careful reading, Jun.
> > > > > Please see inline replies.
> > > > >
> > > > >
> > > > > > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> > > > > >
> > > > > > Jiangjie,
> > > > > >
> > > > > > Thanks for the updated KIP. Overall, a +1 on the proposal. A few
> > > minor
> > > > > > comments on the KIP.
> > > > > >
> > > > > > KIP-32:
> > > > > > 50. 6.c says "The log rolling has to depend on the earliest
> > > timestamp",
> > > > > > which is inconsistent with KIP-33.
> > > > > Corrected.
> > > > > >
> > > > > > 51. 8.b "If the time difference threshold is set to 0. The
> > timestamp
> > > in
> > > > > the
> > > > > > message is equivalent to LogAppendTime." If the time difference
> is
> > 0
> > > > and
> > > > > > CreateTime is used, all messages will likely be rejected in this
> > > > > proposal.
> > > > > > So, it's not equivalent to LogAppendTime.
> > > > > Corrected.
> > > > > >
> > > > > > 52. Could you include the new value of magic byte in message
> format
> > > > > change?
> > > > > > Also, do we have a single 

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Joel Koshy
Hi Anna,

That sounds good to me - Becket/others any thoughts?

Thanks,

Joel

On Fri, Jan 8, 2016 at 12:41 PM, Anna Povzner  wrote:

> Hi Becket and everyone,
>
> Could we please add the following functionality to this KIP. I think it
> would be very useful for the broker to return the timestamp in the ack to
> the producer (in response: timestamp per partition) and propagate it back
> to client in RecordMetadata. This way, if timestamp type is LogAppendTime,
> the producer client will see what timestamp was actually set -- and it
> would match the timestamp that consumer sees. Also, returning the timestamp
> in RecordMetadata is also useful for timestamp type = CreateTime, since
> timestamp could be also set in KafkaProducer (if client set timestamp in
> ProducerRecord to 0).
>
> Since this requires protocol change as well, it will be better to implement
> this as part of KIP-32, rather than proposing a new KIP.
>
> Thanks,
> Anna
>
>
> On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy  wrote:
>
> > +1 from me
> >
> > Looking through this thread it seems there was some confusion on the
> > migration discussion. This discussion in fact happened in the KIP-31
> > discuss thread, not so much in the KIP hangout. There is considerable
> > overlap in discussions between KIP-3[1,2,3] so it makes sense to
> > cross-reference all of these.
> >
> > I'm finding the Apache list archive a little cumbersome to use (e.g., the
> > current link in KIP-31 points to the beginning of September archives) but
> > the emails discussing migration were in October:
> > http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
> >
> > Markmail has a better interface but interestingly it has not indexed any
> of
> > the emails from August, September and early October (
> >
> >
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> > ).
> > Perhaps KIPs should include a permalink to the first message of the
> DISCUSS
> > thread. E.g.,
> >
> >
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
> >
> > Also, just to clarify Jay's comments on the content of KIPs: I think
> having
> > a pseudo-code spec/implementation guide is useful (especially for
> > client-side KIPs). While the motivation should definitely capture “why we
> > are doing the KIP” it probably shouldn’t have to exhaustively capture
> “why
> > we are doing the KIP *this way*”. i.e., some of the discussions are
> > extremely nuanced and in this case spans multiple KIPs so links to other
> > KIPs and the discuss threads and KIP hangout recordings are perhaps
> > sufficient to fill this gap - or maybe a new section that summarizes the
> > discussions.
> >
> > Thanks,
> >
> > Joel
> >
> > On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
> >
> > > Hi, Jiangjie,
> > >
> > > 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> > > Unfortunately, we use MessageSet in SimpleConsumer, which is part of
> the
> > > public api. Replacing MessageSet with o.a.k.common.record will be an
> > > incompatible api change. So, we probably should do this after we
> > deprecate
> > > SimpleConsumer.
> > >
> > > My original question is actually whether we just bump up magic byte in
> > > Message once to incorporate both the offset and the timestamp change.
> It
> > > seems that the answer is yes. Could you reflect that in the KIP?
> > >
> > > Thanks,
> > >
> > > Jun
> > >
> > >
> > > On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin 
> wrote:
> > >
> > > > Thanks a lot for the careful reading, Jun.
> > > > Please see inline replies.
> > > >
> > > >
> > > > > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> > > > >
> > > > > Jiangjie,
> > > > >
> > > > > Thanks for the updated KIP. Overall, a +1 on the proposal. A few
> > minor
> > > > > comments on the KIP.
> > > > >
> > > > > KIP-32:
> > > > > 50. 6.c says "The log rolling has to depend on the earliest
> > timestamp",
> > > > > which is inconsistent with KIP-33.
> > > > Corrected.
> > > > >
> > > > > 51. 8.b "If the time difference threshold is set to 0. The
> timestamp
> > in
> > > > the
> > > > > message is equivalent to LogAppendTime." If the time difference is
> 0
> > > and
> > > > > CreateTime is used, all messages will likely be rejected in this
> > > > proposal.
> > > > > So, it's not equivalent to LogAppendTime.
> > > > Corrected.
> > > > >
> > > > > 52. Could you include the new value of magic byte in message format
> > > > change?
> > > > > Also, do we have a single new message format that includes both the
> > > > offset
> > > > > change (relative offset for inner messages) and the addition of
> > > > timestamp?
> > > > I am actually thinking about this when I am writing the patch.
> > > > The timestamp will be added to the o.a.k.common.record.Record and
> > > > Kafka.message.Message. The offset change is in
> > > > o.a.k.common.record.MemoryRecords and Kafka.message.MessageSet.

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Anna Povzner
Hi Becket and everyone,

Could we please add the following functionality to this KIP. I think it
would be very useful for the broker to return the timestamp in the ack to
the producer (in response: timestamp per partition) and propagate it back
to client in RecordMetadata. This way, if timestamp type is LogAppendTime,
the producer client will see what timestamp was actually set -- and it
would match the timestamp that consumer sees. Also, returning the timestamp
in RecordMetadata is also useful for timestamp type = CreateTime, since
timestamp could be also set in KafkaProducer (if client set timestamp in
ProducerRecord to 0).

Since this requires protocol change as well, it will be better to implement
this as part of KIP-32, rather than proposing a new KIP.

Thanks,
Anna


On Fri, Jan 8, 2016 at 12:53 PM, Joel Koshy  wrote:

> +1 from me
>
> Looking through this thread it seems there was some confusion on the
> migration discussion. This discussion in fact happened in the KIP-31
> discuss thread, not so much in the KIP hangout. There is considerable
> overlap in discussions between KIP-3[1,2,3] so it makes sense to
> cross-reference all of these.
>
> I'm finding the Apache list archive a little cumbersome to use (e.g., the
> current link in KIP-31 points to the beginning of September archives) but
> the emails discussing migration were in October:
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread
>
> Markmail has a better interface but interestingly it has not indexed any of
> the emails from August, September and early October (
>
> http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward
> ).
> Perhaps KIPs should include a permalink to the first message of the DISCUSS
> thread. E.g.,
>
> http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E
>
> Also, just to clarify Jay's comments on the content of KIPs: I think having
> a pseudo-code spec/implementation guide is useful (especially for
> client-side KIPs). While the motivation should definitely capture “why we
> are doing the KIP” it probably shouldn’t have to exhaustively capture “why
> we are doing the KIP *this way*”. i.e., some of the discussions are
> extremely nuanced and in this case spans multiple KIPs so links to other
> KIPs and the discuss threads and KIP hangout recordings are perhaps
> sufficient to fill this gap - or maybe a new section that summarizes the
> discussions.
>
> Thanks,
>
> Joel
>
> On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:
>
> > Hi, Jiangjie,
> >
> > 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> > Unfortunately, we use MessageSet in SimpleConsumer, which is part of the
> > public api. Replacing MessageSet with o.a.k.common.record will be an
> > incompatible api change. So, we probably should do this after we
> deprecate
> > SimpleConsumer.
> >
> > My original question is actually whether we just bump up magic byte in
> > Message once to incorporate both the offset and the timestamp change. It
> > seems that the answer is yes. Could you reflect that in the KIP?
> >
> > Thanks,
> >
> > Jun
> >
> >
> > On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin  wrote:
> >
> > > Thanks a lot for the careful reading, Jun.
> > > Please see inline replies.
> > >
> > >
> > > > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> > > >
> > > > Jiangjie,
> > > >
> > > > Thanks for the updated KIP. Overall, a +1 on the proposal. A few
> minor
> > > > comments on the KIP.
> > > >
> > > > KIP-32:
> > > > 50. 6.c says "The log rolling has to depend on the earliest
> timestamp",
> > > > which is inconsistent with KIP-33.
> > > Corrected.
> > > >
> > > > 51. 8.b "If the time difference threshold is set to 0. The timestamp
> in
> > > the
> > > > message is equivalent to LogAppendTime." If the time difference is 0
> > and
> > > > CreateTime is used, all messages will likely be rejected in this
> > > proposal.
> > > > So, it's not equivalent to LogAppendTime.
> > > Corrected.
> > > >
> > > > 52. Could you include the new value of magic byte in message format
> > > change?
> > > > Also, do we have a single new message format that includes both the
> > > offset
> > > > change (relative offset for inner messages) and the addition of
> > > timestamp?
> > > I am actually thinking about this when I am writing the patch.
> > > The timestamp will be added to the o.a.k.common.record.Record and
> > > Kafka.message.Message. The offset change is in
> > > o.a.k.common.record.MemoryRecords and Kafka.message.MessageSet. To
> avoid
> > > unnecessary changes, my current patch did not merge them together but
> > > simply make sure the version of  Record(Message) and
> > > MemoryRecords(MessageSet) matches.
> > >
> > > Currently new clients uses classes in o.a.k.common.record, and the
> broker
> > > and old clients uses classes in kafka.message.
> > > I am thinking about doing the followings:
> > > 1. 

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-08 Thread Joel Koshy
+1 from me

Looking through this thread it seems there was some confusion on the
migration discussion. This discussion in fact happened in the KIP-31
discuss thread, not so much in the KIP hangout. There is considerable
overlap in discussions between KIP-3[1,2,3] so it makes sense to
cross-reference all of these.

I'm finding the Apache list archive a little cumbersome to use (e.g., the
current link in KIP-31 points to the beginning of September archives) but
the emails discussing migration were in October:
http://mail-archives.apache.org/mod_mbox/kafka-dev/201510.mbox/thread

Markmail has a better interface but interestingly it has not indexed any of
the emails from August, September and early October (
http://markmail.org/search/?q=list%3Aorg.apache.incubator.kafka-dev+date%3A201509-201511+order%3Adate-backward).
Perhaps KIPs should include a permalink to the first message of the DISCUSS
thread. E.g.,
http://mail-archives.apache.org/mod_mbox/kafka-dev/201509.mbox/%3CCAHrRUm5jvL_dPeZWnfBD-vONgSZWOq1VL1Ss8OSUOCPXmtg8rQ%40mail.gmail.com%3E

Also, just to clarify Jay's comments on the content of KIPs: I think having
a pseudo-code spec/implementation guide is useful (especially for
client-side KIPs). While the motivation should definitely capture “why we
are doing the KIP” it probably shouldn’t have to exhaustively capture “why
we are doing the KIP *this way*”. i.e., some of the discussions are
extremely nuanced and in this case spans multiple KIPs so links to other
KIPs and the discuss threads and KIP hangout recordings are perhaps
sufficient to fill this gap - or maybe a new section that summarizes the
discussions.

Thanks,

Joel

On Wed, Jan 6, 2016 at 9:29 AM, Jun Rao  wrote:

> Hi, Jiangjie,
>
> 52. Replacing MessageSet with o.a.k.common.record will be ideal.
> Unfortunately, we use MessageSet in SimpleConsumer, which is part of the
> public api. Replacing MessageSet with o.a.k.common.record will be an
> incompatible api change. So, we probably should do this after we deprecate
> SimpleConsumer.
>
> My original question is actually whether we just bump up magic byte in
> Message once to incorporate both the offset and the timestamp change. It
> seems that the answer is yes. Could you reflect that in the KIP?
>
> Thanks,
>
> Jun
>
>
> On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin  wrote:
>
> > Thanks a lot for the careful reading, Jun.
> > Please see inline replies.
> >
> >
> > > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> > >
> > > Jiangjie,
> > >
> > > Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
> > > comments on the KIP.
> > >
> > > KIP-32:
> > > 50. 6.c says "The log rolling has to depend on the earliest timestamp",
> > > which is inconsistent with KIP-33.
> > Corrected.
> > >
> > > 51. 8.b "If the time difference threshold is set to 0. The timestamp in
> > the
> > > message is equivalent to LogAppendTime." If the time difference is 0
> and
> > > CreateTime is used, all messages will likely be rejected in this
> > proposal.
> > > So, it's not equivalent to LogAppendTime.
> > Corrected.
> > >
> > > 52. Could you include the new value of magic byte in message format
> > change?
> > > Also, do we have a single new message format that includes both the
> > offset
> > > change (relative offset for inner messages) and the addition of
> > timestamp?
> > I am actually thinking about this when I am writing the patch.
> > The timestamp will be added to the o.a.k.common.record.Record and
> > Kafka.message.Message. The offset change is in
> > o.a.k.common.record.MemoryRecords and Kafka.message.MessageSet. To avoid
> > unnecessary changes, my current patch did not merge them together but
> > simply make sure the version of  Record(Message) and
> > MemoryRecords(MessageSet) matches.
> >
> > Currently new clients uses classes in o.a.k.common.record, and the broker
> > and old clients uses classes in kafka.message.
> > I am thinking about doing the followings:
> > 1. Migrate broker to use o.a.k.common.record.
> > 2. Add message format V0 and V1 to o.a.k.common.protocol.Protocols.
> > Ideally we should be able to define all the wire protocols in
> > o.a.k.common.protocol.Protocol. So instead of having Record class to
> parse
> > byte arrays by itself, we can use Schema to parse the records.
> >
> > Would that be better?
> > >
> > > 53. Could you document the changes in ProducerRequest V2 and
> FetchRequest
> > > V2 (and the responses)?
> > Done.
> > >
> > > 54. In migration phase 1, step 2, does internal ApiVersion mean
> > > inter.broker.protocol.version?
> > Yes.
> > >
> > > 55. In canary step 2.b, it says "It will only see
> > > ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
> > > phase 2, a broker will receive FetchRequest V2 from other brokers.
> > I meant when we canary a broker in phase 2, there will be only one broker
> > entering phase 2, the other brokers will remain at phase 1.
> > >
> > >
> > > KIP-33:
> > > 60. The KIP still says maintaining index at "at 

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-06 Thread Jun Rao
Hi, Jiangjie,

52. Replacing MessageSet with o.a.k.common.record will be ideal.
Unfortunately, we use MessageSet in SimpleConsumer, which is part of the
public api. Replacing MessageSet with o.a.k.common.record will be an
incompatible api change. So, we probably should do this after we deprecate
SimpleConsumer.

My original question is actually whether we just bump up magic byte in
Message once to incorporate both the offset and the timestamp change. It
seems that the answer is yes. Could you reflect that in the KIP?

Thanks,

Jun


On Wed, Jan 6, 2016 at 7:01 AM, Becket Qin  wrote:

> Thanks a lot for the careful reading, Jun.
> Please see inline replies.
>
>
> > On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> >
> > Jiangjie,
> >
> > Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
> > comments on the KIP.
> >
> > KIP-32:
> > 50. 6.c says "The log rolling has to depend on the earliest timestamp",
> > which is inconsistent with KIP-33.
> Corrected.
> >
> > 51. 8.b "If the time difference threshold is set to 0. The timestamp in
> the
> > message is equivalent to LogAppendTime." If the time difference is 0 and
> > CreateTime is used, all messages will likely be rejected in this
> proposal.
> > So, it's not equivalent to LogAppendTime.
> Corrected.
> >
> > 52. Could you include the new value of magic byte in message format
> change?
> > Also, do we have a single new message format that includes both the
> offset
> > change (relative offset for inner messages) and the addition of
> timestamp?
> I am actually thinking about this when I am writing the patch.
> The timestamp will be added to the o.a.k.common.record.Record and
> Kafka.message.Message. The offset change is in
> o.a.k.common.record.MemoryRecords and Kafka.message.MessageSet. To avoid
> unnecessary changes, my current patch did not merge them together but
> simply make sure the version of  Record(Message) and
> MemoryRecords(MessageSet) matches.
>
> Currently new clients uses classes in o.a.k.common.record, and the broker
> and old clients uses classes in kafka.message.
> I am thinking about doing the followings:
> 1. Migrate broker to use o.a.k.common.record.
> 2. Add message format V0 and V1 to o.a.k.common.protocol.Protocols.
> Ideally we should be able to define all the wire protocols in
> o.a.k.common.protocol.Protocol. So instead of having Record class to parse
> byte arrays by itself, we can use Schema to parse the records.
>
> Would that be better?
> >
> > 53. Could you document the changes in ProducerRequest V2 and FetchRequest
> > V2 (and the responses)?
> Done.
> >
> > 54. In migration phase 1, step 2, does internal ApiVersion mean
> > inter.broker.protocol.version?
> Yes.
> >
> > 55. In canary step 2.b, it says "It will only see
> > ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
> > phase 2, a broker will receive FetchRequest V2 from other brokers.
> I meant when we canary a broker in phase 2, there will be only one broker
> entering phase 2, the other brokers will remain at phase 1.
> >
> >
> > KIP-33:
> > 60. The KIP still says maintaining index at "at minute granularity" even
> > though the index interval is configurable now.
> Corrected.
> >
> > 61. In this design, it's possible for a log segment to have an empty time
> > index. In the worse case, we may have to scan more than the active
> segment
> > to recover the latest timestamp.
> Corrected.
> >
> > Thanks,
> >
> > Jun
> >
> > On Mon, Jan 4, 2016 at 11: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
> >> 1.
> >> 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
> >> anymore.
> >> 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?
> >> 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.
> >> 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.
> >>
> >> 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

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-06 Thread Becket Qin
Hey Jay,

I agree with your comments on the KIP page. 
As you said it is important to document what are the changes and why we made 
those decisions.
I have added summaries to the page to help readers understand the decision we 
made more easily and also try to avoid being too verbose. I also clarified the 
scope of KIP-32 and KIP-33.
Please let me know if you think we should make further improvements.

Thanks,

Jiangjie (Becket) Qin


> On Jan 6, 2016, at 7:21 AM, Jay Kreps  wrote:
> 
> I'm +1 on the design, but this proposal doesn't look like it is quite
> finished. We are trying to make the KIPs really be a record of design
> decisions we made and why. We should be able to give the document to
> advanced Kafka users and have them walk away with a good idea of what
> we are changing and why. I think having this kind of record of why
> changes were made is really valuable especially given the amount of
> times these things come back up (I'm quite sure this saves time in the
> long run).
> 
> If people think this is a waste of time, let's revisit, but if not
> could we try to bring this up to the level of quality of the other
> KIPs?
> 
> In particular, a few things:
> 
> Overall this reads more like implementation notes I might make for
> myself rather than a design doc.
> 
> This doesn't really motivate the idea of creation vs append time or
> when each would be used or why you would want both.
> 
> The public interfaces section says "There are a few options to achieve
> the goals. Each has their own pros and cons. Please see the details
> below." This might have been true in the first version as we were
> discussing but now we have one proposal, right? We should list out the
> new public interfaces (binary format, java api, configs). This is a
> way of calling out that "the user gets this new stuff".
> 
> This still has a number of details that I think we've now moved to
> KIP-33. i.e. the bits about indexing are now part of that?
> 
> Cheers,
> 
> -Jay
> 
>> On Tue, Jan 5, 2016 at 11:47 AM, Neha Narkhede  wrote:
>> +1 on the KIP. Thanks for the hard work, Becket!
>> 
>>> On Tue, Jan 5, 2016 at 11:24 AM, Jun Rao  wrote:
>>> 
>>> Jiangjie,
>>> 
>>> Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
>>> comments on the KIP.
>>> 
>>> KIP-32:
>>> 50. 6.c says "The log rolling has to depend on the earliest timestamp",
>>> which is inconsistent with KIP-33.
>>> 
>>> 51. 8.b "If the time difference threshold is set to 0. The timestamp in the
>>> message is equivalent to LogAppendTime." If the time difference is 0 and
>>> CreateTime is used, all messages will likely be rejected in this proposal.
>>> So, it's not equivalent to LogAppendTime.
>>> 
>>> 52. Could you include the new value of magic byte in message format change?
>>> Also, do we have a single new message format that includes both the offset
>>> change (relative offset for inner messages) and the addition of timestamp?
>>> 
>>> 53. Could you document the changes in ProducerRequest V2 and FetchRequest
>>> V2 (and the responses)?
>>> 
>>> 54. In migration phase 1, step 2, does internal ApiVersion mean
>>> inter.broker.protocol.version?
>>> 
>>> 55. In canary step 2.b, it says "It will only see
>>> ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
>>> phase 2, a broker will receive FetchRequest V2 from other brokers.
>>> 
>>> 
>>> KIP-33:
>>> 60. The KIP still says maintaining index at "at minute granularity" even
>>> though the index interval is configurable now.
>>> 
>>> 61. In this design, it's possible for a log segment to have an empty time
>>> index. In the worse case, we may have to scan more than the active segment
>>> to recover the latest timestamp.
>>> 
>>> Thanks,
>>> 
>>> Jun
>>> 
>>> On Mon, Jan 4, 2016 at 11: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
 1.
 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
 anymore.
 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?
 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.
 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

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-06 Thread Becket Qin
Thanks a lot for the careful reading, Jun.
Please see inline replies.


> On Jan 6, 2016, at 3:24 AM, Jun Rao  wrote:
> 
> Jiangjie,
> 
> Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
> comments on the KIP.
> 
> KIP-32:
> 50. 6.c says "The log rolling has to depend on the earliest timestamp",
> which is inconsistent with KIP-33.
Corrected.
> 
> 51. 8.b "If the time difference threshold is set to 0. The timestamp in the
> message is equivalent to LogAppendTime." If the time difference is 0 and
> CreateTime is used, all messages will likely be rejected in this proposal.
> So, it's not equivalent to LogAppendTime.
Corrected.
> 
> 52. Could you include the new value of magic byte in message format change?
> Also, do we have a single new message format that includes both the offset
> change (relative offset for inner messages) and the addition of timestamp?
I am actually thinking about this when I am writing the patch. 
The timestamp will be added to the o.a.k.common.record.Record and 
Kafka.message.Message. The offset change is in 
o.a.k.common.record.MemoryRecords and Kafka.message.MessageSet. To avoid 
unnecessary changes, my current patch did not merge them together but simply 
make sure the version of  Record(Message) and MemoryRecords(MessageSet) matches.

Currently new clients uses classes in o.a.k.common.record, and the broker and 
old clients uses classes in kafka.message. 
I am thinking about doing the followings: 
1. Migrate broker to use o.a.k.common.record. 
2. Add message format V0 and V1 to o.a.k.common.protocol.Protocols. Ideally we 
should be able to define all the wire protocols in 
o.a.k.common.protocol.Protocol. So instead of having Record class to parse byte 
arrays by itself, we can use Schema to parse the records.

Would that be better?
> 
> 53. Could you document the changes in ProducerRequest V2 and FetchRequest
> V2 (and the responses)?
Done.
> 
> 54. In migration phase 1, step 2, does internal ApiVersion mean
> inter.broker.protocol.version?
Yes.
> 
> 55. In canary step 2.b, it says "It will only see
> ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
> phase 2, a broker will receive FetchRequest V2 from other brokers.
I meant when we canary a broker in phase 2, there will be only one broker 
entering phase 2, the other brokers will remain at phase 1.
> 
> 
> KIP-33:
> 60. The KIP still says maintaining index at "at minute granularity" even
> though the index interval is configurable now.
Corrected.
> 
> 61. In this design, it's possible for a log segment to have an empty time
> index. In the worse case, we may have to scan more than the active segment
> to recover the latest timestamp.
Corrected.
> 
> Thanks,
> 
> Jun
> 
> On Mon, Jan 4, 2016 at 11: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
>> 1.
>> 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
>> anymore.
>> 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?
>> 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.
>> 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.
>> 
>> 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  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  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 confus

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Jay Kreps
I'm +1 on the design, but this proposal doesn't look like it is quite
finished. We are trying to make the KIPs really be a record of design
decisions we made and why. We should be able to give the document to
advanced Kafka users and have them walk away with a good idea of what
we are changing and why. I think having this kind of record of why
changes were made is really valuable especially given the amount of
times these things come back up (I'm quite sure this saves time in the
long run).

If people think this is a waste of time, let's revisit, but if not
could we try to bring this up to the level of quality of the other
KIPs?

In particular, a few things:

Overall this reads more like implementation notes I might make for
myself rather than a design doc.

This doesn't really motivate the idea of creation vs append time or
when each would be used or why you would want both.

The public interfaces section says "There are a few options to achieve
the goals. Each has their own pros and cons. Please see the details
below." This might have been true in the first version as we were
discussing but now we have one proposal, right? We should list out the
new public interfaces (binary format, java api, configs). This is a
way of calling out that "the user gets this new stuff".

This still has a number of details that I think we've now moved to
KIP-33. i.e. the bits about indexing are now part of that?

Cheers,

-Jay

On Tue, Jan 5, 2016 at 11:47 AM, Neha Narkhede  wrote:
> +1 on the KIP. Thanks for the hard work, Becket!
>
> On Tue, Jan 5, 2016 at 11:24 AM, Jun Rao  wrote:
>
>> Jiangjie,
>>
>> Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
>> comments on the KIP.
>>
>> KIP-32:
>> 50. 6.c says "The log rolling has to depend on the earliest timestamp",
>> which is inconsistent with KIP-33.
>>
>> 51. 8.b "If the time difference threshold is set to 0. The timestamp in the
>> message is equivalent to LogAppendTime." If the time difference is 0 and
>> CreateTime is used, all messages will likely be rejected in this proposal.
>> So, it's not equivalent to LogAppendTime.
>>
>> 52. Could you include the new value of magic byte in message format change?
>> Also, do we have a single new message format that includes both the offset
>> change (relative offset for inner messages) and the addition of timestamp?
>>
>> 53. Could you document the changes in ProducerRequest V2 and FetchRequest
>> V2 (and the responses)?
>>
>> 54. In migration phase 1, step 2, does internal ApiVersion mean
>> inter.broker.protocol.version?
>>
>> 55. In canary step 2.b, it says "It will only see
>> ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
>> phase 2, a broker will receive FetchRequest V2 from other brokers.
>>
>>
>> KIP-33:
>> 60. The KIP still says maintaining index at "at minute granularity" even
>> though the index interval is configurable now.
>>
>> 61. In this design, it's possible for a log segment to have an empty time
>> index. In the worse case, we may have to scan more than the active segment
>> to recover the latest timestamp.
>>
>> Thanks,
>>
>> Jun
>>
>> On Mon, Jan 4, 2016 at 11: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
>> > 1.
>> > 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
>> > anymore.
>> > 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?
>> > 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.
>> > 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.
>> >
>> > 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 
>> 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

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Aditya Auradkar
+1. Great work Becket.

Aditya

On Tue, Jan 5, 2016 at 11:47 AM, Neha Narkhede  wrote:

> +1 on the KIP. Thanks for the hard work, Becket!
>
> On Tue, Jan 5, 2016 at 11:24 AM, Jun Rao  wrote:
>
> > Jiangjie,
> >
> > Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
> > comments on the KIP.
> >
> > KIP-32:
> > 50. 6.c says "The log rolling has to depend on the earliest timestamp",
> > which is inconsistent with KIP-33.
> >
> > 51. 8.b "If the time difference threshold is set to 0. The timestamp in
> the
> > message is equivalent to LogAppendTime." If the time difference is 0 and
> > CreateTime is used, all messages will likely be rejected in this
> proposal.
> > So, it's not equivalent to LogAppendTime.
> >
> > 52. Could you include the new value of magic byte in message format
> change?
> > Also, do we have a single new message format that includes both the
> offset
> > change (relative offset for inner messages) and the addition of
> timestamp?
> >
> > 53. Could you document the changes in ProducerRequest V2 and FetchRequest
> > V2 (and the responses)?
> >
> > 54. In migration phase 1, step 2, does internal ApiVersion mean
> > inter.broker.protocol.version?
> >
> > 55. In canary step 2.b, it says "It will only see
> > ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
> > phase 2, a broker will receive FetchRequest V2 from other brokers.
> >
> >
> > KIP-33:
> > 60. The KIP still says maintaining index at "at minute granularity" even
> > though the index interval is configurable now.
> >
> > 61. In this design, it's possible for a log segment to have an empty time
> > index. In the worse case, we may have to scan more than the active
> segment
> > to recover the latest timestamp.
> >
> > Thanks,
> >
> > Jun
> >
> > On Mon, Jan 4, 2016 at 11: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
> > > 1.
> > > 2. (Minor) Can we rename the proposed option? It isn't really "option
> 4"
> > > anymore.
> > > 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?
> > > 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.
> > > 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.
> > >
> > > 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 
> > 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 
> > 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 :)
> > > > >>>
> > > > >>

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Neha Narkhede
+1 on the KIP. Thanks for the hard work, Becket!

On Tue, Jan 5, 2016 at 11:24 AM, Jun Rao  wrote:

> Jiangjie,
>
> Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
> comments on the KIP.
>
> KIP-32:
> 50. 6.c says "The log rolling has to depend on the earliest timestamp",
> which is inconsistent with KIP-33.
>
> 51. 8.b "If the time difference threshold is set to 0. The timestamp in the
> message is equivalent to LogAppendTime." If the time difference is 0 and
> CreateTime is used, all messages will likely be rejected in this proposal.
> So, it's not equivalent to LogAppendTime.
>
> 52. Could you include the new value of magic byte in message format change?
> Also, do we have a single new message format that includes both the offset
> change (relative offset for inner messages) and the addition of timestamp?
>
> 53. Could you document the changes in ProducerRequest V2 and FetchRequest
> V2 (and the responses)?
>
> 54. In migration phase 1, step 2, does internal ApiVersion mean
> inter.broker.protocol.version?
>
> 55. In canary step 2.b, it says "It will only see
> ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
> phase 2, a broker will receive FetchRequest V2 from other brokers.
>
>
> KIP-33:
> 60. The KIP still says maintaining index at "at minute granularity" even
> though the index interval is configurable now.
>
> 61. In this design, it's possible for a log segment to have an empty time
> index. In the worse case, we may have to scan more than the active segment
> to recover the latest timestamp.
>
> Thanks,
>
> Jun
>
> On Mon, Jan 4, 2016 at 11: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
> > 1.
> > 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
> > anymore.
> > 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?
> > 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.
> > 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.
> >
> > 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 
> 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 
> 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 
> > > 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 
> > > 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
> 

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Jun Rao
Jiangjie,

Thanks for the updated KIP. Overall, a +1 on the proposal. A few minor
comments on the KIP.

KIP-32:
50. 6.c says "The log rolling has to depend on the earliest timestamp",
which is inconsistent with KIP-33.

51. 8.b "If the time difference threshold is set to 0. The timestamp in the
message is equivalent to LogAppendTime." If the time difference is 0 and
CreateTime is used, all messages will likely be rejected in this proposal.
So, it's not equivalent to LogAppendTime.

52. Could you include the new value of magic byte in message format change?
Also, do we have a single new message format that includes both the offset
change (relative offset for inner messages) and the addition of timestamp?

53. Could you document the changes in ProducerRequest V2 and FetchRequest
V2 (and the responses)?

54. In migration phase 1, step 2, does internal ApiVersion mean
inter.broker.protocol.version?

55. In canary step 2.b, it says "It will only see
ProduceRequest/FetchRequest V1 from other brokers and clietns.". But in
phase 2, a broker will receive FetchRequest V2 from other brokers.


KIP-33:
60. The KIP still says maintaining index at "at minute granularity" even
though the index interval is configurable now.

61. In this design, it's possible for a log segment to have an empty time
index. In the worse case, we may have to scan more than the active segment
to recover the latest timestamp.

Thanks,

Jun

On Mon, Jan 4, 2016 at 11: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
> 1.
> 2. (Minor) Can we rename the proposed option? It isn't really "option 4"
> anymore.
> 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?
> 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.
> 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.
>
> 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  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  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 
> > 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 
> > 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
> > >>>

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Gwen Shapira
+1

On Tue, Jan 5, 2016 at 11:12 AM, Guozhang Wang  wrote:

> +1, the KIP looks good to me now.
>
> Guozhang
>
> On Tue, Jan 5, 2016 at 1:47 AM, Becket Qin  wrote:
>
> > Hi Adi,
> >
> > Please see inline comments. And thanks for correcting my typos :)
> >
> > > On Jan 5, 2016, at 3:37 AM, Aditya Auradkar
> >  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 
> > 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 
> 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 
> > >> 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 
> > >> 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 reviewer

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Guozhang Wang
+1, the KIP looks good to me now.

Guozhang

On Tue, Jan 5, 2016 at 1:47 AM, Becket Qin  wrote:

> Hi Adi,
>
> Please see inline comments. And thanks for correcting my typos :)
>
> > On Jan 5, 2016, at 3:37 AM, Aditya Auradkar
>  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 
> 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  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 
> >> 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 
> >> 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 

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-05 Thread Becket Qin
Hi Adi,

Please see inline comments. And thanks for correcting my typos :)

> On Jan 5, 2016, at 3:37 AM, Aditya Auradkar  
> 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  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  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 
>> 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 
>> 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 t

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2016-01-04 Thread Aditya Auradkar
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
1.
2. (Minor) Can we rename the proposed option? It isn't really "option 4"
anymore.
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?
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.
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.

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

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-28 Thread Becket Qin
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  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  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  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 
>>> 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  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 n

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-23 Thread Guozhang Wang
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  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  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 
>> 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  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 
>> > 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
>> > >> upgrad

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-23 Thread Guozhang Wang
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  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  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  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 
> > 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 
> > wrote:
> > >>>
> > >>> Hi Anna,
> > >>>
> > >>> Thanks for the KIP, especial

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-23 Thread Gwen Shapira
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  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  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 
> 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 
> 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 
> >>

Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Dong Lin
Hi Neha,

Yeah, I actually think the KIP is ready for vote other than some minor
issues. My question is more about who should start the vote and drive the
design of this KIP. Given that Jiangjie is on vacation in China with
limited access to gmail, I raised the question on his behalf and hopefully
he would be able to join the discussion and answer questions during the
vote of this process.

I love the way we propose, discuss and implement the KIP for kafka. I want
to do my part to join and facilitate this development.

Thanks,
Dong


On Tue, Dec 22, 2015 at 7:46 PM, Neha Narkhede  wrote:

> Hey Anna,
>
> Thanks for initiating the vote and helping Becket while he is out!
>
> Hey Dong,
>
> My understanding from observing all the email threads is that there is a
> general agreement on the approach and the wiki is reasonably up-to-date
> with all the decisions. Is there a particular reason why the KIP process
> should wait?
>
>
> On Tue, Dec 22, 2015 at 2:15 PM, Dong Lin  wrote:
>
> > Hi Anna,
> >
> > Have you talked with Jiangjie Qin before initiating the vote? Jiangjie
> Qin
> > is on vocation now and he may not have time to answer question related to
> > KIP-32 in detail.
> >
> > Dong
> >
> > On Tue, Dec 22, 2015 at 12:34 PM, Anna Povzner 
> 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
>


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Becket Qin
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  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  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  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 
>>> 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
>> 


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Anna Povzner
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  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  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 
> 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
>


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Neha Narkhede
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  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  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


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Gwen Shapira
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  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
>


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Neha Narkhede
Hey Anna,

Thanks for initiating the vote and helping Becket while he is out!

Hey Dong,

My understanding from observing all the email threads is that there is a
general agreement on the approach and the wiki is reasonably up-to-date
with all the decisions. Is there a particular reason why the KIP process
should wait?


On Tue, Dec 22, 2015 at 2:15 PM, Dong Lin  wrote:

> Hi Anna,
>
> Have you talked with Jiangjie Qin before initiating the vote? Jiangjie Qin
> is on vocation now and he may not have time to answer question related to
> KIP-32 in detail.
>
> Dong
>
> On Tue, Dec 22, 2015 at 12:34 PM, Anna Povzner  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


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Dong Lin
Hi Anna,

Have you talked with Jiangjie Qin before initiating the vote? Jiangjie Qin
is on vocation now and he may not have time to answer question related to
KIP-32 in detail.

Dong

On Tue, Dec 22, 2015 at 12:34 PM, Anna Povzner  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
>


Re: [VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Guozhang Wang
One thing I want to do before +1 is to update the migration plan on the
wiki regarding latest updates as well. Currently it states that in the
second phase, the broker will "fill in the time field with current server
time and re-compress the message" when it gets an older versioned produce
request and "check and maybe overwrite the time field" when it gets a newer
versioned produce request.

Specifically, when the timestamp type is configured as "LogCreationTime"
for that topic, while a broker received an old versioned produce request,
should it fill in the time field with its own "log-append-timestamp", or
should it fill it in with some value like "-1" indicating the timestamp is
not available?

Guozhang


On Tue, Dec 22, 2015 at 12:34 PM, Anna Povzner  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
>



-- 
-- Guozhang


[VOTE] KIP-32 Add CreateTime and LogAppendTime to Kafka message.

2015-12-22 Thread Anna Povzner
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