.*: add compactor for syncer
What problem does this PR solve?
add compactor to compact dml
What is changed and how it works?
# Assuming that UPDATE statement does not update the primary key. If no primary key, choose a UNIQUE NOT NULL Key.
# If UPDATE statement update the primary key or unique key, split it into one DELETE and one INSERT statement.
# We list two successive DMLs of one row and the result that can be compacted. X means this situation will not happen.
INSERT + INSERT => X
INSERT + UPDATE => INSERT
INSERT + DELETE => DELETE
UPDATE + INSERT => X
UPDATE + UPDATE => UPDATE
UPDATE + DELETE => DELETE
DELETE + INSERT => UPDATE
DELETE + UPDATE => X
DELETE + DELETE => X
Check List
Tests
- Integration test
- UT
[REVIEW NOTIFICATION]
This pull request has been approved by:
- Ehco1996
- lance6716
To complete the pull request process, please ask the reviewers in the list to review by filling /cc @reviewer in the comment.
After your PR has acquired the required number of LGTMs, you can assign this pull request to the committer in the list by filling /assign @committer in the comment to help you merge this pull request.
The full list of commands accepted by this bot can be found here.
Reviewer can indicate their review by submitting an approval review. Reviewer can cancel approval by submitting a request changes review.
upgrade failed due to https://github.com/pingcap/dm/issues/1961
seems causality output channel didn't get adjusted
I think causality output channel no need to adjust, because it has no buffer and default queue size 1024 is enough.
Please comment in https://github.com/pingcap/ticdc/pull/3162
/run-unit-test