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

gc_worker: reduce GC scan locks when meeting region cache miss (#18385) #18876

Merged
merged 1 commit into from
Jul 30, 2020

Conversation

ti-srebot
Copy link
Contributor

cherry-pick #18385 to release-4.0


What problem does this PR solve?

Issue Number: close #xxx

Problem Summary:

currently, gc worker will rescan locks when meet region cache miss error which makes slow scan job become more slow.

What is changed and how it works?

What's Changed, How it Works:

when region cache miss error(current is a fake epochNotMatch), it just indicates "maybe region has changed and we need to reload region from PD", we can continue resolve scan lock result if all lock still in that region.

this can help situations like:

  • lock and region hasn't changed but region cache expired
  • lock's region's key range didn't change but maybe add new peer(id is same but confVer or ver changed)
  • all lock has changed from region A to region B

but it didn't help the situation that:

  • lock's region has been split into two region

maybe we can improve it later(to avoid complex modification)

Related changes

  • Need to cherry-pick to the release branch

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No code

Side effects

  • n/a

Release note

  • Reduce GC scan locks when meeting region cache miss

This change is Reviewable

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

/run-all-tests

@ti-srebot ti-srebot added the status/LGT1 Indicates that a PR has LGTM 1. label Jul 30, 2020
Copy link
Member

@jackysp jackysp 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 Jul 30, 2020
@jackysp
Copy link
Member

jackysp commented Jul 30, 2020

/merge

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

Your auto merge job has been accepted, waiting for:

  • 18529

@jackysp
Copy link
Member

jackysp commented Jul 30, 2020

/run-unit-test

@jackysp jackysp merged commit 6055d8b into pingcap:release-4.0 Jul 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/GC status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. type/enhancement The issue or PR belongs to an enhancement. type/4.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants