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