Hi all,
my name is Andrea and I work for an italian company as a software architect.
My company has a customer who is using FusionForge 6.0.4 and who's experimenting some major performance issue.
The platform I am talking has about 600 active projects and more than 700 active users.
3 of these users are some kind of super users. This means they are associated to the majority of these projects (a few more than 400) with a custom role who grants them many privileges (but they are far from having administrative rights).
For these 3 users it takes from 12 to 20 seconds to fulfill any request sent to the platform (even the login action).
After digging into the code and sniffing the communication channel to the db, we found out that every request send THOUSANDS of query to the database (about 3.500).
Anyway, probably because of MySQL cache, this phase tooks no more than 3 seconds.
The real problem stands after this: after the data is retrieved the cpu usage of the core that is fulfilling the request goes immediately up to 100% until the elaboration is over (usually from 9 to 17 seconds).
Almost all queries are something like "SELECT * FROM pforole WHERE roleid=...", which makes me think this issue is related to the new RBAC features you recently added.
Maybe the software is not intended or designed to manage a situation where a single user can have many projects associated to himself, but this is our use case and this is causing severe problems.
NOTE: we did not have this problem with older versions of FusionForge.
We would like to ask you if you know some solution we did not think about.
If there are no solutions we would like to ask you to please think about one and then implement it.
An idea for an evolution could be extending the permissions of global roles, for instance adding rights for docman and file release system (we actually would need only these two).
Though this would be a patch and not a true solution to the problem, this would allow us to remove projects associations from this users and give them global roles for their needings.
I would be very thankful if you kindly give me some support.
Thank you very much!
Andrea
|