Hi,

If there are no further comments on the KIP, I will start a vote on it.

Regards,


On Mon, Jan 16, 2023 at 11:14 AM Gantigmaa Selenge <gsele...@redhat.com>
wrote:

> Thanks everyone.
>
> I took the suggestions and updated the KIP accordingly. Please let me know
> if there is anything else I could improve on.
>
> Regards,
> Tina
>
> On Sun, Jan 15, 2023 at 10:24 PM Ismael Juma <ism...@juma.me.uk> wrote:
>
>> Hi Tina,
>>
>> See below.
>>
>> On Wed, Jan 11, 2023 at 3:03 AM Gantigmaa Selenge <gsele...@redhat.com>
>> wrote:
>>
>> > I do like this idea, however when it's set to required, I wasn't sure
>> how
>> > the mirrormaker should have. It's probably not a great experience if
>> > mirrormaker starts crashing at some point after it's already running
>> due to
>> > an incompatible broker version.
>> >
>>
>> This would only happen if the user explicitly requests the strict required
>> ("non fallback") mode. There are many reasons why one may want this: say
>> you want to be sure that your system is not susceptible to the
>> "alterConfigs" problems or you want to write a test that fails if
>> "alterConfigs' is used.
>>
>>
>> > If the incrementalAlterConfig request fails because the target cluster
>> is
>> > running an older version, then we could log a WARN message that says
>> > something like  "The config to use incrementalAlterConfig API for
>> syncing
>> > topic configurations has been set to true however target cluster is
>> running
>> > incompatible version therefore using the legacy alterConfig API". This
>> way
>> > the Mirrormaker never has to stop working and makes the user aware of
>> > what's being used.
>>
>>
>> Logging statements are not great as the sole mechanism (although useful as
>> a complementary one) since one cannot easily test against them and they're
>> often missed alongside all the other logging statements.
>>
>>
>> >   In this case, we also would not need 3 separate values
>> > for the config, instead would use the original true or false values:
>> > - true - > would use incrementalAlterConfig API, but if it's
>> unavailable,
>> > fallback to the legacy API
>> > - false -> keep using the legacy API
>> >
>> > Set the flag to true by default and remove the config in 4.0.
>> >
>>
>> But this means you have different behavior depending on the
>> supported versions forever. Even though the config values are simpler,
>> it's
>> harder to reason about the behavior.
>>
>> > One suggestion: I'm not sure how concerned you are about people's
>> ability
>> > to migrate, but if you want to make it as smooth as possible, you could
>> add
>> > one more step. In the 4.0 release, while removing
>> > `use.incremental.alter.configs`, you can also add
>> > `use.legacy.alter.configs` to give users a path to continue using the
>> old
>> > behavior even after the default changes.
>> >
>> > If we implement the fallback logic as Ismael suggested above, I think we
>> > would not need this extra flag later anymore.
>> >
>> > Please let me know what you think. Then I can go ahead and update the
>> KIP.
>>
>>
>> IncrementalAlterConfigs has been around since Apache Kafka 2.3, released
>> in
>> June 2019. By the time Apache Kafka 4.0 is released, it will have been at
>> least 4.5 years. I think it's reasonable to set it as the new baseline and
>> not maintain the fallback code. The key benefit is having behavior that is
>> easy to reason about.
>>
>> Ismael
>>
>

Reply via email to