Skip to content
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

executor: Fix IndexMergeReader works incorrectly under RC isolation level (#21208) #21253

Merged
merged 3 commits into from
Nov 25, 2020

Conversation

ti-srebot
Copy link
Contributor

cherry-pick #21208 to release-4.0


What problem does this PR solve?

Issue Number: close #21151

Problem Summary: When IndexMerge is used in a RC transaction, it may not see the latest committed write, because it forgot
to refresh forUpdateTS..

What is changed and how it works?

What's Changed:

The refreshForUpdateTSForRC invoking is moved to getSnapshotTS function. A parameter forTxnRead is added to getSnapshotTS, and when it's false it doesn't need to refresh it. So for ChecksumTable the ts refreshing can be skipped. This is a try to avoid forgetting refreshing for update ts for new reader executors in the future.

Related changes

  • Need to cherry-pick to the release branch
    • Release 4.0

Check List

Tests

  • Unit test

Release note

  • Fix the issue that when Index Merge is used in a transaction with RC isolation level, the result may be incorrect.

Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot
Copy link
Contributor Author

@MyonKeminta you're already a collaborator in bot's repo.

Signed-off-by: MyonKeminta <MyonKeminta@users.noreply.github.com>
@cfzjywxk
Copy link
Contributor

LGTM

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Nov 25, 2020
Copy link
Contributor

@lzmhhh123 lzmhhh123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ti-srebot ti-srebot added status/LGT2 Indicates that a PR has LGTM 2. and removed status/LGT1 Indicates that a PR has LGTM 1. labels Nov 25, 2020
@lzmhhh123
Copy link
Contributor

/merge

@ti-srebot
Copy link
Contributor Author

Sorry @lzmhhh123, this branch cannot be merged without an approval of release maintainers

@ti-srebot ti-srebot added status/LGT3 The PR has already had 3 LGTM. and removed status/LGT2 Indicates that a PR has LGTM 2. labels Nov 25, 2020
@SunRunAway
Copy link
Contributor

/merge

@ti-srebot
Copy link
Contributor Author

Your auto merge job has been accepted, waiting for:

  • 21146
  • 21238
  • 21283
  • 21079
  • 21273

@ti-srebot ti-srebot added the status/can-merge Indicates a PR has been approved by a committer. label Nov 25, 2020
@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot ti-srebot merged commit 6655840 into pingcap:release-4.0 Nov 25, 2020
@SunRunAway SunRunAway deleted the release-4.0-d12eb1b17464 branch November 26, 2020 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/executor sig/execution SIG execution sig/transaction SIG:Transaction status/can-merge Indicates a PR has been approved by a committer. status/LGT3 The PR has already had 3 LGTM. type/4.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants