[
https://issues.apache.org/jira/browse/FLINK-39168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thorne resolved FLINK-39168.
----------------------------
Resolution: Fixed
https://github.com/apache/flink-cdc/pull/4288
> improve mysql’s snapshot-split-Cache split.splitId() result in a local
> variable to avoid calling the method twice per iteration:
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: FLINK-39168
> URL: https://issues.apache.org/jira/browse/FLINK-39168
> Project: Flink
> Issue Type: Improvement
> Components: Flink CDC
> Affects Versions: cdc-3.5.0
> Reporter: Thorne
> Priority: Minor
>
> A little improvement when get(split.splitId()) 。
>
> Cache split.splitId() result in a local variable to avoid calling the method
> twice per iteration:
>
>
>
>
> - Clarity: Makes it explicit that both usages refer to the same value,
> improving readability.
>
> - Consistency: Eliminates any theoretical risk if splitId() were ever
> changed to a non-pure method in the future.
> - Minor efficiency: Avoids a redundant method dispatch on every iteration
> of the loop.
>
> {code:java}
> // split.splitId()
> for (MySqlSchemalessSnapshotSplit split : assignedSnapshotSplit) {
> BinlogOffset binlogOffset = splitFinishedOffsets.get(split.splitId()); //
> for the same keys new FinishedSnapshotSplitInfo(
> split.getTableId(),
> split.splitId(), // for the same keys
> split.getSplitStart(),
> split.getSplitEnd(),
> binlogOffset));
>
> }
> // imporve
> for (MySqlSchemalessSnapshotSplit split : assignedSnapshotSplit) {
> String splitId = split.splitId(); // cache once
> BinlogOffset binlogOffset = splitFinishedOffsets.get(splitId);
> finishedSnapshotSplitInfos.add(
> new FinishedSnapshotSplitInfo(
> split.getTableId(),
> splitId,
> split.getSplitStart(),
> split.getSplitEnd(),
> binlogOffset));
> }{code}
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)