Sergei Morozov created FLINK-37979: -------------------------------------- Summary: Obsolete MySQL CDC snapshot split assigner code Key: FLINK-37979 URL: https://issues.apache.org/jira/browse/FLINK-37979 Project: Flink Issue Type: Technical Debt Components: Flink CDC Affects Versions: cdc-3.4.0 Reporter: Sergei Morozov
There is a redundant condition and a misleading comment in {{MySqlSnapshotSplitAssigner#captureNewlyAddedTables()}} that complicate understanding of the code. The condition {{if (AssignerStatus.isAssigningFinished(assignerStatus))}} is evaluated twice in the method in question: once in the very beginning and once closer to the end. This way, the second evaluation will always result in {{true}} and thus is redundant. h3. Code Change History Prior to FLINK-35859, table discovery would happen in any assigner status, so the condition in the end of the method made sense. Together with adding this condition in the beginning of the method, FLINK-35859 should have removed it from the end. h3. What Exactly is Obsolete # There is a comment saying "if job is still in snapshot reading phase, directly add all newly added tables". Since FLINK-35859, if the job is still in the snapshot reading phase, this code won't be executed. This comment should be removed as misleading. # The second {{if (AssignerStatus.isAssigningFinished(assignerStatus))}} statement. While the {{captureNewlyAddedTables()}} method is running, the assigner status cannot be modified by a different thread because this code is only executed as part of {{MySqlSourceEnumerator#open()}}, i.e. the source in its initialization phase. -- This message was sent by Atlassian Jira (v8.20.10#820010)