Multi-process API Services
Currently Nova API services only spawn green threads to handle different requests (OSAPI-Compute, OSAPI-Volume, OSAPI-metadata, EC2). All green threads are actually being scheduled within one system process, which results in only one processor core can be utilized. As API requests concurrency increase, the throughput doesn't increase because requests pile-up and the response time of each request goes-up very quickly. For example, for OSAPI-Compute, we have data showing current implementation can handle <10 operation/sec no matter how many current users are sending requests. We'd propose configurable multi-process (workers) API services to tackle this issue. Simliar implementation has been added to Swift and Glance. Our internal testing of multi-process model is promising: the throughput of API services has linear gain when # of process increases.
Implementation: https:/
Blueprint information
- Status:
- Complete
- Approver:
- Vish Ishaya
- Priority:
- Medium
- Drafter:
- Huang Zhiteng
- Direction:
- Approved
- Assignee:
- Huang Zhiteng
- Definition:
- Approved
- Series goal:
- Accepted for folsom
- Implementation:
- Implemented
- Milestone target:
- 2012.2
- Started by
- Thierry Carrez
- Completed by
- Huang Zhiteng
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
blueprint multi-process-
Looks like the review expired. Please resubmit it so we can continue the process.
Zhiteng: Already re-submit patches for review.
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Add multi-process support for API services
QA:
----
Internel - improved multiprocessing with green threads
Functional Test impact - None
Let QA know if it otherwise.