-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
ttl: use a pessimistic transaction to finish the job #56516
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #56516 +/- ##
================================================
+ Coverage 73.3698% 75.9269% +2.5571%
================================================
Files 1626 1627 +1
Lines 448852 455007 +6155
================================================
+ Hits 329322 345473 +16151
+ Misses 99364 88884 -10480
- Partials 20166 20650 +484
Flags with carried forward coverage won't be shown. Click here to find out more.
|
/retest |
Signed-off-by: Yang Keao <[email protected]>
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hawkingrei, lcwangchao The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
[LGTM Timeline notifier]Timeline:
|
/retest |
In response to a cherrypick label: new pull request created to branch |
Signed-off-by: ti-chi-bot <[email protected]>
In response to a cherrypick label: new pull request created to branch |
Signed-off-by: ti-chi-bot <[email protected]>
In response to a cherrypick label: new pull request created to branch |
Signed-off-by: ti-chi-bot <[email protected]>
What problem does this PR solve?
Issue Number: close #56422
Problem Summary:
When the job is finished, and at the same time the task is assigned to some TiDB node, it may fail to finish the job.
What changed and how does it work?
Use the pessimistic transaction to finish job. Then the
DELETE ... FROM tidb_ttl_tasks
will blockUPDATE mysql.tidb_ttl_task SET owner_id = ?...
(or in another direction).If the ttl task is removed, it'll finally be removed by
(m *taskManager) checkInvalidTask
in the memory.Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.