Emanuele

I agree with this. That's why i quoted below -

> I wonder if non-Kafka clients might benefit from not bumping the
> version. If versions are bumped, say for FetchResponse to 16, I believe
> that client would have to support all versions until 16 to fully
> utilise this feature. Whereas, if not bumped, they can simply support until
> version 12( will change to version:12 for tagged fields ), and non-AK
> clients can then implement this feature. What do you think? I am inclined
> to
> not bump.


I will explicitly highlight the reason for not bumping in the KIP. Unless I
hear otherwise, i.e. strong opposition, I am inclined to not bump it.

On Mon, Jul 17, 2023 at 11:54 AM Emanuele Sabellico
<esabell...@confluent.io.invalid> wrote:

> The downsides of bumping the version is that clients have to have all
> the latest features implemented before being able to benefit from this
> performance improvement.
> One of the benefits of using a tagged field is to make the field
> available to previous versions too.
> Choosing a minimum value for taggedVersions could be an alternative.
>
> Emanuele
>
> On 2023/07/13 17:30:45 Andrew Schofield wrote:
>  > Hi Mayank,
>  > If we bump the version, the broker can tell whether it’s worth
> providing the leader
>  > endpoint information to the client when the leader has changed.
> That’s my reasoning.
>  >
>  > Thanks,
>  > Andrew
>  >
>  > > On 13 Jul 2023, at 18:02, Mayank Shekhar Narula wrote:
>  > >
>  > > Thanks both for looking into this.
>  > >
>  > > Jose,
>  > >
>  > > 1/2 & 4(changes for PRODUCE) & 5 makes sense, will follow
>  > >
>  > > 3. If I understood this correctly, certain replicas "aren't"
> brokers, what
>  > > are they then?
>  > >
>  > > Also how about replacing "Replica" with "Leader", this is more
> readable on
>  > > the client. so, how about this?
>  > > { "name": "LeaderEndpoints", "type": "[]Leader", "versions": "15+",
>  > > "taggedVersions": "15+", "tag": 3,
>  > > "about": "Endpoints for all current leaders enumerated in
>  > > PartitionData.", "fields": [
>  > > { "name": "NodeId", "type": "int32", "versions": "15+",
>  > > "mapKey": true, "entityType": "brokerId", "about": "The ID of the
>  > > associated leader"},
>  > > { "name": "Host", "type": "string", "versions": "15+",
>  > > "about": "The leader's hostname." },
>  > > { "name": "Port", "type": "int32", "versions": "15+",
>  > > "about": "The leader's port." },
>  > > { "name": "Rack", "type": "string", "versions": "15+", "ignorable":
>  > > true, "default": "null",
>  > > "about": "The rack of the leader, or null if it has not been
>  > > assigned to a rack." }
>  > > ]}
>  > >
>  > > Andrew
>  > >
>  > > 6. I wonder if non-Kafka clients might benefit from not bumping the
>  > > version. If versions are bumped, say for FetchResponse to 16, I
> believe
>  > > that client would have to support all versions until 16 to fully
> utilise
>  > > this feature. Whereas, if not bumped, they can simply support until
> version
>  > > 12( will change to version:12 for tagged fields ), and non-AK
> clients can
>  > > then implement this feature. What do you think? I am inclined to
> not bump.
>  > >
>  > > On Thu, Jul 13, 2023 at 5:21 PM Andrew Schofield <
>  > > andrew_schofield_j...@outlook.com> wrote:
>  > >
>  > >> Hi José,
>  > >> Thanks. Sounds good.
>  > >>
>  > >> Andrew
>  > >>
>  > >>> On 13 Jul 2023, at 16:45, José Armando García Sancio
>  > >> wrote:
>  > >>>
>  > >>> Hi Andrew,
>  > >>>
>  > >>> On Thu, Jul 13, 2023 at 8:35 AM Andrew Schofield
>  > >>> wrote:
>  > >>>> I have a question about José’s comment (2). I can see that it’s
>  > >> possible for multiple
>  > >>>> partitions to change leadership to the same broker/node and it’s
>  > >> wasteful to repeat
>  > >>>> all of the connection information for each topic-partition. But, I
>  > >> think it’s important to
>  > >>>> know which partitions are now lead by which node. That
> information at
>  > >> least needs to be
>  > >>>> per-partition I think. I may have misunderstood, but it sounded
> like
>  > >> your comment
>  > >>>> suggestion lost that relationship.
>  > >>>
>  > >>> Each partition in both the FETCH response and the PRODUCE response
>  > >>> will have the CurrentLeader, the tuple leader id and leader epoch.
>  > >>> Clients can use this information to update their partition to leader
>  > >>> id and leader epoch mapping.
>  > >>>
>  > >>> They can also use the NodeEndpoints to update their mapping from
>  > >>> replica id to the tuple host, port and rack so that they can connect
>  > >>> to the correct node for future FETCH requests and PRODUCE requests.
>  > >>>
>  > >>> Thanks,
>  > >>> --
>  > >>> -José
>  > >>
>  > >>
>  > >
>  > > --
>  > > Regards,
>  > > Mayank Shekhar Narula
>  >
>  >



-- 
Regards,
Mayank Shekhar Narula

Reply via email to