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