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