tiflow
tiflow copied to clipboard
sink(ticdc): limit the number of transactions cached in a mysql worker (#10892)
This is an automated cherry-pick of #10892
What problem does this PR solve?
Issue Number: close #10896
What is changed and how it works?
- Remove the Add method of
Txn.Worker
to reduce interdependencies between modules. - Use the method of conflictDetector to receive event in
Txn.Worker
. - Implement
causality.worker
that support different batch control policies.
Check List
Tests
In the workload skew case, the maximum performance improvement after optimization is about 300% ~ 1000%.
- Manual test (add detailed scripts or steps below)
- Workload: sysbench random update
- Before #10376
- #10376
- With this pr
- Before #10376
Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`Fix the issue that workload could not be evenly distributed among different mysql sink workers in some scenarios`.
/retest
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: CharlesCheung96
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~OWNERS~~ [CharlesCheung96]
Approvers can indicate their approval by writing /approve
in a comment
Approvers can cancel approval by writing /approve cancel
in a comment
/retest
/retest
/retest
@ti-chi-bot: The following test failed, say /retest
to rerun all failed tests or /retest-required
to rerun all mandatory failed tests:
Test name | Commit | Details | Required | Rerun command |
---|---|---|---|---|
pull-cdc-integration-mysql-test | c68c96e018b0c98276c7b4965fab7f07cdf78c5d | link | true | /test cdc-integration-mysql-test |
Full PR test history. Your PR dashboard.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.
/retest