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) #18875

Merged
merged 2 commits into from
Aug 9, 2020

Conversation

ti-srebot
Copy link
Contributor

cherry-pick #18385 to release-3.1


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
Copy link
Contributor Author

@coocood, @jackysp, @MyonKeminta, @youjiali1995, PTAL.

@MyonKeminta
Copy link
Contributor

Please fix conflicts

@ti-srebot
Copy link
Contributor Author

@coocood, @jackysp, @MyonKeminta, @youjiali1995, PTAL.

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 the status/LGT1 Indicates that a PR has LGTM 1. label Aug 3, 2020
@jackysp
Copy link
Member

jackysp commented Aug 3, 2020

PTAL @MyonKeminta

@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 Aug 4, 2020
@ti-srebot
Copy link
Contributor Author

@jackysp, @MyonKeminta, @coocood, @youjiali1995, PTAL.

@jackysp
Copy link
Member

jackysp commented Aug 6, 2020

/merge

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

/run-all-tests

@ti-srebot
Copy link
Contributor Author

@ti-srebot merge failed.

@ti-srebot
Copy link
Contributor Author

@jackysp, @MyonKeminta, @coocood, @youjiali1995, PTAL.

@jackysp
Copy link
Member

jackysp commented Aug 9, 2020

/merge

@ti-srebot
Copy link
Contributor Author

/run-all-tests

@ti-srebot ti-srebot merged commit 393c711 into pingcap:release-3.1 Aug 9, 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/3.1-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants