-
Notifications
You must be signed in to change notification settings - Fork 286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changefeed Fails to Replicate 'Drop Primary Key' DDL of a table that only has the dropped Primary key as valid indexes. #10890
Comments
😇 How to reproduce? First:
And then:
|
WorkaroundThe current workaround to this issue involves setting SolutionSolution 1:One potential solution is to replicate the Solution 2:Another possible solution is as follows: |
@benmeadowcroft What do you think about @asddongmen 's suggestion? BTW, I prefer solution 2. Because data lost is a more serious situation. |
@flowbehappy @asddongmen I see the benefits of solution 2 as well, though we will have to ensure the process for transitioning indexes on a table, without incurring interruption of the change feed, is well documented. For example, does dropping one index and adding another index in the same transaction avoid this problem? Do we recommend they add the second index beforehand, and then later drop the original index? Etc. We will also need to ensure that the changefeed UX on TiDB Cloud allow for the configuration settings needed to resolve this issue. |
Thank you for your valuable input.
The TiDB does not support executing multiple DDL in a same transaction.
Yes, this is a feasible way to avoid this problem. We can include this in the documentation. |
To do list:
|
/found customer |
commit c092599 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Wed Jun 12 00:26:59 2024 +0800 pkg/config, sink(ticdc): support output raw change event for mq and cloud storage sink (pingcap#11226) (pingcap#11290) close pingcap#11211 commit 3426e46 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Tue Jun 11 19:40:29 2024 +0800 puller(ticdc): fix wrong update splitting behavior after table scheduling (pingcap#11269) (pingcap#11282) close pingcap#11219 commit 2a28078 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Tue Jun 11 16:40:37 2024 +0800 mysql(ticdc): remove error filter when check isTiDB in backend init (pingcap#11214) (pingcap#11261) close pingcap#11213 commit 2425d54 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Tue Jun 11 16:40:30 2024 +0800 log(ticdc): Add more error query information to the returned error to facilitate users to know the cause of the failure (pingcap#10945) (pingcap#11257) close pingcap#11254 commit 053cdaf Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Tue Jun 11 15:34:30 2024 +0800 cdc: log slow conflict detect every 60s (pingcap#11251) (pingcap#11287) close pingcap#11271 commit 327ba7b Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Tue Jun 11 11:42:00 2024 +0800 redo(ticdc): return internal error in redo writer (pingcap#11011) (pingcap#11091) close pingcap#10124 commit d82ae89 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Mon Jun 10 22:28:29 2024 +0800 ddl_puller (ticdc): handle dorp pk/uk ddl correctly (pingcap#10965) (pingcap#10981) close pingcap#10890 commit f15bec9 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Fri Jun 7 16:16:28 2024 +0800 redo(ticdc): enable pprof and set memory limit for redo applier (pingcap#10904) (pingcap#10996) close pingcap#10900 commit ba50a0e Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Wed Jun 5 19:58:26 2024 +0800 test(ticdc): enable sequence test (pingcap#11023) (pingcap#11037) close pingcap#11015 commit 94b9897 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Wed Jun 5 17:08:56 2024 +0800 mounter(ticdc): timezone fill default value should also consider tz. (pingcap#10932) (pingcap#10946) close pingcap#10931 commit a912d33 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Wed Jun 5 10:49:25 2024 +0800 mysql (ticdc): Improve the performance of the mysql sink by refining the transaction event batching logic (pingcap#10466) (pingcap#11242) close pingcap#11241 commit 6277d9a Author: dongmen <20351731+asddongmen@users.noreply.github.com> Date: Wed May 29 20:13:22 2024 +0800 kvClient (ticdc): revert e5999e3 to remove useless metrics (pingcap#11184) close pingcap#11073 commit 54e93ed Author: dongmen <20351731+asddongmen@users.noreply.github.com> Date: Wed May 29 17:43:22 2024 +0800 syncpoint (ticdc): make syncpoint support base64 encoded password (pingcap#11162) close pingcap#10516 commit 0ba9329 Author: Ti Chi Robot <ti-community-prow-bot@tidb.io> Date: Wed May 29 09:07:21 2024 +0800 (redo)ticdc: fix the event orderliness in redo log (pingcap#11117) (pingcap#11180) close pingcap#11096 Signed-off-by: qupeng <qupeng@pingcap.com>
What did you do?
When a table with a primary key (PK) is replicated by Changefeed, the 'Drop Primary Key' DDL command of it is not replicated as expected.
This resulted in the subsequent Add Primary Key operation failing to replicate because the table downstream still retained the old Primary Key.
What did you expect to see?
Both Drop PK and Add PK DDL can be replicated.
What did you see instead?
as 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
):(paste TiKV version here)
TiCDC version (execute
cdc version
):v8.0.0
The text was updated successfully, but these errors were encountered: