Hi Matthias.

Thanks for the review

1. looks like the majority of us are leaning towards BY_DURATION naming. I
have updated the same in the KIP.

2. Thanks. Updated the KIP to remove private/internal implementation.


Thanks,

On Wed, Nov 13, 2024 at 6:28 AM Matthias J. Sax <mj...@apache.org> wrote:

> Thanks for updating the KIP.
>
>
>
> I am happy to see that we seem to align to use a single config only :)
>
> Obviously, I need to bikeshed on the format: `BACK:<duration>` does not
> read well IMHO, and I think `auto.offset.reset="BACK_BY:<duration>"`
> would read much better. Andrew's suggestion of `BY_DURATION:<duration>`
> might even be better (but I would be ok with either one).
>
> (I would not use `DURATION:<duration>` personally -- similar to
> `BACK:<duration>` is does not read well from my POV).
>
>
>
> About KS related changes. Overall LGTM. What is the reason for having
>
>    AutoOffsetReset.LATEST
>    AutoOffsetReset.EARLIEST
>
> as `public` variables? Seems we don't need them, but that they are
> rather an internal implementation detail?
>
> In general, I would recommend to omit everything `private` on the KIP
> (including method implementations), as it's not user facing, but only
> have method signatures in the KIP.
>
> What I believe we need to add is a `protected` constructor (for the
> internal sub-class):
>
>     protected AutoOffsetReset(AutoOffsetReset autoOffsetReset);
>
>
>
>
> -Matthias
>
> On 11/12/24 6:09 AM, Apoorv Mittal wrote:
> > Thanks Manikumar for explaining, sounds good to me.
> >
> > Regards,
> > Apoorv Mittal
> >
> >
> > On Tue, Nov 12, 2024 at 1:47 PM Andrew Schofield <
> > andrew_schofield_j...@outlook.com> wrote:
> >
> >> Hi,
> >> Looks good now. Just one suggestion.
> >>
> >> AS8: Instead of "back:30D", I wonder whether the word 'duration' ought
> to
> >> be
> >> used to be consistent with kafka-consumer-groups.sh. So,
> >> "by-duration:P3D" or "duration:P3D" might be better.
> >>
> >> The overall idea of merging the configs into one config is fine in the
> >> current
> >> text of the KIP.
> >>
> >> Thanks,
> >> Andrew
> >>
> >> ________________________________________
> >> From: Manikumar <manikumar.re...@gmail.com>
> >> Sent: 12 November 2024 13:30
> >> To: dev@kafka.apache.org <dev@kafka.apache.org>
> >> Subject: Re: [DISCUSS] KIP-1106: Add duration based offset reset option
> >> for consumer clients
> >>
> >> Hi Apoorv,
> >>
> >> AM7: AutoOffsetReset.java is for Kafka Streams API. I am not proposing
> any
> >> public Interface/class for Kafka Consumer.
> >> As mentioned in the KIP, even though OffsetResetStrategy is a public
> class,
> >> it's not used in any public APIs. I think new internal classes should be
> >> sufficient.
> >>
> >> AM8: Fixed
> >>
> >> AM9: This class is for kafka streams API
> >>
> >> AM10: I was using the EARLIEST_TIMESTAMP, LATEST_TIMESTAMP constant
> values
> >> from ListOffsetsRequest
> >> <
> >>
> https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/requests/ListOffsetsRequest.java#L41
> >>>
> >>
> >> But yes, we can use Optional in AutoOffsetReset class. Updated the KIP.
> >>
> >>
> >> Thanks.
> >>
> >>
> >>
> >> On Tue, Nov 12, 2024 at 6:15 PM Apoorv Mittal <apoorvmitta...@gmail.com
> >
> >> wrote:
> >>
> >>> Hi,
> >>> I read the changes for single configuration and deprecated
> >>> OffsetResetStrategy.java.
> >>>
> >>> AM7: Question: The KIP says that previous supported values were
> >>> earliest/latest/none and new back:<duration> config would be added. We
> >> have
> >>> no definition of "none" in the newly introduced AutoOffsetReset.java
> >> class
> >>> hence I am assuming that if "none" is specified as a config option then
> >>> that config will be ignored, correct? Or are we deprecating the usage
> of
> >>> "none" altogether?
> >>>
> >>> AM8: Minor: The new class AutoOffsetReset under interfaces mentions the
> >>> name as OffsetResetStrategy.java. This requires correction.
> >>>
> >>> AM9: Is the package name correct for AutoOffsetReset as
> >>> org.apache.kafka.streams, shouldn't it be under clients package?
> >>>
> >>> AM10: What does -1L and -2L mean as long for latest and earliest in
> >>> AutoOffsetReset.java? Is it just a long placeholder which will never be
> >>> used elsewhere for latest and earliest? If yes then does it make sense
> to
> >>> keep long as Optional, and use Optional.empty() for latest and
> earliest?
> >>>
> >>> Regards,
> >>> Apoorv Mittal
> >>>
> >>>
> >>> On Tue, Nov 12, 2024 at 12:06 PM Manikumar <manikumar.re...@gmail.com>
> >>> wrote:
> >>>
> >>>> Thanks Ismael and Lianet for the reviews.
> >>>>
> >>>> Based on suggestions, I have updated the KIP to in favour of having a
> >>>> single config (auto.offset.reset).
> >>>> I have also adopted the Lianet's suggestion on naming.
> >>>>
> >>>> auto.offset.reset=back:P3D -> reset back 3 days
> >>>>
> >>>>
> >>>> Let me know if there are any concerns.
> >>>>
> >>>>
> >>>> Thanks,
> >>>>
> >>>>
> >>>> On Sat, Nov 9, 2024 at 10:06 PM Lianet M. <liane...@gmail.com> wrote:
> >>>>>
> >>>>> Hi all. Thanks Manikumar for the nice improvement, useful indeed.
> >>>>>
> >>>>> I also lean towards having a single config given that it's all about
> >>> the
> >>>>> reset policy, seems all the same "what" (auto reset policy) and we
> >> are
> >>>>> just extending the with a new behaviour. Regarding the naming (agree
> >> on
> >>>>> duration being confusing), what about something to show that it's
> >>> simply
> >>>>> about how far back to reset:
> >>>>>
> >>>>> auto.offset.reset=EARLIEST
> >>>>> auto.offset.reset=BACK:P3D -> reset back 3 days (combined with
> >> ISO8601
> >>>>> seems really easy to read/understand from the config definition
> >> itself)
> >>>>>
> >>>>> Something like that would definitely break consistency with the
> >> command
> >>>>> line tool argument "by_duration", but if it seems clearer we should
> >>>>> consider the tradeoff and not penalize the consumer API/configs.
> >>>>>
> >>>>> Thanks!
> >>>>>
> >>>>> Lianet
> >>>>>
> >>>>>
> >>>>> On Sat, Nov 9, 2024 at 2:47 AM Ismael Juma <m...@ismaeljuma.com>
> >> wrote:
> >>>>>
> >>>>>> Thanks for the KIP, this is useful. A comment below.
> >>>>>>
> >>>>>> On Thu, Nov 7, 2024 at 4:51 PM Matthias J. Sax <mj...@apache.org>
> >>>> wrote:
> >>>>>>
> >>>>>>> I am personally not convinced that adding a new config
> >>>>>>> `auto.offset.reset.by.duration` is the best way. Kafka in
> >> general
> >>>> has
> >>>>>>> way too many configs and trying to avoid adding more configs
> >> seems
> >>>> to be
> >>>>>>> desirable?  -- It seems this might be a point of contention, and
> >> if
> >>>> the
> >>>>>>> majority of people wants this new config so be it. I just wanted
> >> to
> >>>>>>> stress my concerns about it.
> >>>>>>
> >>>>>>
> >>>>>> I agree that we don't need a new config. We can simply use a value
> >>> for
> >>>> the
> >>>>>> existing config. I think a prefix followed by the relevant ISO8601
> >>>> string
> >>>>>> would be clear enough. For example, "by-duration:P23DT23H" or
> >>> something
> >>>>>> along those lines. I do find the "by-duration" description a bit
> >>>> confusing
> >>>>>> for what we're doing here (i.e. current time - duration) although
> >>>> there is
> >>>>>> precedent in the reset offsets tool.
> >>>>>>
> >>>>>> Ismael
> >>>>>>
> >>>>
> >>>
> >>
> >
>

Reply via email to