nicktelford commented on code in PR #16922:
URL: https://github.com/apache/kafka/pull/16922#discussion_r1736191677
##########
streams/src/main/java/org/apache/kafka/streams/processor/internals/TaskManager.java:
##########
@@ -519,6 +563,33 @@ private void handleTasksPendingInitialization() {
}
}
+ private void handleInitialTaskReuse(final Map<TaskId, Set<TopicPartition>>
activeTasksToCreate,
+ final Map<TaskId, Set<TopicPartition>>
standbyTasksToCreate,
+ final Map<TaskId, RuntimeException>
failedTasks) {
+ final Map<Task, Set<TopicPartition>> initialStandbyTasksToRecycle =
assignInitialTasks(activeTasksToCreate, logPrefix, topologyMetadata,
changelogReader);
+ final Map<Task, Set<TopicPartition>> initialStandbyTasksToUse =
assignInitialTasks(standbyTasksToCreate, logPrefix, topologyMetadata,
changelogReader);
+
+ // if this was the last local thread to receive its assignment, close
all the remaining Tasks, as they are not needed
+ stateDirectory.closeInitialTasksIfLastAssginedThread();
+
+ // recycle the initial standbys to active, and remove them from the
set of actives that need to be created
+ if (!initialStandbyTasksToRecycle.isEmpty()) {
Review Comment:
It looks like I actually had a bug here, which I believe I've fixed in
https://github.com/apache/kafka/pull/16922/commits/d326ea8142629200ab15c7f38a45e75e95738edd
This makes the if-statement a little less pointless, but only marginally!
I'm choosing to keep it, mainly because it helps to demarcate a "scope" for a
specific piece of behaviour (i.e. what to do when we have some standbys to
recycle).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]