[CORE-375] Improve multiple project performances Created: 01/Mar/17 Updated: 16/Mar/20 |
|
Status: | New |
Project: | i2b2 Core Software |
Component/s: | None |
Affects Version/s: | None |
Fix Version/s: | TBD |
Type: | Improvement | Priority: | Major |
Reporter: | nicolas paris | Assignee: | Mike Mendis |
Resolution: | Unresolved | Votes: | 0 |
Labels: | None | ||
Remaining Estimate: | Not Specified | ||
Time Spent: | Not Specified | ||
Original Estimate: | Not Specified | ||
Environment: | CENTOS 6.5, java 7 |
Affects View/s: |
Query Tool
|
i2b2 Feature/s: |
Login Authentication
|
Affects Database/s: |
PostgreSQL
|
Affects Web Browser/s: |
All Web Browsers
|
Participant/s: |
Description |
Hi there,
Our instance does have more than 100 projects. We had linear performance decreasing. This was due to pm management cell and more precisely the runGetUserConfiguration method of the ServicesHandler class. The later runs a getRole(user, project) query for each project the user has. This appends while connection. Moreover this appends for each panel while querying, for the logged user, and AGG_SERVICE_ACCOUNT. The major problem is that AGG_SERVICE_ACCOUNT has access to every projects. To recap, for each query, for each panel, run 100 times the role query against the database, build a huge xml, and then run the CRC query. In terms of performance, for 100 projects, each panel wait 10 seconds before sending the CRC query. I have writen a workaround, but I guess this problem should be solved by the core team. My workaround is to bypass the pm queries when username="AGG_SERVICE_ACCOUNT". Because I guess this user is allways supposed to have all access to all project ; no need to check for him. Not sure about the i2b2 version because we made a branch from 1.701, but AFAIK, the problem is still there in the giithub source code in last version Thanks ! |