Hi,
As we've written the code for KIP-932, we've made some small changes to the KIP
to correct mistakes, align with other accepted KIPs and fix some omissions 
picked
up during PR reviews. We also have experience of people writing applications
against the ShareConsumer interface and have corrected a couple of problems.

* Using share.version=1 as the switch to enable share groups. This aligns
with group.version=1 for KIP-848 and streams.version=1 for KIP-1071.
* Aligned with KIP-1043 by using a common GroupState and removing
Admin.listShareGroups (because Admin.listGroups handles all group types).
* Corrected the topic authorizations on admin requests.
* Added SHARE_SESSION_LIMIT_REACHED error code to give proper
consumer error handling when the limit is reached.
* Adjusted ShareFetch RPC request to remove PartitionMaxBytes and
add BatchSize to improve efficiency of fetching and state management.
* Changed the rules for explicit acknowledgement because, as originally
written, it was simple to write an application that went into an infinite loop.
Now, when using explicit acknowledgement, it is mandatory to acknowledge
every single record, which allows an exception to be thrown if the application
does not do this properly.
* Added a method overload with signature
ShareConsumer.acknowledge(String, int, long, AcknowledgeType) to go with
ShareConsumer.acknowledge(ConsumerRecord, AcknowledgeType).
This is because the KIP said it would be possible to choose the acknowledge
type in the event of RecordDeserializationException. However, because the
application does not have the ConsumerRecord instance when the deserialization
fails, but it does have topic name, partition and offset, adding an overloaded
method enables the application to choose the acknowledge type.
* The SimpleAssignor no longer uses hashing as part of making assignments.
In practice, this hindered the assignment computation. SimpleAssignor achieves
the balance and stickiness described previously, just without hashing.
* Added 
org.apache.kafka.coordinator.group.api.assignor.GroupSpec.isPartitionAssignable
so that partitions which are in the process of being initialized in the share 
coordinator
can be omitted from assignment computation.
* Removed the ShareGroupPartitionMetadata record type (KIP-1101).
* Added timestamps to ShareSnapshot records so it is possible to manage
pruning of records correctly.
* Adjusted some of the config defaults and limits such as maximum for lock
duration which didn't make sense.

KIP-932 mentions some future work and I have started to create new KIPs for 
this.

Thanks,
Andrew
________________________________________
From: Jun Rao <j...@confluent.io.INVALID>
Sent: 15 August 2024 19:07
To: dev@kafka.apache.org <dev@kafka.apache.org>
Subject: Re: [VOTE] KIP-932: Queues for Kafka

Hi, Andrew,

Thanks for the clarification. Sounds good.

Jun

On Thu, Aug 15, 2024 at 2:53 AM Andrew Schofield <andrew_schofi...@live.com>
wrote:

