Bug 986741
| Summary: | Too many concurrent long-running database operations hang the server | ||
|---|---|---|---|
| Product: | [Retired] Zanata | Reporter: | Damian Jansen <djansen> |
| Component: | Performance | Assignee: | Patrick Huang <pahuang> |
| Status: | CLOSED UPSTREAM | QA Contact: | Zanata-QA Mailling List <zanata-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | medium | ||
| Version: | development | CC: | sflaniga, zanata-bugs |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-07-31 01:47:39 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 988202 | ||
|
Description
Damian Jansen
2013-07-22 02:01:40 UTC
This can potentially happen with any long-running database operation, including CopyTrans, particularly if streaming ResultSets are used (assuming mysql). We should consider creating a global semaphore which will constrain the number of such DB operations which Zanata will attempt at any one time. Any code which wants to create a streaming ResultSet should acquire a semaphore permit first. The rate limiting task bug988202 will likely fix this - test this when that's done. As part of bug 988202, we do plan to limit each API user's number of active API calls, but that won't prevent multiple TMX exports, especially if performed by multiple users. (Or if the users are using the web for TMX export, rather than the REST API.) We will still need a separate semaphore for the TMX export feature, preferably a configurable one. (CopyTrans no longer holds on to the database connection for long periods of time, so it can probably be ignored here.) But the semaphore still needs to be a shared semaphore, for use by other long-running operations (eg our backup feature, if we implement it). Migrated; check JIRA for bug status: http://zanata.atlassian.net/browse/ZNTA-541 |