-
Suggestion
-
Resolution: Fixed
-
~4000 issues in the system
The time to add a user to a group depends heaviliy on the number of issues in the system. This is scary, the operation is already painfully slow and will only get slower and slower over time.
Intuitively one would expect that adding a group to a user is a constant time operation (basically add one line in a link table).
Here is a profile for adding a group to a user. It seems that a complete reindexing is performed, and that it is even done multiple times.
[60375ms] - /jira/secure/admin/user/EditUserGroups.jspa
[60297ms] - EditUserGroups.execute()
[360ms] - Lucene Query
[63ms] - Permission Query
[32ms] - PermissionManager.getProjects()
[16ms] - SchemeManager.hasSchemeAuthority()
[16ms] - SchemeManager.getSchemes()
[15ms] - SchemeManager.getSchemes()
[78ms] - Retrieve From cache/db and filter
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - CacheManager.getValue()
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[15ms] - IssueManager.getIssue()
[15ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - CacheManager.getValue()
[31ms] - Sorting
[15ms] - Comparator.compare()
[19313ms] - IssueIndexManager.reIndexIssues()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - CacheManager.getEntitiesByGenericValue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - CacheManager.getEntitiesByGenericValue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - CacheManager.getEntitiesByGenericValue()
[15ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[562ms] - Lucene Query
[31ms] - Permission Query
[15ms] - PermissionManager.getProjects()
[15ms] - SchemeManager.hasSchemeAuthority()
[15ms] - SchemeManager.getSchemes()
[109ms] - Retrieve From cache/db and filter
[15ms] - IssueManager.getIssue()
[15ms] - IssueManager.getIssue()
[15ms] - CacheManager.getValue()
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - IssueManager.getIssue()
[16ms] - CacheManager.getValue()
[32ms] - Sorting
[16ms] - Comparator.compare()
[16ms] - Comparator.compare()
[39562ms] - IssueIndexManager.reIndexIssues()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - CacheManager.getEntitiesByGenericValue()
[15ms] - List.size()
[15ms] - List.size()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - CacheManager.getEntitiesByGenericValue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - CacheManager.getEntitiesByGenericValue()
[16ms] - List.size()
[16ms] - List.size()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - CacheManager.getEntitiesByGenericValue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - IssueManager.getEntitiesByIssue()
[15ms] - List.size()
[15ms] - List.size()
[15ms] - List.size()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - IssueManager.getEntitiesByIssue()
[16ms] - List.get()
[16ms] - List.get()
[16ms] - List.get()
I don't see why it's necessary to reindex the issues at all, and it certainly should not be done several times.
This bug really gets in the way when we set up a new project with it's own developer group and then try to add developers to that group.
- duplicates
-
JRASERVER-2825 Reindexing is slow
- Closed
- is duplicated by
-
JRASERVER-3221 creating a new user group requires reindex
- Closed
-
JRASERVER-7429 Adding/Removing a group from a user is very slow
- Closed