Sylwester Lachiewicz created FLINK-40140:
--------------------------------------------

             Summary: Extract reader recovery gating from 
DynamicKafkaSourceEnumerator into a ReaderRecoveryCoordinator
                 Key: FLINK-40140
                 URL: https://issues.apache.org/jira/browse/FLINK-40140
             Project: Flink
          Issue Type: Improvement
          Components: Connectors / Kafka
            Reporter: Sylwester Lachiewicz


DynamicKafkaSourceEnumerator (~1,200 lines) accumulated three interacting 
pieces of recovery gating state with FLINK-39980: 
initialReaderRegistrationPending, pendingReportedSplitsByReader, and 
pendingMetadataUpdateReaders. The gating semantics (when to defer split 
assignment and metadata update events during recovery) are implicit in field 
interactions spread across several methods, and cannot be tested without 
driving the whole enumerator.

 

Proposal: extract this state into a dedicated ReaderRecoveryCoordinator 
collaborator with intent-revealing methods (hasPendingRecovery, 
shouldDeferMetadataUpdateEvents, drainReportedSplits, 
drainDeferredMetadataUpdateReaders) covered by direct unit tests. No behavior 
change intended; orchestration stays in the enumerator.

 

This is preparatory cleanup toward further decomposition of the enumerator 
(e.g. bounded-mode no-more-splits termination signaling), whose coupling 
contributed to the idle-reader hang observed in 
SourceTestSuiteBase#testIdleReader.



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

Reply via email to