[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 !
Generated at Sat Apr 05 12:13:25 UTC 2025 using Jira 8.20.11#820011-sha1:0629dd8d260e3954ece49053e565d01dabe11609.