Bill Bejeck created KAFKA-7758:
----------------------------------
Summary: When Naming a Repartition Topic with Aggregations Reuse
Repartition Graph Node for Multiple Operations
Key: KAFKA-7758
URL: https://issues.apache.org/jira/browse/KAFKA-7758
Project: Kafka
Issue Type: Improvement
Components: streams
Affects Versions: 2.1.0
Reporter: Bill Bejeck
Assignee: Bill Bejeck
Fix For: 2.2.0
When performing aggregations that require repartitioning and the repartition
topic name is specified, and using the resulting {{KGroupedStream}} for
multiple operations i.e.
{code:java}
final KGroupedStream<String, String> kGroupedStream = builder.<String,
String>stream("topic").selectKey((k, v) ->
k).groupByKey(Grouped.as("grouping"));
kGroupedStream.windowedBy(TimeWindows.of(Duration.ofMillis(10L))).count();
kGroupedStream.windowedBy(TimeWindows.of(Duration.ofMillis(30L))).count();
{code}
If optimizations aren't enabled, Streams will attempt to build two repartition
topics of the same name resulting in a failure creating the topology.
However, we have enough information to re-use the existing repartition node via
graph nodes used for building the intermediate representation of the topology.
This ticket will make the
behavior of reusing a {{KGroupedStream}} consistent regardless if optimizations
are turned on or not.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)