This is an automated email from the ASF dual-hosted git repository.
lucasbru pushed a change to branch kip1071
in repository https://gitbox.apache.org/repos/asf/kafka.git
from ab0df20489a KAFKA-17592; Support for SubscribedTopicsRegex in
ConsumerGroupHeartbeat RPC (#17257)
new 9271d829d05 Very initial (compiling) streams RPCs.
new 4096e719157 StreamsInitialize RPC and some errors
new e13a5d18d72 Define RPCs to perform client-side assignment
new 1be15da2751 Specify AsyncKafkaConsumer interface with Streams for the
Rebalance PoC
new e79b30048b9 Implement StreamsInitialize request manager
new 7a5293a52ef Create and inject StreamsHeartbeatRequestManager
new dd9387faa20 Minor: Test fixes
new 31135af1cbc Define initial record types for the consumer offset topic
new fd4600b9b62 Implement InitStreamsApp RPC in the group coordinator
new 2fa4de23780 Add Assignment class in group coordinator for Streams
new aff4d176073 Minor: Rename TaskId to TaskIds
new 025a0a50c93 Basic heartbeat RPC handler
new 168a1c7f72c Add streams group member
new 1257cb3a95b Define the assignor interface for streams and implement a
simple assignor
new b165df7a7bd Create assignment-related classes for streams groups
new f57440bcb86 Replay all streams-related records
new 76472c7dcfa Get SmokeTestDriverIntegrationTest working
new 61f68434e7e Rebased on AK trunk 2024-07-16
new 33a535d9e74 Update RPCs
new 6ac06566243 Implement DescribeStreamsGroup RPC handling
new 4dc40157ada Rebase on AK trunk 2024-08-15
new 656916309bf Minor: Revert test changes
new ddf464d3b1c StickyTaskAssignor
new ff570e1677a Rename streamsHeartbeatX and streamsInitializeX to
streamsGroupX
new 7c032dc7adb Improve the Streams group initialization handler
new 7e9d6028612 Streams reconciliation logic
new 5138d3df823 Add broker configs for streams group
new d4fb972f45c Rebase on AK trunk 2024-09-25
The 28 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
checkstyle/suppressions.xml | 10 +-
.../consumer/internals/AsyncKafkaConsumer.java | 24 +-
.../internals/ConsumerDelegateCreator.java | 6 +-
.../consumer/internals/RequestManagers.java | 44 +-
.../internals/StreamsAssignmentInterface.java | 296 ++++
.../StreamsGroupHeartbeatRequestManager.java | 628 +++++++
.../StreamsGroupInitializeRequestManager.java | 150 ++
.../events/ApplicationEventProcessor.java | 12 +-
.../errors/StreamsGroupUninitializedException.java | 23 +
.../StreamsInconsistentTopologyException.java | 23 +
.../errors/StreamsInvalidAssignmentException.java | 23 +
.../errors/StreamsInvalidTopologyException.java | 23 +
.../StreamsMissingSourceTopicsException.java | 23 +
.../StreamsShutdownApplicationException.java | 23 +
.../org/apache/kafka/common/protocol/ApiKeys.java | 6 +-
.../org/apache/kafka/common/protocol/Errors.java | 12 +-
.../kafka/common/requests/AbstractRequest.java | 6 +
.../kafka/common/requests/AbstractResponse.java | 6 +
.../requests/StreamsGroupDescribeRequest.java | 98 ++
.../requests/StreamsGroupDescribeResponse.java | 76 +
.../requests/StreamsGroupHeartbeatRequest.java | 88 +
.../requests/StreamsGroupHeartbeatResponse.java | 78 +
.../requests/StreamsGroupInitializeRequest.java | 77 +
.../requests/StreamsGroupInitializeResponse.java | 71 +
.../common/message/OffsetCommitRequest.json | 2 +-
.../common/message/OffsetFetchRequest.json | 4 +-
.../message/StreamsGroupDescribeRequest.json | 29 +
.../message/StreamsGroupDescribeResponse.json | 151 ++
.../message/StreamsGroupHeartbeatRequest.json | 89 +
.../message/StreamsGroupHeartbeatResponse.json | 111 ++
.../message/StreamsGroupInitializeRequest.json | 64 +
.../message/StreamsGroupInitializeResponse.json | 42 +
.../consumer/internals/AsyncKafkaConsumerTest.java | 6 +-
.../consumer/internals/RequestManagersTest.java | 3 +-
.../StreamsGroupHeartbeatRequestManagerTest.java | 382 +++++
.../StreamsGroupInitializeRequestManagerTest.java | 131 ++
.../events/ApplicationEventProcessorTest.java | 6 +-
.../kafka/common/requests/RequestResponseTest.java | 51 +
.../common/runtime/CoordinatorRuntime.java | 5 +
.../common/runtime/CoordinatorTimer.java | 9 +
.../common/runtime/MockCoordinatorTimer.java | 3 +-
.../group/GroupCoordinatorAdapter.scala | 29 +-
core/src/main/scala/kafka/server/KafkaApis.scala | 116 ++
core/src/main/scala/kafka/server/KafkaConfig.scala | 7 +
.../kafka/api/IntegrationTestHarness.scala | 4 +
.../kafka/server/QuorumTestHarness.scala | 6 +-
.../src/test/scala/kafka/utils/TestInfoUtils.scala | 4 +
.../group/GroupCoordinatorAdapterTest.scala | 34 +-
.../scala/unit/kafka/server/KafkaApisTest.scala | 268 +++
.../scala/unit/kafka/server/KafkaConfigTest.scala | 6 +
gradle/spotbugs-exclude.xml | 5 +
.../org/apache/kafka/coordinator/group/Group.java | 1 +
.../kafka/coordinator/group/GroupCoordinator.java | 46 +
.../coordinator/group/GroupCoordinatorConfig.java | 51 +
.../group/GroupCoordinatorRecordHelpers.java | 58 +-
.../coordinator/group/GroupCoordinatorService.java | 118 ++
.../coordinator/group/GroupCoordinatorShard.java | 147 +-
.../coordinator/group/GroupMetadataManager.java | 1784 +++++++++++++++++++-
.../org/apache/kafka/coordinator/group/Utils.java | 28 +
.../group/metrics/GroupCoordinatorMetrics.java | 115 +-
.../metrics/GroupCoordinatorMetricsShard.java | 140 ++
.../coordinator/group/streams/Assignment.java | 129 ++
.../streams/CoordinatorStreamsRecordHelpers.java | 432 +++++
.../group/streams/CurrentAssignmentBuilder.java | 585 +++++++
.../coordinator/group/streams/MemberState.java | 74 +
.../coordinator/group/streams/StreamsGroup.java | 1232 ++++++++++++++
.../group/streams/StreamsGroupMember.java | 751 ++++++++
.../coordinator/group/streams/StreamsTopology.java | 154 ++
.../group/streams/TargetAssignmentBuilder.java | 368 ++++
.../coordinator/group/streams/TopicMetadata.java | 165 ++
.../group/streams/TopologyMetadata.java | 111 ++
.../group/taskassignor/AssignmentMemberSpec.java | 182 ++
.../group/taskassignor/GroupAssignment.java | 67 +
.../coordinator/group/taskassignor/GroupSpec.java | 39 +
.../group/taskassignor/GroupSpecImpl.java | 96 ++
.../group/taskassignor/MemberAssignment.java | 91 +
.../group/taskassignor/MockAssignor.java | 115 ++
.../group/taskassignor/ProcessState.java | 144 ++
.../group/taskassignor/StickyTaskAssignor.java | 437 +++++
.../group/taskassignor/TaskAssignor.java | 45 +
.../group/taskassignor/TaskAssignorException.java | 33 +
.../coordinator/group/taskassignor/TaskId.java | 70 +
.../group/taskassignor/TopologyDescriber.java | 39 +
.../StreamsGroupCurrentMemberAssignmentKey.json | 28 +
.../StreamsGroupCurrentMemberAssignmentValue.json | 50 +
.../message/StreamsGroupMemberMetadataKey.json | 28 +
.../message/StreamsGroupMemberMetadataValue.json | 60 +
.../common/message/StreamsGroupMetadataKey.json | 26 +
.../common/message/StreamsGroupMetadataValue.json | 26 +
.../message/StreamsGroupPartitionMetadataKey.json | 26 +
.../StreamsGroupPartitionMetadataValue.json | 40 +
.../StreamsGroupTargetAssignmentMemberKey.json | 28 +
.../StreamsGroupTargetAssignmentMemberValue.json | 38 +
.../StreamsGroupTargetAssignmentMetadataKey.json | 26 +
.../StreamsGroupTargetAssignmentMetadataValue.json | 26 +
.../common/message/StreamsGroupTopologyKey.json | 26 +
.../common/message/StreamsGroupTopologyValue.json | 61 +
.../group/GroupCoordinatorConfigTest.java | 30 +-
.../group/GroupCoordinatorServiceTest.java | 376 +++++
.../group/GroupCoordinatorShardTest.java | 79 +-
.../group/GroupMetadataManagerTest.java | 644 +++++++
.../group/GroupMetadataManagerTestContext.java | 176 ++
.../kafka/coordinator/group/MockTaskAssignor.java | 46 +
.../group/OffsetMetadataManagerTest.java | 2 +
.../coordinator/group/streams/AssignmentTest.java | 134 ++
.../CoordinatorStreamsRecordHelpersTest.java | 110 ++
.../streams/CurrentAssignmentBuilderTest.java | 728 ++++++++
.../group/streams/StreamsGroupBuilder.java | 99 ++
.../group/streams/StreamsGroupMemberTest.java | 394 +++++
.../group/streams/StreamsGroupTest.java | 763 +++++++++
.../group/streams/StreamsTopologyTest.java | 182 ++
.../group/streams/TargetAssignmentBuilderTest.java | 815 +++++++++
.../group/streams/TaskAssignmentTestUtil.java | 117 ++
.../group/taskassignor/GroupSpecImplTest.java | 72 +
.../group/taskassignor/MockAssignorTest.java | 211 +++
.../group/taskassignor/StickyTaskAssignorTest.java | 1201 +++++++++++++
.../kafka/server/config/AbstractKafkaConfig.java | 1 +
.../org/apache/kafka/streams/GroupProtocol.java | 43 +
.../apache/kafka/streams/KafkaClientSupplier.java | 11 +
.../org/apache/kafka/streams/StreamsConfig.java | 17 +
.../internals/DefaultKafkaClientSupplier.java | 12 +
.../streams/processor/internals/StreamThread.java | 195 ++-
.../internals/StreamsRebalanceListener.java | 3 +
.../streams/processor/internals/TaskManager.java | 6 +-
.../SmokeTestDriverIntegrationTest.java | 89 +-
.../processor/internals/StreamThreadTest.java | 50 +-
.../org/apache/kafka/test/MockClientSupplier.java | 5 +
streams/src/test/resources/log4j.properties | 1 +
.../apache/kafka/streams/TopologyTestDriver.java | 6 +-
129 files changed, 18165 insertions(+), 182 deletions(-)
create mode 100644
clients/src/main/java/org/apache/kafka/clients/consumer/internals/StreamsAssignmentInterface.java
create mode 100644
clients/src/main/java/org/apache/kafka/clients/consumer/internals/StreamsGroupHeartbeatRequestManager.java
create mode 100644
clients/src/main/java/org/apache/kafka/clients/consumer/internals/StreamsGroupInitializeRequestManager.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsGroupUninitializedException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsInconsistentTopologyException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsInvalidAssignmentException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsInvalidTopologyException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsMissingSourceTopicsException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/errors/StreamsShutdownApplicationException.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupDescribeRequest.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupDescribeResponse.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupHeartbeatRequest.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupHeartbeatResponse.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupInitializeRequest.java
create mode 100644
clients/src/main/java/org/apache/kafka/common/requests/StreamsGroupInitializeResponse.java
create mode 100644
clients/src/main/resources/common/message/StreamsGroupDescribeRequest.json
create mode 100644
clients/src/main/resources/common/message/StreamsGroupDescribeResponse.json
create mode 100644
clients/src/main/resources/common/message/StreamsGroupHeartbeatRequest.json
create mode 100644
clients/src/main/resources/common/message/StreamsGroupHeartbeatResponse.json
create mode 100644
clients/src/main/resources/common/message/StreamsGroupInitializeRequest.json
create mode 100644
clients/src/main/resources/common/message/StreamsGroupInitializeResponse.json
create mode 100644
clients/src/test/java/org/apache/kafka/clients/consumer/internals/StreamsGroupHeartbeatRequestManagerTest.java
create mode 100644
clients/src/test/java/org/apache/kafka/clients/consumer/internals/StreamsGroupInitializeRequestManagerTest.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/Assignment.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/CoordinatorStreamsRecordHelpers.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/CurrentAssignmentBuilder.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/MemberState.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/StreamsGroup.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/StreamsGroupMember.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/StreamsTopology.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/TargetAssignmentBuilder.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/TopicMetadata.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/streams/TopologyMetadata.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/AssignmentMemberSpec.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/GroupAssignment.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/GroupSpec.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/GroupSpecImpl.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/MemberAssignment.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/MockAssignor.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/ProcessState.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/StickyTaskAssignor.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/TaskAssignor.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/TaskAssignorException.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/TaskId.java
create mode 100644
group-coordinator/src/main/java/org/apache/kafka/coordinator/group/taskassignor/TopologyDescriber.java
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupCurrentMemberAssignmentKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupCurrentMemberAssignmentValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupMemberMetadataKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupMemberMetadataValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupMetadataKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupMetadataValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupPartitionMetadataKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupPartitionMetadataValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTargetAssignmentMemberKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTargetAssignmentMemberValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTargetAssignmentMetadataKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTargetAssignmentMetadataValue.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTopologyKey.json
create mode 100644
group-coordinator/src/main/resources/common/message/StreamsGroupTopologyValue.json
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/MockTaskAssignor.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/AssignmentTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/CoordinatorStreamsRecordHelpersTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/CurrentAssignmentBuilderTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/StreamsGroupBuilder.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/StreamsGroupMemberTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/StreamsGroupTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/StreamsTopologyTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/TargetAssignmentBuilderTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/streams/TaskAssignmentTestUtil.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/taskassignor/GroupSpecImplTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/taskassignor/MockAssignorTest.java
create mode 100644
group-coordinator/src/test/java/org/apache/kafka/coordinator/group/taskassignor/StickyTaskAssignorTest.java
create mode 100644
streams/src/main/java/org/apache/kafka/streams/GroupProtocol.java