Pause changefeed (the purpose is to manually create synchronization delay), assuming the current time is time1.
Add a new column to t1
alter table t1 add column `updatetime` datetime default current_timestamp;
Resume the changefeed and wait for the changefeed to replicate the above DDL downstream. Assume the current time is time2.
When comparing the upstream and downstream data, it will be found that the values of the newly added column updatetime upstream and downstream inconsistent. The difference in this column upstream and downstream is time2 - time1.
Reason: This is because cdc only synchronizes the DDL itself when synchronizing DDLs that will cause destructive changes like add column, and does not synchronize the row changes caused by the DDL. The reason for doing this is to reduce synchronization latency.
Currently, these inconsistent data can only be manually fixed.
What did you expect to see?
No response
What did you see instead?
As described above.
Versions of the cluster
Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):
(paste TiDB cluster version here)
Upstream TiKV version (execute tikv-server --version):
What did you do?
Reproduction Steps
Create a table t1
Create a changefeed to replicate this table
Insert some data into t1
Pause changefeed (the purpose is to manually create synchronization delay), assuming the current time is time1.
Add a new column to t1
Resume the changefeed and wait for the changefeed to replicate the above DDL downstream. Assume the current time is time2.
When comparing the upstream and downstream data, it will be found that the values of the newly added column updatetime upstream and downstream inconsistent. The difference in this column upstream and downstream is
time2 - time1
.Reason: This is because cdc only synchronizes the DDL itself when synchronizing DDLs that will cause destructive changes like add column, and does not synchronize the row changes caused by the DDL. The reason for doing this is to reduce synchronization latency.
Currently, these inconsistent data can only be manually fixed.
What did you expect to see?
No response
What did you see instead?
As described above.
Versions of the cluster
Upstream TiDB cluster version (execute
SELECT tidb_version();
in a MySQL client):Upstream TiKV version (execute
tikv-server --version
):TiCDC version (execute
cdc version
):