Share "get_all_host_states" with concurrent requests
The scheduler cache-refresh operation (i.e. the function "get_all_
is very expensive. It needs to build a complete set of host states every time
when called by concurrent requests, causing more than 98% overhead in scheduler
service. However, the concurrent processing of "get_all_
not necessary because they will return (almost) the same results based on the
same database queries and host manager caches.
This blueprint proposes an optimization to let concurrent request reuse the
return value of "get_all_
host states once for all the incoming cache-refresh operations during the
building. This optimization can provide the freshest host states as before,
while minimize the database overhead from scheduler service, and accelerate
concurrent cache-refresh operations. It enables filter scheduler to support
much more compute nodes and heavier schedule workload.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Yingxin
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Share get_all_host_states with concurrent requests