-
Suggestion
-
Resolution: Fixed
Description
There's a fallback implementation of ordering issues by custom field which can't be sorted using Lucene.
This will cause n! executions of CustomField.getValue() which causes n! db queries for custom fields which are not loaded using EagerLoadingOfBizCustomFieldPersister (EagerLoadingOfBizCustomFieldPersister has some extra caching for CFs which store their values in customfieldvalues table)
Reproduction scenario
- Create custom field which is not stored in customfieldvalue table.
(I was using lexorank CF with disabled indexing) - Create 25 issues
- Execute jql "ORDER BY <your custom field>"
- Measure, how many times ImmutableCustomField#getValue was called
ER: 25 (one getValue() for each issue)
AR: 125 (much more getValue() than needed)
Proposed solution
Reuse caching of custom field values inside IssueImpl and DocumentIssue
- relates to
-
JRASERVER-68806 Custom Field Value cache can grow indefinitely
- Closed