-
Notifications
You must be signed in to change notification settings - Fork 411
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
Batch read-index request by start-ts to reduce time cost under high concurrency scenarios #3971
Conversation
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
/run-all-tests |
/run-unit-test |
/hold |
/run-unit-test |
std::shared_ptr<RawMockReadIndexTask> data; | ||
}; | ||
|
||
struct MockRaftStoreProxy : MutexLockWrap |
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.
Seems we still have no common Mock class for , I wonder if we can move MockRaftStoreProxy
and its auxiliary classes into KVStore, just like MockTiDB
.
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.
Fixed by adding dbms/src/Debug/MockRaftStoreProxy.h
/run-all-tests |
Signed-off-by: Zhigao Tong <[email protected]>
Signed-off-by: Zhigao Tong <[email protected]>
Signed-off-by: Zhigao Tong <[email protected]>
Signed-off-by: Zhigao Tong <[email protected]>
/run-unit-test |
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.
LGTM
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.
LGTM
Signed-off-by: Zhigao Tong <[email protected]>
Signed-off-by: Zhigao Tong <[email protected]>
/run-all-tests |
Coverage for changed files
Coverage summary
full coverage report (for internal network access only) |
/merge |
@solotzg: It seems you want to merge this PR, I will help you trigger all the tests: /run-all-tests You only need to trigger If you have any questions about the PR merge process, please refer to pr process. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
This pull request has been accepted and is ready to merge. Commit hash: 2144bfe
|
Coverage for changed files
Coverage summary
full coverage report (for internal network access only) |
What problem does this PR solve?
Issue Number: close #3555
Problem Summary:
What is changed and how it works?
ts_x
can get result from leader successfully(without region error or locked info). All other read-index task with start-ts <=ts_x
can reuse such result directly. We can sacrifice delay in exchange for concurrency stability.ReadIndexWorker
to collect and batch read-index tasks asynchronously.Benchmark
read_index_runner_count = 1
&read_index_worker_tick_ms = 10
batch-read-index-v1
is the original implementation of read indexasync-read-index
is the new one.batch-read-index-v1
has better performanceCheck List
Tests
Side effects
Documentation
Release note