[
https://issues.apache.org/jira/browse/KAFKA-12258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason Gustafson resolved KAFKA-12258.
-------------------------------------
Resolution: Fixed
> Change the BatchAccumulator to split records into batches
> ---------------------------------------------------------
>
> Key: KAFKA-12258
> URL: https://issues.apache.org/jira/browse/KAFKA-12258
> Project: Kafka
> Issue Type: Sub-task
> Components: controller, core
> Affects Versions: 2.8.0
> Reporter: Alok Nikhil
> Assignee: Jose Armando Garcia Sancio
> Priority: Major
> Labels: kip-500
>
> Modify the `BatchAccumulator.append contract` to support splitting a batch of
> records whose size is greater than the maximum allowed size (of 1048576
> currently) into batches to avoid RaftClient failures such as
> {code:java}
> leader=0, leaderEpoch=0, partitionEpoch=0) at version 0),
> ApiMessageAndVersion(TopicRecord(name='topic-BEHRW9999',
> topicId=6cRudOGO3yqlsu48RwyPSw) at version 0),
> ApiMessageAndVersion(PartitionRecord(partitionId=0,
> topicId=6cRudOGO3yqlsu48RwyPSw, replicas=[1, 2, 0], isr=[1, 2, 0],
> removingReplicas=null, addingReplicas=null, leader=1, leaderEpoch=0,
> partitionEpoch=0) at version 0)] is 1088890, which exceeds the maximum
> allowed batch size of 1048576 Jan 30 00:13:40 ip-10-0-0-254
> kafka-server-start.sh[633637]: at
> org.apache.kafka.raft.internals.BatchAccumulator.append(BatchAccumulator.java:110)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.raft.KafkaRaftClient.scheduleAppend(KafkaRaftClient.java:1885)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.raft.metadata.MetaLogRaftShim.scheduleWrite(MetaLogRaftShim.java:60)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.controller.QuorumController$ControllerWriteEvent.run(QuorumController.java:406)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.common.utils.KafkaEventQueue$EventContext.run(KafkaEventQueue.java:117)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.common.utils.KafkaEventQueue$EventHandler.handleEvents(KafkaEventQueue.java:192)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> org.apache.kafka.common.utils.KafkaEventQueue$EventHandler.run(KafkaEventQueue.java:165)
> Jan 30 00:13:40 ip-10-0-0-254 kafka-server-start.sh[633637]: at
> java.base/java.lang.Thread.run(Thread.java:834) Jan 30 00:13:40 ip-10-0-0-254
> kafka-server-start.sh[633637]: [2021-01-30 00:13:40,277] INFO [Controller
> 3000] Reverting to snapshot 2232 (org.apache.kafka.timeline.SnapshotRegistry)
> {code}
> *Example use-case*: Creating 10,000 topics in a single API call
--
This message was sent by Atlassian Jira
(v8.3.4#803005)