You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Zakelly Lan (Jira)" <ji...@apache.org> on 2022/09/28 06:53:00 UTC

[jira] [Created] (FLINK-29437) The partition of data before and after the Kafka Shuffle are not aligned

Zakelly Lan created FLINK-29437:
-----------------------------------

             Summary: The partition of data before and after the Kafka Shuffle are not aligned
                 Key: FLINK-29437
                 URL: https://issues.apache.org/jira/browse/FLINK-29437
             Project: Flink
          Issue Type: Bug
          Components: API / DataStream
    Affects Versions: 1.15.2
            Reporter: Zakelly Lan
             Fix For: 1.16.0
         Attachments: image-2022-09-28-14-32-28-116.png, image-2022-09-28-14-35-47-954.png

I notice that the key group range in consumer side of Kafka Shuffle is not aligned with the producer side, there are two problems:
 # The data partitioning of the sink(producer) is exactly the same way as a keyed stream that as the same maximum parallelism as the number of kafka partitions does, but in consumer side the number of partitions and key groups are not the same.
 # There is a distribution of assigning kafka partitions to consumer subtasks (See KafkaTopicPartitionAssigner#assign), but the producer of Kafka Shuffle simply assume the partition index equals the subtask index. e.g. !image-2022-09-28-14-32-28-116.png|width=1133,height=274!

My proposed change:
 # Set the max parallelism of the key stream in consumer size as the number of kafka partitions. 
 # Use the same method when assigning kafka partitions to consumer subtasks to maintain a map from subtasks to kafka partitions, which is used by the producer to insert into the right partition for data for a subtask. i.e. !image-2022-09-28-14-35-47-954.png|width=1030,height=283!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)