Hi,

given that we passed 2.8 feature freeze, I wanted to restart this
thread. Currently, `trunk` is at `2.9.0-SNAPSHOT` and I am wondering if
the decision for the 3.0 release is final and if we should bump the
version number?

I am asking particularly because there a many Jiras with a 3.0 target
release version for breaking changes and we should ensure that we have
enough time to work on those tickets. -- As long as we don't agree that
the next release will indeed be 3.0, those tickets are effectively
blocked/pending.

Thoughts?


-Matthias


On 10/15/20 4:28 PM, Matthias J. Sax wrote:
> Thanks for clarifying Colin. Works for me. Overall, 3.0 should be guided
> by the ZK removal progress and if we are not there yet, it's better to
> have a 2.8 first.
> 
> 
> -Matthias
> 
> 
> On 10/15/20 2:41 PM, Colin McCabe wrote:
>> Hi all,
>>
>> Just to follow up on this... since we're not quite ready for 3.0 yet, it's 
>> probably best if we release a 2.8 next, and then go to 3.0 after that.  
>> Sorry for any confusion.
>>
>> best,
>> Colin
>>
>>
>> On Mon, Jul 20, 2020, at 12:52, Matthias J. Sax wrote:
>>> Did we reach any conclusion on the subject?
>>>
>>> It seems we are aiming for 2.7 after 2.6 and plan the major version bump
>>> to 3.0 after 2.7 (assuming we make progress on ZK removal as planned?)
>>>
>>>
>>> -Matthias
>>>
>>>
>>> On 5/18/20 1:11 PM, Boyang Chen wrote:
>>>> One more thing I would like to see deprecated (hopefully no one mentioned
>>>> before) is the zk based consumer offset support.
>>>>
>>>> On Mon, May 11, 2020 at 2:15 PM Colin McCabe <cmcc...@apache.org> wrote:
>>>>
>>>>> Hi Michael,
>>>>>
>>>>> It would be better to discuss the background behind KIP-500 in a separate
>>>>> thread, since this thread is about the Kafka 3.0 release.  As others have
>>>>> said, your questions are answered in the KIP.  For example, "what is the
>>>>> actual goal?" is addressed in the motivation section.
>>>>>
>>>>> I agree that Kafka's usage of Apache ZooKeeper could be optimized.  But
>>>>> there are fundamental limitations to this approach compared to storing our
>>>>> metadata internally.  For example, having to contact a remote server to
>>>>> reload all your metadata on a controller failover simply doesn't scale 
>>>>> past
>>>>> a certain point.
>>>>>
>>>>> Apache Curator is a nice API, and if we were starting again today we would
>>>>> certainly consider using it.  But it doesn't allow us to do anything more
>>>>> efficiently than ZooKeeper could already do it.
>>>>>
>>>>> Finally, Kafka's core competence is logs.  While our replication protocol
>>>>> is not Raft, it shares many similarities with that protocol.  So I think
>>>>> it's a bit unfair to say that it is "catastrophic hubris" to believe we 
>>>>> can
>>>>> implement the protocol.
>>>>>
>>>>> best,
>>>>> Colin
>>>>>
>>>>>
>>>>> On Sun, May 10, 2020, at 11:02, Michael K. Edwards wrote:
>>>>>> Yes, I've read the KIP.  But all it really says to me is "we have never
>>>>>> gotten around to using ZooKeeper properly."  To the extent that any of
>>>>> the
>>>>>> distributed-state-maintenance problems discussed in "Metadata as an Event
>>>>>> Log" can be solved — and some of them intrinsically can't, because CAP
>>>>>> theorem — most of them are already implemented very effectively in
>>>>> Curator
>>>>>> recipes.  (For instance, Curator's Tree Cache
>>>>>> https://curator.apache.org/curator-recipes/tree-cache.html is a good
>>>>> fit to
>>>>>> some of the state-maintenance needs.)
>>>>>>
>>>>>> Kafka does have some usage patterns that don't map neatly onto existing
>>>>>> Curator recipes.  For instance, neither LeaderSelector nor LeaderLatch
>>>>>> implements leader preference in the way that the existing Kafka partition
>>>>>> leadership election procedure does.  But why not handle that by improving
>>>>>> and extending Curator?  That way, other Curator users benefit, and we get
>>>>>> additional highly experienced reviewers' eyes on the distributed
>>>>>> algorithms, which are very very tricky to get right.
>>>>>>
>>>>>>
>>>>>> On Sun, May 10, 2020 at 10:47 AM Ron Dagostino <rndg...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>> Hi Michael.  This is discussed in the KIP.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum#KIP-500:ReplaceZooKeeperwithaSelf-ManagedMetadataQuorum-Motivation
>>>>>>>
>>>>>>> Ron
>>>>>>>
>>>>>>>> On May 10, 2020, at 1:35 PM, Michael K. Edwards <
>>>>> m.k.edwa...@gmail.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> What is the actual goal of removing the ZooKeeper dependency?  In my
>>>>>>>> experience, if ZooKeeper is properly provisioned and deployed, it's
>>>>>>> largely
>>>>>>>> trouble-free.  (You do need to know how to use observers properly.)
>>>>>>> There
>>>>>>>> are some subtleties about timeouts and leadership changes, but
>>>>> they're
>>>>>>>> pretty small stuff.  Why go to all the trouble of building a new
>>>>>>>> distributed-consensus system that's going to have catastrophic bugs
>>>>> for
>>>>>>>> years to come?  It seems like such an act of hubris to me, as well
>>>>> as a
>>>>>>>> massive waste of engineering effort.  What is there to be gained?
>>>>>>>>
>>>>>>>>> On Fri, May 8, 2020 at 4:11 PM Matthias J. Sax <mj...@apache.org>
>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Sure, we can compile a list for Kafka Streams. But the KIP would be
>>>>> for
>>>>>>>>> 3.0, so I don't think it's urgent to do it now?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -Matthias
>>>>>>>>>
>>>>>>>>>> On 5/8/20 3:47 PM, Colin McCabe wrote:
>>>>>>>>>> Thanks, Guozhang-- sounds like a good plan.
>>>>>>>>>>
>>>>>>>>>> I think it would be good to have a list of deprecated streams APIs
>>>>> that
>>>>>>>>> we want to remove in 3.0.  Maybe it's easiest to do that as its own
>>>>> KIP?
>>>>>>>>>>
>>>>>>>>>> For MirrorMaker 1, we should have a KIP to deprecate its use in
>>>>> 2.6 if
>>>>>>>>> we want to remove it in 3.0.  I don't have a good sense of how
>>>>>>> practical it
>>>>>>>>> is to deprecate this now, so I will defer to others here.  But the
>>>>> KIP
>>>>>>>>> freeze for 2.6 is coming soon, so if we want to make the case, now
>>>>> is
>>>>>>> the
>>>>>>>>> time.
>>>>>>>>>>
>>>>>>>>>> best,
>>>>>>>>>> Colin
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> On Thu, May 7, 2020, at 16:28, Guozhang Wang wrote:
>>>>>>>>>>> Hey folks,
>>>>>>>>>>>
>>>>>>>>>>> Sorry for stating that the bridge release would not break any
>>>>>>>>> compatibility
>>>>>>>>>>> before, which is incorrect and confused many people.
>>>>>>>>>>>
>>>>>>>>>>> I think one way to think about the versioning is that:
>>>>>>>>>>>
>>>>>>>>>>> 0) In a 2.x version moving ahead we would deprecate the
>>>>> ZK-dependent
>>>>>>>>> tools
>>>>>>>>>>> such as --zookeeper flags from various scripts (KIP-555)
>>>>>>>>>>>
>>>>>>>>>>> 1) In 3.0 we would at least make one incompatible change for
>>>>> example
>>>>>>> to
>>>>>>>>>>> remove the deprecated ZK flags.
>>>>>>>>>>>
>>>>>>>>>>> 2) In a future major version (e.g. 4.0) we would drop ZK entirely,
>>>>>>>>>>> including usages such as security credentials / broker
>>>>> registration /
>>>>>>>>> etc
>>>>>>>>>>> which are via ZK today as well.
>>>>>>>>>>>
>>>>>>>>>>> Then for the bridge release(s), it can be any or all of 3.x.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> For 1), I'd love to add a few more incompatibility changes in 3.0
>>>>> from
>>>>>>>>>>> Kafka Streams: we evolve Streams public APIs by deprecating and
>>>>> then
>>>>>>>>> remove
>>>>>>>>>>> in major releases, and since 2.0 we've accumulated quite a few
>>>>>>>>> deprecated
>>>>>>>>>>> APIs, and I can compile a list of KIPs that contain those if
>>>>> people
>>>>>>> are
>>>>>>>>>>> interested.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Guozhang
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> On Thu, May 7, 2020 at 3:53 PM Colin McCabe <cmcc...@apache.org>
>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, May 6, 2020, at 21:33, Ryanne Dolan wrote:
>>>>>>>>>>>>>> In fact, we know that the bridge release will involve at least
>>>>> one
>>>>>>>>>>>>>> incompatible change.  We will need to drop support for the
>>>>>>>>> --zookeeper
>>>>>>>>>>>>>> flags in the command-line tools.
>>>>>>>>>>>>>
>>>>>>>>>>>>> If the bridge release(s) and the subsequent post-ZK release are
>>>>>>> _both_
>>>>>>>>>>>>> breaking changes, I think we only have one option: the 3.x line
>>>>> are
>>>>>>>>> the
>>>>>>>>>>>>> bridge release(s), and ZK is removed in 4.0, as suggested by
>>>>> Andrew
>>>>>>>>>>>>> Schofield.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Specifically:
>>>>>>>>>>>>> - in order to _remove_ (not merely deprecate) the --zookeeper
>>>>> args,
>>>>>>> we
>>>>>>>>>>>> will
>>>>>>>>>>>>> need a major release.
>>>>>>>>>>>>> - in oder to drop support for ZK entirely (e.g. break a bunch of
>>>>>>>>> external
>>>>>>>>>>>>> tooling like Cruise Control), we will need a major release.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I count two major releases.
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Ryanne,
>>>>>>>>>>>>
>>>>>>>>>>>> I agree that dropping ZK completely will need a new major release
>>>>>>> after
>>>>>>>>>>>> 3.0.  I think that's OK and in keeping with how we've handled
>>>>>>>>> deprecation
>>>>>>>>>>>> and removal in the past.  It's important for users to have a
>>>>> smooth
>>>>>>>>> upgrade
>>>>>>>>>>>> path.
>>>>>>>>>>>>
>>>>>>>>>>>> best,
>>>>>>>>>>>> Colin
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ryanne
>>>>>>>>>>>>>
>>>>>>>>>>>>> -
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, May 6, 2020 at 10:52 PM Colin McCabe <
>>>>> cmcc...@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Mon, May 4, 2020, at 17:12, Ryanne Dolan wrote:
>>>>>>>>>>>>>>> Hey Colin, I think we should wait until after KIP-500's
>>>>> "bridge
>>>>>>>>>>>>>>> release" so there is a clean break from Zookeeper after 3.0.
>>>>> The
>>>>>>>>>>>>>>> bridge release by definition is an attempt to not break
>>>>> anything,
>>>>>>> so
>>>>>>>>>>>>>>> it theoretically doesn't warrant a major release.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Ryanne,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I think it's important to clarify this a little bit.  The
>>>>> bridge
>>>>>>>>>>>> release
>>>>>>>>>>>>>> (really, releases, plural) allow you to upgrade from a cluster
>>>>> that
>>>>>>>>> is
>>>>>>>>>>>>>> using ZooKeeper to one that is not using ZooKeeper.  But, that
>>>>>>>>> doesn't
>>>>>>>>>>>>>> imply that the bridge release itself doesn't break anything.
>>>>>>>>> Upgrading
>>>>>>>>>>>>>> to the bridge release itself might involve some minor
>>>>>>>>> incompatibility.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Kafka does occasionally have incompatible changes.  In those
>>>>> cases,
>>>>>>>>> we
>>>>>>>>>>>>>> bump the major version number.  One example is that when we
>>>>> went
>>>>>>> from
>>>>>>>>>>>>>> Kafka 1.x to Kafka 2.0, we dropped support for JDK7.  This is
>>>>> an
>>>>>>>>>>>>>> incompatible change.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> In fact, we know that the bridge release will involve at least
>>>>> one
>>>>>>>>>>>>>> incompatible change.  We will need to drop support for the
>>>>>>>>> --zookeeper
>>>>>>>>>>>>>> flags in the command-line tools.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> We've been preparing for this change for a long time.  People
>>>>> have
>>>>>>>>>>>> spent
>>>>>>>>>>>>>> a lot of effort designing new APIs that can be used instead of
>>>>> the
>>>>>>>>> old
>>>>>>>>>>>>>> zookeeper-based code that some of the command-line tools
>>>>> used.  We
>>>>>>>>> have
>>>>>>>>>>>>>> also deprecated the old ZK-based flags.  But at the end of the
>>>>> day,
>>>>>>>>> it
>>>>>>>>>>>>>> is still an incompatible change.  So it's unfortunately not
>>>>>>> possible
>>>>>>>>>>>> for
>>>>>>>>>>>>>> the
>>>>>>>>>>>>>> bridge release to be a 2.x release.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If that's not the case (i.e. if a single "bridge release"
>>>>> turns
>>>>>>> out
>>>>>>>>>>>> to
>>>>>>>>>>>>>>> be impractical), we should consider forking 3.0 while
>>>>> maintaining
>>>>>>> a
>>>>>>>>>>>>>>> line of Zookeeper-dependent Kafka in 2.x. That way 3.x can
>>>>> evolve
>>>>>>>>>>>>>>> dramatically without breaking the 2.x line. In particular,
>>>>>>> anything
>>>>>>>>>>>>>>> related to removing Zookeeper could land in pre-3.0 while
>>>>> every
>>>>>>>>> other
>>>>>>>>>>>>>>> feature targets 2.6.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Just to be super clear about this, what we want to do here is
>>>>>>> support
>>>>>>>>>>>>>> operating in __either__ KIP-500 mode and legacy mode for a
>>>>> while.
>>>>>>> So
>>>>>>>>>>>> the
>>>>>>>>>>>>>> same branch will have support for both the old way and the new
>>>>> way
>>>>>>> of
>>>>>>>>>>>>>> managing metadata.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> This will allow us to get an "alpha" version of the KIP-500
>>>>> mode
>>>>>>> out
>>>>>>>>>>>> early
>>>>>>>>>>>>>> for people to experiment with.  It also greatly reduces the
>>>>> number
>>>>>>> of
>>>>>>>>>>>> Kafka
>>>>>>>>>>>>>> releases we have to make, and the amount of backporting we
>>>>> have to
>>>>>>>>> do.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> If you are proposing 2.6 should be the "bridge release", I
>>>>> think
>>>>>>>>> this
>>>>>>>>>>>>>>> is premature given Kafka's time-based release schedule. If the
>>>>>>>>> bridge
>>>>>>>>>>>>>>> features happen to be merged before 2.6's feature freeze, then
>>>>>>> sure
>>>>>>>>>>>> --
>>>>>>>>>>>>>>> let's make that the bridge release in retrospect. And if we
>>>>> get
>>>>>>> all
>>>>>>>>>>>>>>> the post-Zookeeper features merged before 2.7, I'm onboard
>>>>> with
>>>>>>>>>>>> naming
>>>>>>>>>>>>>>> it "3.0" instead.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> That said, we should aim to remove legacy MirrorMaker before
>>>>> 3.0
>>>>>>> as
>>>>>>>>>>>>>>> well. I'm happy to drive that additional breaking change.
>>>>> Maybe
>>>>>>> 2.6
>>>>>>>>>>>>>>> can be the "bridge" for MM2 as well.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I don't have a strong opinion either way about this, but if we
>>>>> want
>>>>>>>>> to
>>>>>>>>>>>>>> remove the original MirrorMaker, we have to deprecate it first,
>>>>>>>>>>>> right?  Are
>>>>>>>>>>>>>> we ready to do that?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> best,
>>>>>>>>>>>>>> Colin
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Ryanne
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Mon, May 4, 2020, 5:05 PM Colin McCabe <cmcc...@apache.org
>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> We've had a few proposals recently for incompatible
>>>>> changes.  One
>>>>>>>>>>>> of
>>>>>>>>>>>>>>>> them is my KIP-604: Remove ZooKeeper Flags from the
>>>>>>> Administrative
>>>>>>>>>>>>>>>> Tools.  The other is Boyang's KIP-590: Redirect ZK Mutation
>>>>>>>>>>>>>>>> Protocols to the Controller.  I think it's time to start
>>>>> thinking
>>>>>>>>>>>>>>>> about Kafka 3.0. Specifically, I think we should move to 3.0
>>>>>>> after
>>>>>>>>>>>>>>>> the 2.6 release.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> From the perspective of KIP-500, in Kafka 3.x we'd like to
>>>>> make
>>>>>>>>>>>>>>>> running in a ZooKeeper-less mode possible (but not yet the
>>>>>>>>>>>> default.)
>>>>>>>>>>>>>>>> This is the motivation behind KIP-590 and KIP-604, as well as
>>>>>>> some
>>>>>>>>>>>>>>>> of the other KIPs we've done recently.  Since it will take
>>>>> some
>>>>>>>>>>>> time
>>>>>>>>>>>>>>>> to stabilize the new ZooKeeper-free Kafka code, we will hide
>>>>> it
>>>>>>>>>>>>>>>> behind an option initially. (We'll have a KIP describing
>>>>> this all
>>>>>>>>>>>> in
>>>>>>>>>>>>>>>> detail soon.)
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> What does everyone think about having Kafka 3.0 come up next
>>>>>>> after
>>>>>>>>>>>>>>>> 2.6? Are there any other things we should change in the 2.6
>>>>> ->
>>>>>>> 3.0
>>>>>>>>>>>>>>>> transition?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> best, Colin
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> -- Guozhang
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> Attachments:
>>> * signature.asc

Reply via email to