Re: [DISCUSS] KIP-915: Next Gen Group Coordinator Downgrade Path

2023-03-23 Thread Yi Ding
Hi Jeff,

Thanks for the update. Does it mean with a flexible version, the future
version of these value types will stay at the version where the flexibility
is first introduced? Will there be any need to bump the version again in
the future?
To enforce the version not bumping, is it possible to have a unit test to
gate?


On Wed, Mar 22, 2023 at 3:19 PM Jeff Kim 
wrote:

> Hi all,
>
> After discussing with my colleagues, I have repurposed the KIP for a
> general downgrade solution for both transaction and group coordinators. The
> KIP no longer discusses the downgrade path but instead lays out the
> foundation for future downgrade solutions.
>
> Link:
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-915%3A+Txn+and+Group+Coordinator+Downgrade+Foundation
>
> Thanks,
> Jeff
>
> On Mon, Mar 20, 2023 at 7:37 PM Jeff Kim  wrote:
>
> > Hi David and Justine,
> >
> > Thank you both for the detailed feedback.
> >
> > David,
> >
> > 1. That makes sense. I revised the "Reading new fields" section with how
> > we can downgrade to the highest known version and that this was confirmed
> > via unit testing. I also attempted to dive deeper into using tagged
> fields
> > and the rejected alternative. Please let me know what you think.
> >
> > 2. Under "Restrictions and Guidelines" I updated the paragraph to clearly
> > state that we want to use tagged fields across all record types
> introduced
> > in KIP-848 including OffsetCommitValue.
> >
> > 3. Would it be possible to bump the OffsetCommitValue record version to
> > make it flexible along with the changes to parse with the highest known
> > version? I'm not sure I understand why we cannot make both changes
> together.
> >
> > 4. I completely missed this. Added some notes at the end of "Restrictions
> > and Guidelines". Unfortunately I can't think of a solution at the moment.
> > Will get back to you.
> >
> > 5. I have a section under "Identifying New Record Types" that discusses
> > this:
> >  > We can automate the cleanup by writing tombstones when the coordinator
> > reads unrecognizable records. This may add duplicate work if tombstones
> > were already added but not yet pruned by the log cleaner.
> > This is a sure way to delete any unknown record types even if the
> operator
> > does not follow the steps.
> >
> > 6. Thanks, I have expanded on the section on transactional offset
> commits.
> > As for log compaction, my understanding was that we can control the
> process
> > by forcing compaction. Is my understanding incorrect?
> >
> > 7. We throw an exception if ConfigResource.type is unknown which is true
> > in our case because KIP-848 introduces a new GROUP resource type. We will
> > need to add some sort of safeguard if the dynamic configs are not deleted
> > before the server downgrade. I'll give you an update once I update the
> > section.
> >
> > Justine,
> >
> > On the transactional offset commits, I have updated the KIP to reflect
> > your points after our offline discussion (much appreciated). It seems
> that
> > the work required to abort from the server side is fairly big and will
> > require additional investigation if we are to go down this path.
> >
> > As for downgrade limitations, I missed that part so thanks for the catch
> > (along with David). Unfortunately, the proposed design won't allow
> > downgrades even after the new record types are deleted because the
> existing
> > OffsetCommitValue record is not flexible and will not be able to parse
> > the topicId tagged field. I'll think more about this and get back to you.
> >
> > Best,
> > Jeff
> >
> > On Mon, Mar 20, 2023 at 2:16 PM Justine Olshan
> >  wrote:
> >
> >> Hey Jeff and David,
> >>
> >> Thanks for the KIP! I was also looking into this a bit since I may want
> to
> >> change the record format for KIP-890 as well (finally implementing the
> >> record change from KIP-360 to better support the epoch bump. This will
> >> potentially be helpful for me to implement that work.
> >>
> >> I discussed some aspects with David offline. Namely, the alternative
> >> solution to rewrite the records in the old format upon downgrade. One
> plus
> >> to this approach is that it should trigger compaction for all the
> existing
> >> (new format) records.
> >> The main issue we ran into was how to handle ongoing transactions. (Ie,
> >> could we abort and rewrite with the old format) I think that's one of
> the
> >> main downsides. I think it could potentially be possible to do this, but
> >> we'd definitely need a server-side mechanism to abort and rewrite the
> >> records.
> >>
> >> I think the trouble I was running into with the current solution is that
> >> we
> >> can only downgrade to a version slightly before the new group
> coordinator.
> >> If someone was running 3.2 and they upgrade to 3.6, but find a bug in
> 3.4
> >> (or any version between 3.5 and the one they upgraded from), then they
> can
> >> only downgrade to 3.5. This puts us in a difficult spot. I guess in this
> >> scenario, the

[jira] [Reopened] (KAFKA-14255) Fetching from follower should be disallowed if fetch from follower is disabled

2023-03-13 Thread Yi Ding (Jira)


 [ 
https://issues.apache.org/jira/browse/KAFKA-14255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yi Ding reopened KAFKA-14255:
-

> Fetching from follower should be disallowed if fetch from follower is disabled
> --
>
> Key: KAFKA-14255
> URL: https://issues.apache.org/jira/browse/KAFKA-14255
> Project: Kafka
>  Issue Type: Bug
>Affects Versions: 2.4.0
>Reporter: David Jacot
>Assignee: David Jacot
>Priority: Critical
>
> There are clients out there that have implemented KIP-392 (Fetch From 
> Follower) and thus use FetchRequest >= 11. However, they have not implemented 
> KIP-320 which add the leader epoch to the FetchRequest in version 9. Without 
> KIP-320, it is not safe to fetch from the follower. If a client does it by 
> mistake – e.g. based on stale metadata – that could lead to offset out of 
> range.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (KAFKA-14255) Fetching from follower should be disallowed if fetch from follower is disabled

2023-03-13 Thread Yi Ding (Jira)


 [ 
https://issues.apache.org/jira/browse/KAFKA-14255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yi Ding resolved KAFKA-14255.
-
Resolution: Won't Fix

> Fetching from follower should be disallowed if fetch from follower is disabled
> --
>
> Key: KAFKA-14255
> URL: https://issues.apache.org/jira/browse/KAFKA-14255
> Project: Kafka
>  Issue Type: Bug
>Affects Versions: 2.4.0
>Reporter: David Jacot
>Assignee: David Jacot
>Priority: Critical
>
> There are clients out there that have implemented KIP-392 (Fetch From 
> Follower) and thus use FetchRequest >= 11. However, they have not implemented 
> KIP-320 which add the leader epoch to the FetchRequest in version 9. Without 
> KIP-320, it is not safe to fetch from the follower. If a client does it by 
> mistake – e.g. based on stale metadata – that could lead to offset out of 
> range.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Request permission for KIP creation

2021-06-10 Thread Yi Ding
Hi Team,

Could you help grant me permission to create KIP on
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals
?

My info is:
Wiki ID: Yi Ding
Email: yd...@confluent.io

Thank you!
Yi