[ 
https://issues.apache.org/jira/browse/KAFKA-16622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17842119#comment-17842119
 ] 

Greg Harris commented on KAFKA-16622:
-------------------------------------

To clarify your specific points:

> but the problem here is that if the consumer never fully catches up once, we 
> will never have a checkpoint.

If the consumer never catches up later than the most recent MM2 checkpoint task 
restart, it will not have a checkpoint. In the above example, it needed to get 
past 9999.

> If as initial state the 
>{color:#000000}OffsetSyncStore.{color}{color:#871094}offsetSyncs 
>{color}contained a distribution of {color:#000000}OffsetSync rather than just 
>multiple copies of the last {color}{color:#000000}OffsetSync , Checkpoints 
>would be computed earlier I think{color}

{color:#000000}This is the effect a solution to KAFKA-15905 would have. If we 
can restore the state of the `checkpointsPerConsumerGroup` variable, then it 
will be safe to keep those offset syncs in the sync store.{color}

> Mirromaker2 first Checkpoint not emitted until consumer group fully catches 
> up once
> -----------------------------------------------------------------------------------
>
>                 Key: KAFKA-16622
>                 URL: https://issues.apache.org/jira/browse/KAFKA-16622
>             Project: Kafka
>          Issue Type: Bug
>          Components: mirrormaker
>    Affects Versions: 3.7.0, 3.6.2, 3.8.0
>            Reporter: Edoardo Comar
>            Priority: Major
>         Attachments: connect.log.2024-04-26-10.zip, 
> edo-connect-mirror-maker-sourcetarget.properties
>
>
> We observed an excessively delayed emission of the MM2 Checkpoint record.
> It only gets created when the source consumer reaches the end of a topic. 
> This does not seem reasonable.
> In a very simple setup :
> Tested with a standalone single process MirrorMaker2 mirroring between two 
> single-node kafka clusters(mirromaker config attached) with quick refresh 
> intervals (eg 5 sec) and a small offset.lag.max (eg 10)
> create a single topic in the source cluster
> produce data to it (e.g. 10000 records)
> start a slow consumer - e.g. fetching 50records/poll and pausing 1 sec 
> between polls which commits after each poll
> watch the Checkpoint topic in the target cluster
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9192 \
>   --topic source.checkpoints.internal \
>   --formatter org.apache.kafka.connect.mirror.formatters.CheckpointFormatter \
>    --from-beginning
> -> no record appears in the checkpoint topic until the consumer reaches the 
> end of the topic (ie its consumer group lag gets down to 0).



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

Reply via email to