@Override
    public void open(Configuration parameters) throws Exception {
        validator.validate();
        super.open(parameters);
        ThreadFactory threadFactory =
                new ThreadFactoryBuilder().setNameFormat("debezium-engine").build();
        deserializer.open();
        this.executor = Executors.newSingleThreadExecutor(threadFactory);
        this.handover = new Handover();
        this.changeConsumer = new DebeziumChangeConsumer(handover);
        if (metricOption != null) {
            sourceExactlyMetric = new SourceExactlyMetric(metricOption, getRuntimeContext().getMetricGroup());
        }
        if (deserializer instanceof RowDataDebeziumDeserializeSchema) {
            ((RowDataDebeziumDeserializeSchema) deserializer)
                    .setSourceExactlyMetric(sourceExactlyMetric);
        }
        // instantiate checkpointStartTimeMap after restoring from checkpoint
        checkpointStartTimeMap = new HashMap<>();
    }
The map to store the start time of each checkpoint.
inlong-sort/sort-flink/sort-flink-v1.15/sort-connectors/postgres-cdc/src/main/java/org/apache/inlong/sort/postgre/DebeziumSourceFunction.java