-
Notifications
You must be signed in to change notification settings - Fork 312
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
Limiting concurrent query tasks in datanode #4638
Comments
This is very Interesting. Are we referring to limit the query concurrency in the context of the limit applies to all of the datanodes or just for a single datanode? |
Just for single datanode. The rational is to protect it from overloaded. |
I was thinking about implementing a multi queue type of data structure in mito engine to manage workload. would something like this make sense
|
My idea was straight-forward to include a tokio semaphore on datanode's query interface. |
How about including a db-scope semaphore so that we can limit inflight queries at the db level? |
@waynexia in a distributed setup, it can be difficult to make db-scoped bulkhead accurate. I would suggest to keep it simple as the final solution to protect datanode. |
could i give this a try? |
Sounds good! |
What type of enhancement is this?
Performance
What does the enhancement do?
As suggested by field user, it would be helpful to add a semaphore or something like that to control the queries executed in datanode in parallel.
This can help us to improve quality of service for datanode, when there are a bunch of cpu or memory intensive queries coming concurrently. Experienced users can use this mechanism to protect their datanodes from OOM or overload, based on their load pattern.
Implementation challenges
No response
The text was updated successfully, but these errors were encountered: