-
Notifications
You must be signed in to change notification settings - Fork 118
[close #639] reduce lock granularity of RegionStoreClient and PDClient #638
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
[close #639] reduce lock granularity of RegionStoreClient and PDClient #638
Conversation
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Codecov Report
@@ Coverage Diff @@
## master #638 +/- ##
============================================
- Coverage 35.11% 34.86% -0.26%
+ Complexity 1442 1435 -7
============================================
Files 278 278
Lines 17362 17377 +15
Branches 1974 1974
============================================
- Hits 6097 6058 -39
- Misses 10651 10712 +61
+ Partials 614 607 -7
Continue to review full report at Codecov.
|
| if (pdClientWrapper != null) { | ||
| if (leaderUrlStr.equals(pdClientWrapper.getLeaderInfo())) { | ||
| @VisibleForTesting | ||
| public boolean trySwitchLeader(String leaderUrlStr) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method is not Thread-safe, since the value of pdClientWrapper can be changed during statements
| // If we have not used follower forward, try the first follower. | ||
| boolean hasReachNextMember = | ||
| pdClientWrapper != null && pdClientWrapper.getStoreAddress().equals(leaderUrlStr); | ||
| pdClientWrapper.get() != null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same as above, loss of atomicity
| String followerUrlStr = member.getClientUrlsList().get(0); | ||
| followerUrlStr = uriToAddr(addrToUri(followerUrlStr)); | ||
| if (pdClientWrapper != null && pdClientWrapper.getStoreAddress().equals(followerUrlStr)) { | ||
| if (pdClientWrapper.get() != null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same as above, loss of atomicity
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
88be84c to
743415b
Compare
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
08de89c to
5c86cbd
Compare
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
5c86cbd to
d2bf550
Compare
…ests-unlimit-timeout Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Signed-off-by: iosmanthus <myosmanthustree@gmail.com>
Signed-off-by: ti-srebot <ti-srebot@pingcap.com>
|
cherry pick to release-3.3 in PR #642 |
Signed-off-by: iosmanthus myosmanthustree@gmail.com
What problem does this PR solve?
Issue Number: close #639
Problem Description:
This pull request tries to reduce the lock granularity of
ReionStoreClientandPDClient, we might block the requests while under a heavy workload.What is changed and how does it work?
Check List for Tests
This PR has been tested by at least one of the following methods:
Related changes