-
Notifications
You must be signed in to change notification settings - Fork 14.5k
KAFKA-17247: Revised share group record schemas #16786
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR @AndrewJSchofield. LGTM.
3f161ec
to
a4e3730
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. the failed streams tests are fixed by #16857 and one small question is left.
BTW, there are many similar code. I guess that is the side effect of reducing the complexity for coordinator framework :(
(ShareGroupCurrentMemberAssignmentValue) Utils.messageOrNull(value) | ||
); | ||
break; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pardon me, why ShareGroupStatePartitionMetadataValue
(version 15) does not join this party? or it is a future work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's in a later PR (possibly AK 4.1). That record type will be used to keep track of which partitions are being tracked by the share coordinator. I'll update KIP-932 with these revised definitions soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AndrewJSchofield : Thanks for the PR. Left a couple of comments.
{ "name": "TopicId", "type": "uuid", "versions": "0+", | ||
"about": "The topic identifier." }, | ||
{ "name": "TopicName", "type": "string", "versions": "0+", | ||
{ "name": "Topics", "versions": "0+", "type": "[]TopicMetadata", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This matches ConsumerGroupPartitionMetadataValue for tracking the last know topic/partition metadata. However, InitializedTopics
and DeletingTopics
were designed for keeping track of the pending state needed for the Persister. How is the functionality achieved now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's because the previous ShareGroupPartitionMetadata
in the KIP has become the new ShareGroupStatePartitionMetadata
. This is because the pattern is that every record in KIP-848 which has the name ConsumerGroupXXXX
has an equivalent ShareGroupXXXX
, and ConsumerGroupPartitionMetadata
needed an equivalent called ShareGroupPartitionMetadata
. Thus, I needed a new name for the previous ShareGroupPartitionMetadata
, but the way it works has not changed. I will update the KIP shortly.
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/Assignment.java
Outdated
Show resolved
Hide resolved
the failed tests are traced by https://issues.apache.org/jira/browse/KAFKA-15071 https://issues.apache.org/jira/browse/KAFKA-17265 https://issues.apache.org/jira/browse/KAFKA-10725 https://issues.apache.org/jira/browse/KAFKA-16634 https://issues.apache.org/jira/browse/KAFKA-16024 https://issues.apache.org/jira/browse/KAFKA-17334 I run the following command to test the failed tests on my local.
all pass. will merge this PR |
In KIP-932, the group coordinator does not persist assignments for share groups. While this sounds like a good idea in terms of minimising overhead for data which doesn't strictly need to be recoverable, it significantly adds to the complexity of working with the coordinator framework.
This PR revises the definitions of the share group record schemas following more closely the schemas used for consumer groups, and eliminating the need to maintain soft state alongside the group coordinator's timeline structure.
Committer Checklist (excluded from commit message)