Description
Context:
DefinitionReader.getDefinitionEngines is currently implemented in an inefficient way when there are multiple versions present for a particular definition as it does not set a limit for the search results entities and also sends it's request to the event process definition index, where engines are not relevant.
Given:
I have 500 reports based on definitions with many versions (e.g. 50)
When:
I query these reports via the /entities endpoint (private or collection based)
Then:
The response takes significantly longer than for definitions with just a single version (e.g. single version 4 seconds for 500 reports, 50 versions 60 seconds)
Expected:
The response time for 500 reports should not be bigger than 5 seconds. The count of definition versions should have nearly no impact on the report entities response time.
AT:
- DefinitionReader.getDefinitionEngines sets limit=0 to not return any search results as only the aggregation result is relevant
- DefinitionReader.getDefinitionEngines is executed on the PROCESS_DEFINITION_INDEX_NAME only and not on the EVENT_PROCESS_DEFINITION_INDEX_NAME as only the first contains engine specific definitions
- a performance test verifies the number of definition versions has no significant impact on the response time of the /entities endpoints