hi Jiunn-Yang

in the "Compatibility, Deprecation, and Migration Plan", could you add
description to remind readers that "clean.policy=" should be replaced by
"clean.policy=none" if they do want to disable delete and compact.

Best,
Chia-Ping

Jun Rao <j...@confluent.io.invalid> 於 2025年5月3日 週六 上午1:55寫道:

> Hi, Jiunn-Yang,
>
> It's fine not to deprecate ValidList#in for now. Could you update the KIP
> completely? There are still references to deprecation.
>
> Thanks,
>
> Jun
>
> On Fri, May 2, 2025 at 4:59 AM 黃竣陽 <s7133...@gmail.com> wrote:
>
> > Hi Jun,
> >
> > I don’t think we should deprecate the ValidList#in method, as there may
> be
> > future scenarios where we want
> > to allow list configs to be empty. It’s useful to have both methods: in
> > (which allows empty lists)
> > and inNonEmpty (which enforces non-empty lists).
> >
> > > Just a minor comment. It would be useful to document that during
> upgrade,
> > > if cleanup.policy is empty, the broker will fail to start.
> >
> > I’ve updated the KIP accordingly.
> >
> > Best Regards,
> > Jiunn-Yang
> >
> > > Jun Rao <j...@confluent.io.INVALID> 於 2025年5月2日 凌晨12:50 寫道:
> > >
> > > Hi, Jiunn-Yang,
> > >
> > > Thanks for the reply. Sounds good.
> > >
> > > Just a minor comment. It would be useful to document that during
> upgrade,
> > > if cleanup.policy is empty, the broker will fail to start.
> > >
> > > Jun
> > >
> > > On Thu, May 1, 2025 at 8:40 AM 黃竣陽 <s7133...@gmail.com> wrote:
> > >
> > >> Hello Jun,
> > >>
> > >> Since ValidList is a public API, we need to maintain backward
> > >> compatibility. Therefore, the isEmptyAllowed flag is necessary.
> > >> We can update the signature of isNonEmpty() to remove the boolean
> > >> parameter.
> > >>
> > >> Best Regards,
> > >> Jiunn-Yang
> > >>
> > >>> Jun Rao <j...@confluent.io.INVALID> 於 2025年5月1日 凌晨4:17 寫道:
> > >>>
> > >>> Hi, Jiunn-Yang,
> > >>>
> > >>> Thanks for the reply.
> > >>>
> > >>> Do we really need isEmptyAllowed? It's awkward since the method name
> is
> > >>> inNonEmpty. Also, it's not clear when it's set to true.
> > >>>
> > >>> Thanks,
> > >>>
> > >>> Jun
> > >>>
> > >>> On Fri, Apr 25, 2025 at 6:26 AM 黃竣陽 <s7133...@gmail.com> wrote:
> > >>>
> > >>>> Hi Jun,
> > >>>>
> > >>>> Thank you for pointing that out.
> > >>>>
> > >>>> I have revised the KIP as follows:
> > >>>>
> > >>>> “In this case, the change does not introduce new invalid
> > configurations
> > >> or
> > >>>> prevent any currently valid setup.
> > >>>> The main behavioral difference is that we now explicitly throw a
> > >>>> ConfigException  during the storage format validation phase
> > >>>> instead of relying on the current behavior.”
> > >>>>
> > >>>> This reflects the correct behavior.
> > >>>>
> > >>>> Best Regards,
> > >>>> Jiunn-Yang
> > >>>>
> > >>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月25日 凌晨1:17 寫道:
> > >>>>>
> > >>>>> Hi, Jiunn-Yang,
> > >>>>>
> > >>>>> "The main behavioral difference introduced by this change is that a
> > >>>>> ConfigException  will now be thrown during the storage format
> > >> validation
> > >>>>> phase, rather than during server startup."
> > >>>>>
> > >>>>> It seems that currently formating the storage already fails if
> > >>>>> group.coordinator.rebalance.protocols and process.roles  are empty.
> > It
> > >>>> just
> > >>>>> gets a different exception.
> > >>>>>
> > >>>>> Thanks,
> > >>>>>
> > >>>>> Jun
> > >>>>>
> > >>>>> On Thu, Apr 24, 2025 at 5:32 AM 黃竣陽 <s7133...@gmail.com> wrote:
> > >>>>>
> > >>>>>> Hi Jun, chia,
> > >>>>>>
> > >>>>>> Thanks for your feedback.
> > >>>>>>
> > >>>>>> I add a new section for this change:
> > >>>>>>
> > >>>>>> - Validation for group.coordinator.rebalance.protocols and
> > >> process.roles
> > >>>>>> will be
> > >>>>>> moved from the server startup phase to the storage format phase.
> > >>>>>> - For cleanup.policy, setting an empty list will now be considered
> > >>>> invalid
> > >>>>>> and will
> > >>>>>> result in a ConfigException during storage format phase.
> > >>>>>>
> > >>>>>> Best Regards,
> > >>>>>> Jiunn-Yang
> > >>>>>>
> > >>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月24日 凌晨4:44 寫道:
> > >>>>>>>
> > >>>>>>> Hi, Jiunn-Yang,
> > >>>>>>>
> > >>>>>>> Thanks for the reply.
> > >>>>>>>
> > >>>>>>> Q2. It's true that group.coordinator.rebalance.protocols and
> > >>>>>> process.roles
> > >>>>>>> configurations can't be empty right now. With this KIP, the user
> > will
> > >>>>>>> probably get a different (and more accurate) exception. It will
> be
> > >>>> useful
> > >>>>>>> to document that.
> > >>>>>>>
> > >>>>>>> Regarding cleanup.policy, I kind of agree with Chia-Ping. If a
> user
> > >>>>>> leaves
> > >>>>>>> cleanup.policy empty, it's more likely to be a mistake than an
> > >>>> intention.
> > >>>>>>> If we automatically treat it as None, the user will never realize
> > the
> > >>>>>>> mistake. Throwing an exception will let the user realize there
> is a
> > >>>>>> mistake.
> > >>>>>>>
> > >>>>>>> Jun
> > >>>>>>>
> > >>>>>>> On Wed, Apr 23, 2025 at 8:26 AM Chia-Ping Tsai <
> chia7...@gmail.com
> > >
> > >>>>>> wrote:
> > >>>>>>>
> > >>>>>>>> hi Jiunn-Yang,
> > >>>>>>>>
> > >>>>>>>> Thanks for the KIP, and I understand that maintaining
> > compatibility
> > >> is
> > >>>>>>>> important.
> > >>>>>>>>
> > >>>>>>>> However, according to the documentation, we don't allow an empty
> > >> value
> > >>>>>> for
> > >>>>>>>> the cleanup.policy. Hence, should we consider throwing an
> > exception
> > >>>> for
> > >>>>>> an
> > >>>>>>>> empty value in version 4.x? This could streamline the code and
> > avoid
> > >>>> an
> > >>>>>>>> extra deprecation cycle.
> > >>>>>>>>
> > >>>>>>>> Best,
> > >>>>>>>> Chia-Ping
> > >>>>>>>>
> > >>>>>>>> Jun Rao <j...@confluent.io.invalid> 於 2025年4月23日 週三 上午6:33寫道:
> > >>>>>>>>
> > >>>>>>>>> Hi, Jiunn-Yang,
> > >>>>>>>>>
> > >>>>>>>>> Regarding "The none policy will not delete or compact any
> > >> segments",
> > >>>> we
> > >>>>>>>>> should be more accurate. We won't delete segments based on
> > >>>>>>>>> log.retention.bytes/log.retention.ms, but we should continue
> to
> > >>>> delete
> > >>>>>>>>> segments based on log.local.retention.bytes/log.retention.ms.
> > >>>>>> Otherwise,
> > >>>>>>>>> we
> > >>>>>>>>> risk running out of local disk space when remote storage is
> > >> enabled.
> > >>>>>>>>>
> > >>>>>>>>> Thanks,
> > >>>>>>>>>
> > >>>>>>>>> Jun
> > >>>>>>>>>
> > >>>>>>>>> On Tue, Apr 22, 2025 at 9:45 AM Jun Rao <j...@confluent.io>
> > wrote:
> > >>>>>>>>>
> > >>>>>>>>>> Hi, Jiunn-Yang,
> > >>>>>>>>>>
> > >>>>>>>>>> Thanks for the reply.
> > >>>>>>>>>>
> > >>>>>>>>>> Q2. What about existing empty values for
> > >>>>>>>>>> group.coordinator.rebalance.protocols and process.roles during
> > >>>>>> upgrade?
> > >>>>>>>>>>
> > >>>>>>>>>> Jun
> > >>>>>>>>>>
> > >>>>>>>>>> On Tue, Apr 22, 2025 at 7:29 AM 黃竣陽 <s7133...@gmail.com>
> wrote:
> > >>>>>>>>>>
> > >>>>>>>>>>> Hello Jun,
> > >>>>>>>>>>>
> > >>>>>>>>>>> Thanks for review this KIP.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Q1 & Q3:
> > >>>>>>>>>>> I’ve updated the method name accordingly and revised the
> > >>>>>>>> cleanup.policy
> > >>>>>>>>>>> documentation
> > >>>>>>>>>>> to clarify that the none policy cannot be used with any other
> > >>>> policy.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Q2:
> > >>>>>>>>>>> For users currently using an empty cleanup.policy, the
> approach
> > >> is
> > >>>> to
> > >>>>>>>>>>> apply the none policy
> > >>>>>>>>>>> during the preProcessParsedConfig step. Additionally, a
> warning
> > >>>>>>>> message
> > >>>>>>>>>>> will be emitted to inform users
> > >>>>>>>>>>> of the upcoming change.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Best Regards,
> > >>>>>>>>>>> Jiunn-Yang
> > >>>>>>>>>>>
> > >>>>>>>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月22日 凌晨4:52 寫道:
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Hi, Jiunn-Yang,
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Thanks for the KIP. A few comments.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> 1. It's fine to introduce a new value None for
> cleanup.policy.
> > >> But
> > >>>>>>>> now
> > >>>>>>>>>>> not
> > >>>>>>>>>>>> all value combinations are valid. For example, None can't be
> > >> used
> > >>>>>>>> with
> > >>>>>>>>>>>> Delete or Compact. It would be useful to document that.
> > >>>>>>>>>>>> 2. What's the behavior during upgrade when an existing
> config
> > >> has
> > >>>> an
> > >>>>>>>>>>> empty
> > >>>>>>>>>>>> list.
> > >>>>>>>>>>>> 3. inWithEmptyCheck: It's not clear what the empty check
> does.
> > >> How
> > >>>>>>>>> about
> > >>>>>>>>>>>> sth like inNonEmpty ?
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Thanks,
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> Jun
> > >>>>>>>>>>>>
> > >>>>>>>>>>>> On Tue, Apr 15, 2025 at 8:25 AM 黃竣陽 <s7133...@gmail.com>
> > wrote:
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>> Hello everyone,
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> I would like to start a discussion on KIP-1161:
> > cleanup.policy
> > >>>>>>>>>>> shouldn't
> > >>>>>>>>>>>>> be empty
> > >>>>>>>>>>>>> <https://cwiki.apache.org/confluence/x/HArXF>
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> This proposal aims to improve the cleanup.policy
> > configuration.
> > >>>>>>>>>>> Currently,
> > >>>>>>>>>>>>> this setting should not be left empty.
> > >>>>>>>>>>>>> Therefore, there are two proposed improvements:
> > >>>>>>>>>>>>> 1. Update ValidList to validate whether an empty list is
> > >> allowed.
> > >>>>>>>>>>>>> 2. Introduce a new 'none' value for cleanup.policy.
> > >>>>>>>>>>>>>
> > >>>>>>>>>>>>> Best Regards,
> > >>>>>>>>>>>>> Jiunn-Yang
> > >>>>>>>>>>>
> > >>>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>
> > >>>>
> > >>
> > >>
> >
> >
>

Reply via email to