Hi Omnia,

LGTM, thanks! We may want to note the LegacyReplicationPolicy option in the
rejected alternatives section in case others prefer that option.

Given that we'd like this to land in time for 3.6.0, you may want to start
a vote thread soon.

Cheers,

Chris

On Fri, Jul 21, 2023 at 10:08 AM Omnia Ibrahim <o.g.h.ibra...@gmail.com>
wrote:

> Hi Chris and Federico,
> thinking about I think Chris's concern is valid and the bigger concern here
> is that having this `LegacyReplicationPolicy` will eventually open the door
> for diversion at some point between this `LegacyReplicationPolicy` and the
> default one.
> For now, let's have the flag properly fix this bug and we can keep it as an
> option for people to switch between both behaviours. I know having a
> bug-fix property is not great but we can treat it as a backward
> compatibility property instead in order to keep old mirrors using the old
> internal topics.
>
> Hope this is reasonable for the time being.
>
> Cheers,
> Omnia
>
> On Wed, Jul 19, 2023 at 11:16 PM Chris Egerton <chr...@aiven.io.invalid>
> wrote:
>
> > Hi Federico,
> >
> > Ah yes, sorry about that! You're correct that this would keep the two
> > classes in line and largely eliminate the concern I posed about porting
> > changes to both. Still, I'm a bit hesitant, and I'm not actually certain
> > that this alternative is more intuitive. The name isn't very descriptive,
> > and this is the kind of approach we can only really take once; if we
> break
> > compatibility again, would we introduce a LegacyLegacyReplicationPolicy?
> > LegacyReplicationPolicy2? Finally, it seems a bit strange to introduce a
> > new class to implement a change in behavior this small.
> >
> > That said, I don't think this is worth blocking on and wouldn't be
> opposed
> > if others felt strongly that a new replication policy class is superior
> to
> > a new property on the existing class.
> >
> > Cheers,
> >
> > Chris
> >
> > On Wed, Jul 19, 2023 at 2:53 PM Federico Valeri <fedeval...@gmail.com>
> > wrote:
> >
> > > Hi Chris, the KIP says it would be a subclass of
> DefaultReplicationPolicy
> > > that overrides the ReplicationPolicy.offsetSyncsTopic and
> > > ReplicationPolicy.checkpointsTopic. So, not much to maintain and it
> would
> > > be more intuitive, as you say.
> > >
> > > On Wed, Jul 19, 2023, 4:50 PM Chris Egerton <chr...@aiven.io.invalid>
> > > wrote:
> > >
> > > > HI all,
> > > >
> > > > I'm not sure I understand the benefits of introducing a separate
> > > > replication policy class, besides maybe being more readable/intuitive
> > to
> > > > users who would want to know when to use one or the other. It feels
> > like
> > > > we've swapped out a "fix the bug" property for an entire "fix the
> bug"
> > > > class, and it still leaves the problem of graceful migration from
> > legacy
> > > > behavior to new behavior unsolved. It would also require us to
> consider
> > > > whether any future changes we make to the DefaultReplicationPolicy
> > class
> > > > would have to be ported over to the LegacyReplicationPolicy class as
> > > well.
> > > >
> > > > Perhaps I'm missing something; are there other benefits of
> introducing
> > a
> > > > separate replication policy class?
> > > >
> > > > Cheers,
> > > >
> > > > Chris
> > > >
> > > > On Wed, Jul 19, 2023 at 5:45 AM Omnia Ibrahim <
> o.g.h.ibra...@gmail.com
> > >
> > > > wrote:
> > > >
> > > > > Hi Federico,
> > > > > I like the idea of implementing `LegacyReplicationPolicy` and
> > avoiding
> > > > bug
> > > > > fixes properties. We can drop the idea of the property and just go
> > > ahead
> > > > > with introducing the `LegacyReplicationPolicy` and any user upgrade
> > > from
> > > > > pre-KIP-690 can use this policy instead of default and no impact
> will
> > > > > happen to users upgrading from 3.x to post-KIP-949. We can mark
> > > > > `LegacyReplicationPolicy` as deprecated later if we want (but not
> in
> > > 4.0
> > > > as
> > > > > this is very soon) and we can drop it entirely at some point.
> > > > >
> > > > > If there's an agreement on this approach I can upgrade the KIP.
> > > > >
> > > > > Cheers.
> > > > > Omnia
> > > > >
> > > > > On Wed, Jul 19, 2023 at 8:52 AM Federico Valeri <
> > fedeval...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hi, one way to avoid the "fix the bug property" would be to
> provide
> > > > > > and document an additional LegacyReplicationPolicy, but still
> > keeping
> > > > > > the current DefaultReplicationPolicy as replication.policy.class
> > > > > > default value, which is basically one of the workarounds
> suggested
> > in
> > > > > > the KIP.
> > > > > >
> > > > > > On Tue, Jul 18, 2023 at 9:49 PM Chris Egerton
> > > <chr...@aiven.io.invalid
> > > > >
> > > > > > wrote:
> > > > > > >
> > > > > > > Hi Federico/Omnia,
> > > > > > >
> > > > > > > Generally I like the idea of deprecating and eventually
> removing
> > > "fix
> > > > > the
> > > > > > > bug" properties like this, but 4.0 may be a bit soon. I'm also
> > > unsure
> > > > > of
> > > > > > > how we would instruct users who are relying on the property
> being
> > > set
> > > > > to
> > > > > > > "false" to migrate to a version of MM2 that doesn't support
> > support
> > > > it,
> > > > > > > beyond simply implementing their own replication policy--at
> which
> > > > > point,
> > > > > > > would we really be doing anyone a favor by forcing them to fork
> > the
> > > > > > default
> > > > > > > policy just to preserve a property we removed?
> > > > > > >
> > > > > > > I guess right now I'd rather play it safe and not immediately
> > > > deprecate
> > > > > > the
> > > > > > > property. If we can find an easy migration path for users who
> are
> > > > > relying
> > > > > > > on it, then I'd be happy to deprecate and schedule for removal.
> > > > > > >
> > > > > > > Cheers,
> > > > > > >
> > > > > > > Chris
> > > > > > >
> > > > > > > On Tue, Jul 18, 2023 at 12:54 PM Omnia Ibrahim <
> > > > > o.g.h.ibra...@gmail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Hi Federico,
> > > > > > > > I don't have any strong opinion one way or the other. The pro
> > of
> > > > > > > > deprecation is not adding more configs to MM2 as it has too
> > many
> > > > > > configs
> > > > > > > > already. However, we need to think about old MM2 migrating
> > their
> > > > > > internal
> > > > > > > > topics to 4.0 with less impact.
> > > > > > > >
> > > > > > > > @Chris what do you think?
> > > > > > > >
> > > > > > > > Cheers
> > > > > > > > Omnia
> > > > > > > >
> > > > > > > > On Fri, Jul 14, 2023 at 2:38 PM Federico Valeri <
> > > > > fedeval...@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi Omnia and Chris, I agree with setting
> > > > > > > > > "replication.policy.internal.topic.separator.enabled=true"
> by
> > > > > > default,
> > > > > > > > > but I was wondering if we should also deprecate and remove
> in
> > > > Kafka
> > > > > > 4.
> > > > > > > > > If there is agreement in having the same behavior for
> > internal
> > > > and
> > > > > > > > > non-internal topics, then it should be fine, and we won't
> > need
> > > to
> > > > > > keep
> > > > > > > > > an additional configuration around. Wdyt?
> > > > > > > > >
> > > > > > > > > Cheers
> > > > > > > > > Fede
> > > > > > > > >
> > > > > > > > > On Fri, Jul 14, 2023 at 1:51 PM Omnia Ibrahim <
> > > > > > o.g.h.ibra...@gmail.com>
> > > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > Hi Chris, I added a section for backport plan here
> > > > > > > > >
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-949%3A+Add+flag+to+enable+the+usage+of+topic+separator+in+MM2+DefaultReplicationPolicy#KIP949:AddflagtoenabletheusageoftopicseparatorinMM2DefaultReplicationPolicy-Backportingplan
> > > > > > > > > >
> > > > > > > > > > Cheers,
> > > > > > > > > > Omnia
> > > > > > > > > >
> > > > > > > > > > > On 13 Jul 2023, at 19:33, Chris Egerton
> > > > > <chr...@aiven.io.INVALID
> > > > > > >
> > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > Hi Omnia,
> > > > > > > > > > >
> > > > > > > > > > > Yes, I think we ought to state the backport plan in the
> > > KIP,
> > > > > > since
> > > > > > > > it's
> > > > > > > > > > > highly unusual for KIP changes or new configuration
> > > > properties
> > > > > > to be
> > > > > > > > > > > backported and we should get the approval of the
> > community
> > > > > > (including
> > > > > > > > > > > binding and non-binding voters) before implementing it.
> > > > > > > > > > >
> > > > > > > > > > > Cheers,
> > > > > > > > > > >
> > > > > > > > > > > Chris
> > > > > > > > > > >
> > > > > > > > > > > On Thu, Jul 13, 2023 at 7:13 AM Omnia Ibrahim <
> > > > > > > > o.g.h.ibra...@gmail.com
> > > > > > > > > >
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > >> Hi Chris,
> > > > > > > > > > >> The implementation should be very small so backporting
> > > this
> > > > to
> > > > > > 3.1
> > > > > > > > > and 3.2
> > > > > > > > > > >> would be perfect for this case if you or any other
> > > committer
> > > > > are
> > > > > > > > okay
> > > > > > > > > with
> > > > > > > > > > >> approving the backporting. Do we need to state this in
> > KIP
> > > > as
> > > > > > well
> > > > > > > > or
> > > > > > > > > not?
> > > > > > > > > > >>
> > > > > > > > > > >> Also, I’ll open a vote for the KIP today and prepare
> the
> > > pr
> > > > > for
> > > > > > it
> > > > > > > > so
> > > > > > > > > we
> > > > > > > > > > >> can merge it as soon as we can.
> > > > > > > > > > >>
> > > > > > > > > > >> Thanks,
> > > > > > > > > > >>
> > > > > > > > > > >> Omnia
> > > > > > > > > > >>
> > > > > > > > > > >> On Wed, Jul 12, 2023 at 4:31 PM Chris Egerton
> > > > > > > > <chr...@aiven.io.invalid
> > > > > > > > > >
> > > > > > > > > > >> wrote:
> > > > > > > > > > >>
> > > > > > > > > > >>> Hi Omnia,
> > > > > > > > > > >>>
> > > > > > > > > > >>> Thanks for changing the default, LGTM 👍
> > > > > > > > > > >>>
> > > > > > > > > > >>> As far as backporting goes, we probably won't be
> doing
> > > > > another
> > > > > > > > > release
> > > > > > > > > > >> for
> > > > > > > > > > >>> 3.1, and possibly not for 3.2 either; however, if we
> > can
> > > > make
> > > > > > the
> > > > > > > > > > >>> implementation focused enough (which I don't think
> > would
> > > be
> > > > > too
> > > > > > > > > > >> difficult,
> > > > > > > > > > >>> but correct me if I'm wrong), then we can still
> > backport
> > > > > > through
> > > > > > > > 3.1.
> > > > > > > > > > >> Even
> > > > > > > > > > >>> if we don't do another release it can make life
> easier
> > > for
> > > > > > people
> > > > > > > > > who are
> > > > > > > > > > >>> maintaining parallel forks. Obviously this shouldn't
> be
> > > > taken
> > > > > > as a
> > > > > > > > > > >> blanket
> > > > > > > > > > >>> precedent but in this case it seems like the benefits
> > may
> > > > > > outweigh
> > > > > > > > > the
> > > > > > > > > > >>> costs. What are your thoughts?
> > > > > > > > > > >>>
> > > > > > > > > > >>> Cheers,
> > > > > > > > > > >>>
> > > > > > > > > > >>> Chris
> > > > > > > > > > >>>
> > > > > > > > > > >>> On Wed, Jul 12, 2023 at 9:05 AM Omnia Ibrahim <
> > > > > > > > > o.g.h.ibra...@gmail.com>
> > > > > > > > > > >>> wrote:
> > > > > > > > > > >>>
> > > > > > > > > > >>>> Hi Chris, thanks for the feedback.
> > > > > > > > > > >>>> 1. regarding the default value I had the same
> conflict
> > > of
> > > > > > which
> > > > > > > > > version
> > > > > > > > > > >>> to
> > > > > > > > > > >>>> break the backward compatibility with. We can just
> say
> > > > that
> > > > > > this
> > > > > > > > KIP
> > > > > > > > > > >>> gives
> > > > > > > > > > >>>> the release Pre KIP-690 the ability to keep the old
> > > > > behaviour
> > > > > > with
> > > > > > > > > one
> > > > > > > > > > >>>> config and keep the backwards compatibility from
> > > > > post-KIP-690
> > > > > > the
> > > > > > > > > same
> > > > > > > > > > >> so
> > > > > > > > > > >>>> we don't break at least the last 3 versions. I will
> > > update
> > > > > > the KIP
> > > > > > > > > to
> > > > > > > > > > >>>> switch the default value to true.
> > > > > > > > > > >>>> 2. For the backporting, which versions can we
> backport
> > > > these
> > > > > > to?
> > > > > > > > > > >> Usually,
> > > > > > > > > > >>>> Kafka supports bugfix releases as needed for the
> last
> > 3
> > > > > > releases.
> > > > > > > > > Now
> > > > > > > > > > >> we
> > > > > > > > > > >>> @
> > > > > > > > > > >>>> 3.5 so the last 3 are 3.4, 3.3 and 3.2 is this
> > correct?
> > > > > > > > > > >>>> 3. I'll add a Jira for updating the docs for this
> KIP
> > so
> > > > we
> > > > > > don't
> > > > > > > > > > >> forget
> > > > > > > > > > >>>> about it.
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> Thanks
> > > > > > > > > > >>>> Omnia
> > > > > > > > > > >>>>
> > > > > > > > > > >>>>
> > > > > > > > > > >>>> On Mon, Jul 10, 2023 at 5:33 PM Chris Egerton
> > > > > > > > > <chr...@aiven.io.invalid
> > > > > > > > > > >>>
> > > > > > > > > > >>>> wrote:
> > > > > > > > > > >>>>
> > > > > > > > > > >>>>> Hi Omnia,
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Thanks for taking this on! I have some thoughts but
> > the
> > > > > > general
> > > > > > > > > > >>> approach
> > > > > > > > > > >>>>> looks good.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> 1. Default value
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> One thing I'm wrestling with is what the default
> > value
> > > of
> > > > > > the new
> > > > > > > > > > >>>> property
> > > > > > > > > > >>>>> should be. I know on the Jira ticket I proposed
> that
> > it
> > > > > > should be
> > > > > > > > > > >>> false,
> > > > > > > > > > >>>>> but I'm having second thoughts. Technically we'd
> > > preserve
> > > > > > > > backward
> > > > > > > > > > >>>>> compatibility with pre-KIP-690 releases by
> defaulting
> > > to
> > > > > > false,
> > > > > > > > but
> > > > > > > > > > >> at
> > > > > > > > > > >>>> the
> > > > > > > > > > >>>>> same time, we'd break compatibility with
> post-KIP-690
> > > > > > releases.
> > > > > > > > And
> > > > > > > > > > >> if
> > > > > > > > > > >>> we
> > > > > > > > > > >>>>> default to true, the opposite would be true:
> > > > compatibility
> > > > > > would
> > > > > > > > be
> > > > > > > > > > >>>> broken
> > > > > > > > > > >>>>> with pre-KIP-690 releases, but preserved with
> > > > post-KIP-690
> > > > > > > > > releases.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> One argument against defaulting to false (which,
> > again,
> > > > > would
> > > > > > > > > > >> preserve
> > > > > > > > > > >>>> the
> > > > > > > > > > >>>>> behavior of MM2 before we accidentally broke
> > > > compatibility
> > > > > > with
> > > > > > > > > > >>> KIP-690)
> > > > > > > > > > >>>> is
> > > > > > > > > > >>>>> that this change could possibly cause a single MM2
> > > setup
> > > > to
> > > > > > break
> > > > > > > > > > >>>>> twice--once when upgrading from a pre-KIP-690
> release
> > > to
> > > > an
> > > > > > > > > existing
> > > > > > > > > > >>>>> release, and again when upgrading from that
> existing
> > > > > release
> > > > > > to a
> > > > > > > > > > >>> version
> > > > > > > > > > >>>>> that reverted (by default) to pre-KIP-690 behavior.
> > On
> > > > the
> > > > > > other
> > > > > > > > > > >> hand,
> > > > > > > > > > >>> if
> > > > > > > > > > >>>>> we default to true (which would preserve the
> existing
> > > > > > behavior
> > > > > > > > that
> > > > > > > > > > >>>> breaks
> > > > > > > > > > >>>>> compatibility with pre-KIP-690 releases), then any
> > > given
> > > > > > setup
> > > > > > > > will
> > > > > > > > > > >>> only
> > > > > > > > > > >>>> be
> > > > > > > > > > >>>>> broken once.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> In addition, if we default to true right now, then
> we
> > > > don't
> > > > > > have
> > > > > > > > to
> > > > > > > > > > >>> worry
> > > > > > > > > > >>>>> about changing that default in 4.0 to a more
> > intuitive
> > > > > value
> > > > > > (I
> > > > > > > > > hope
> > > > > > > > > > >> we
> > > > > > > > > > >>>> can
> > > > > > > > > > >>>>> all agree that, for new clusters, it makes sense to
> > set
> > > > > this
> > > > > > > > > property
> > > > > > > > > > >>> to
> > > > > > > > > > >>>>> true and not to distinguish between internal and
> > > > > non-internal
> > > > > > > > > > >> topics).
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> With that in mind, I'm now leaning more towards
> > > > defaulting
> > > > > to
> > > > > > > > true,
> > > > > > > > > > >> but
> > > > > > > > > > >>>>> would be interested in your thoughts.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> 2. Backport?
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> It's highly unlikely to backport changes for a KIP,
> > but
> > > > > > given the
> > > > > > > > > > >>> impact
> > > > > > > > > > >>>> of
> > > > > > > > > > >>>>> the compatibility break that we're trying to
> address
> > > > here,
> > > > > > and
> > > > > > > > the
> > > > > > > > > > >>>>> extremely low risk of the proposed changes, I think
> > we
> > > > > should
> > > > > > > > > > >> consider
> > > > > > > > > > >>>>> backporting the proposed fix to all affected
> release
> > > > > branches
> > > > > > > > > (i.e.,
> > > > > > > > > > >>> 3.1
> > > > > > > > > > >>>>> through 3.5).
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> 3. Extra steps
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> I also think we can take these additional steps to
> > try
> > > to
> > > > > > help
> > > > > > > > > > >> prevent
> > > > > > > > > > >>>>> users from being bitten by this change:
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> - Add a note to our upgrade instructions [1] for
> all
> > > > > affected
> > > > > > > > > > >> versions
> > > > > > > > > > >>>> that
> > > > > > > > > > >>>>> instructs users on how to safely upgrade to a
> > > > post-KIP-690
> > > > > > > > release,
> > > > > > > > > > >> for
> > > > > > > > > > >>>>> versions that both do and do not include the
> changes
> > > from
> > > > > > this
> > > > > > > > KIP
> > > > > > > > > > >>>>> - Log a warning message on MM2 startup if the
> config
> > > > > > contains an
> > > > > > > > > > >>> explicit
> > > > > > > > > > >>>>> value for "replication.policy.separator" but does
> not
> > > > > > contain an
> > > > > > > > > > >>> explicit
> > > > > > > > > > >>>>> value for
> > > > > > "replication.policy.internal.topic.separator.enabled"
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> These details don't necessarily have to be codified
> > in
> > > > the
> > > > > > KIP,
> > > > > > > > but
> > > > > > > > > > >>>> they're
> > > > > > > > > > >>>>> worth taking into account when considering how to
> > > design
> > > > > any
> > > > > > > > > > >> functional
> > > > > > > > > > >>>>> changes in order to better try to gauge how well
> this
> > > > could
> > > > > > go
> > > > > > > > for
> > > > > > > > > > >> our
> > > > > > > > > > >>>>> users.
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> [1] -
> > > > https://kafka.apache.org/documentation.html#upgrade
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Thanks again for the KIP!
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Cheers,
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> Chris
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>> On Fri, Jul 7, 2023 at 10:12 AM Omnia Ibrahim <
> > > > > > > > > > >> o.g.h.ibra...@gmail.com
> > > > > > > > > > >>>>
> > > > > > > > > > >>>>> wrote:
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>>> Hi everyone,
> > > > > > > > > > >>>>>> I want to start the discussion of the KIP-949. The
> > > > > proposal
> > > > > > is
> > > > > > > > > here
> > > > > > > > > > >>>>>>
> > > > > > > > > > >>>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>
> > > > > > > > > > >>>
> > > > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-949%3A+Add+flag+to+enable+the+usage+of+topic+separator+in+MM2+DefaultReplicationPolicy
> > > > > > > > > > >>>>>> <
> > > > > > > > > > >>>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>
> > > > > > > > > > >>>
> > > > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-949%3A+Add+flag+to+enable+the+usage+of+topic+separator+in+MM2+DefaultReplicationPolicy
> > > > > > > > > > >>>>>>>
> > > > > > > > > > >>>>>>
> > > > > > > > > > >>>>>> Thanks for your time and feedback.
> > > > > > > > > > >>>>>> Omnia
> > > > > > > > > > >>>>>>
> > > > > > > > > > >>>>>
> > > > > > > > > > >>>>
> > > > > > > > > > >>>
> > > > > > > > > > >>
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to