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: config gc io limit dynamically #5769
Conversation
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
The implementation may be changed totally because many configurations will be modified dynamically this quarter. So only gc io limiter is supported in this PR. |
/run-integration-common-test |
FYI @NingLin-P , this PR changes GC config dynamically. |
Is it possible that accumulated GC tasks blocks For example, originally we set the value too small and find the speed too slow. Then, we want to use tikv-ctl to make the limit larger. However, the previous GC task runs too slow so that the change limit task cannot run. Can we solve the problem? |
Yes, it's possible. I can create the |
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
/test |
@MyonKeminta @sticnarf PTAL. |
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.
I suggest using RwLock
because the limiter is accessed frequently but seldom changes. (I know the time acquring lock is really small compared to the whole gc operation. It's more reasonable :)
The rest 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
@sticnarf I think changing limit and requesting quota are both write operations. |
But |
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.
Anyway. It's not so important.
LGTM
/merge |
/run-all-tests |
/test |
/merge |
/run-all-tests |
@youjiali1995 merge failed. |
/test |
4 similar comments
/test |
/test |
/test |
/test |
/merge |
Your auto merge job has been accepted, waiting for 5903 |
/run-all-tests |
cherry pick to release-3.0 failed |
cherry pick to release-3.1 failed |
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
Signed-off-by: youjiali1995 <zlwgx1023@gmail.com>
Signed-off-by: youjiali1995 zlwgx1023@gmail.com
What have you changed?
tikv-ctl
can change gc io limit dynamically now. Usage:It's used to limit the write flow when gc influences normal requests, and remove the limit when there is no influence.
What is the type of the changes?
How is the PR tested?
Does this PR affect documentation (docs) or should it be mentioned in the release notes?
Yes. I will file one.
Does this PR affect
tidb-ansible
?No
Refer to a related PR or issue link (optional)
#5263