Details
-
Improvement
-
Status: New
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
CENTOS 6.5, java 7
-
Query Tool
-
Login Authentication
-
PostgreSQL
-
All Web Browsers
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 !
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 !