> Hi Jun,
> Thanks for the questions.
>
> 1. The PartitionMetadata is only stored if there is rack ID information.
> So, there are situations in which it’s redundant, but almost always the
> PartitionMetadata will be empty.
>
> 2. They are for subtly different purposes. ShareGroupPartitionMetadata
> is essentially a persistent cache of the metadata for topic-partitions
> which
> can be assigned to group members. ShareGroupStatePartitionMetadata
> is keeping track of which partitions have share-group state in the share
> coordinator. I prefer having them separate, in particular because it means
> the ShareGroupPartitionMetadata matches nicely with consumer groups,
> and also because share groups are able to work without a share coordinator
> (the persister is pluggable).
>
> I propose that as we develop the code in the group coordinator which uses
> the various ShareGroupState RPCs to talk to the share coordinator,
> we will confirm whether the record schemas are optimal
> and make a further refinement if required. Let me know if that’s OK.
>
> Thanks,
> Andrew
>
>
> > On 14 Aug 2024, at 00:00, Jun Rao <j...@confluent.io.INVALID> wrote:
> >
> > Hi, Andrew,
> >
> > Thanks for the update. A couple of followup questions.
> >
> > 1. ShareGroupPartitionMetadataValue: Is NumPartitions redundant given
> > PartitionMetadata?
> >
> > 2. I assume that ShareGroupPartitionMetadataValue contains initialized
> > partitions. Does that
> > make ShareGroupStatePartitionMetadataValue.InitializedTopics redundant?
> >
> > Jun
> >
> > On Tue, Aug 13, 2024 at 11:56 AM Andrew Schofield <
> andrew_schofi...@live.com>
> > wrote:
> >
> >> Hi,
> >> During the implementation of the group management code for KIP-932,
> >> we learnt that the decision not to persist assignments for share groups
> was
> >> making it difficult to fit with the coordinator framework, in particular
> >> the
> >> use of timeline structures. As a result, I decided to change the KIP to
> >> follow the consumer group record scheme much more closely.
> >>
> >> Now, share groups do persist assignments and member epochs which
> >> resolves the problems we were experiencing managing soft state in the
> >> coordinator and making group membership reliable across coordinator
> >> restarts.
> >>
> >> I have updated the KIP accordingly and the revised code has been merged.
> >> If anyone has any comments, please let me know.
> >>
> >> Thanks,
> >> Andrew
> >>
> >>
> >>> On 21 May 2024, at 15:35, Andrew Schofield <andrew_schofi...@live.com>
> >> wrote:
> >>>
> >>> Hi Jun,
> >>> All the client metrics are standard. None are required.
> >>>
> >>> I’ve updated the KIP accordingly.
> >>>
> >>> Thanks,
> >>> Andrew
> >>>
> >>>> On 15 May 2024, at 21:36, Jun Rao <j...@confluent.io.INVALID> wrote:
> >>>>
> >>>> Hi, Andrew,
> >>>>
> >>>> Thanks for the update. Should we mark whether those metrics are
> >>>> standard/required for KIP-714?
> >>>>
> >>>> Jun
> >>>>
> >>>> On Tue, May 14, 2024 at 7:31 AM Andrew Schofield <
> >> andrew_schofi...@live.com>
> >>>> wrote:
> >>>>
> >>>>> Hi,
> >>>>> I have made a small update to the KIP as a result of testing the new
> >>>>> share consumer with client telemetry (KIP-714).
> >>>>>
> >>>>> I’ve added telemetry metric names to the table of client metrics and
> >>>>> also updated the metric group names so that the resulting client
> >> metrics
> >>>>> sent to the broker have consistent names.
> >>>>>
> >>>>> Thanks,
> >>>>> Andrew
> >>>>>
> >>>>>> On 8 May 2024, at 12:51, Manikumar <manikumar.re...@gmail.com>
> wrote:
> >>>>>>
> >>>>>> Hi Andrew,
> >>>>>>
> >>>>>> Thanks for the KIP.  Great write-up!
> >>>>>>
> >>>>>> +1 (binding)
> >>>>>>
> >>>>>> Thanks,
> >>>>>>
> >>>>>> On Wed, May 8, 2024 at 12:17 PM Satish Duggana <
> >> satish.dugg...@gmail.com>
> >>>>> wrote:
> >>>>>>>
> >>>>>>> Hi Andrew,
> >>>>>>> Thanks for the nice KIP, it will allow other messaging use cases to
> >> be
> >>>>>>> onboarded to Kafka.
> >>>>>>>
> >>>>>>> +1 from me.
> >>>>>>>
> >>>>>>> Satish.
> >>>>>>>
> >>>>>>> On Tue, 7 May 2024 at 03:41, Jun Rao <j...@confluent.io.invalid>
> >> wrote:
> >>>>>>>>
> >>>>>>>> Hi, Andrew,
> >>>>>>>>
> >>>>>>>> Thanks for the KIP. +1
> >>>>>>>>
> >>>>>>>> Jun
> >>>>>>>>
> >>>>>>>> On Mon, Mar 18, 2024 at 11:00 AM Edoardo Comar <
> >> edoardli...@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Thanks Andrew,
> >>>>>>>>>
> >>>>>>>>> +1 (binding)
> >>>>>>>>>
> >>>>>>>>> Edo
> >>>>>>>>>
> >>>>>>>>> On Mon, 18 Mar 2024 at 16:32, Kenneth Eversole
> >>>>>>>>> <kevers...@cloudflare.com.invalid> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi Andrew
> >>>>>>>>>>
> >>>>>>>>>> + 1 (Non-Binding)
> >>>>>>>>>>
> >>>>>>>>>> This will be great addition to Kafka
> >>>>>>>>>>
> >>>>>>>>>> On Mon, Mar 18, 2024 at 8:27 AM Apoorv Mittal <
> >>>>> apoorvmitta...@gmail.com>
> >>>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Hi Andrew,
> >>>>>>>>>>> Thanks for writing the KIP. This is indeed going to be a
> valuable
> >>>>>>>>> addition
> >>>>>>>>>>> to the Kafka, excited to see the KIP.
> >>>>>>>>>>>
> >>>>>>>>>>> + 1 (Non-Binding)
> >>>>>>>>>>>
> >>>>>>>>>>> Regards,
> >>>>>>>>>>> Apoorv Mittal
> >>>>>>>>>>> +44 7721681581
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> On Sun, Mar 17, 2024 at 11:16 PM Andrew Schofield <
> >>>>>>>>>>> andrew_schofield_j...@outlook.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> Hi,
> >>>>>>>>>>>> I’ve been working to complete KIP-932 over the past few months
> >> and
> >>>>>>>>>>>> discussions have quietened down.
> >>>>>>>>>>>>
> >>>>>>>>>>>> I’d like to open the voting for KIP-932:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-932%3A+Queues+for+Kafka
> >>>>>>>>>>>>
> >>>>>>>>>>>> Thanks,
> >>>>>>>>>>>> Andrew
>
>
>

Reply via email to