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

ReadMode: support filtering out slow nodes to improve availabilities on Read workloads #670

Closed
LykxSassinator opened this issue Jan 17, 2023 · 0 comments · Fixed by #671
Closed

Comments

@LykxSassinator
Copy link
Contributor

LykxSassinator commented Jan 17, 2023

Development description

This feature is used to improve the availability on Read workloads when there exists slow nodes in the TiKV cluster.
In current stage, in a single AZ, the Read availability will be damaged when there exists slow TiKV nodes whose processing progress is delayed or hung by CPU / Disk IO, even though we have optional "ReplicaReadMode == Leader || Follower || LeaderAndFollower" to redirect Read flows to other nodes. And we do not have an accessible way to recognize slow nodes, making Read flows not to be redirected to these nodes.

So, I try to introduce a simple way / algorithm to detect slow nodes in TiKV cluster(just for TiKV nodes, currently not compatible to TiFlash nodes). And when there exists slow nodes, Client can perceive these slow nodes and do not send Read flows to these nodes to try it best to keep the high availabilities on Read requests. I just call it AutoFollowerRead.
Meanwhile, given that there already exists on Read mode -- ReplicaReadMode == LeaderAndFollower with Round-Robin algorithm to balance Read flows, I just wanna introduce AutoFollowerRead into a new read mode PreferLeader for convenient. That is, AutoFollowerRead is introduced as an enhancement on ReplicaReadMode == PreferLeader.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant