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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to