Projects:Backgroud Process Cluster Support/PerformanceQA
Introduction
The main performance impact of this project is that now the JobStore store data in the database, as opposed to using the original configuration where the data is stored in memory. As a result of this, now quartz will need to run queries that were not done with the previous single-instance configuration.
Quartz Query Analysis
In this document we have compiled the queries done when performing several scheduler-related operations:
- 5 minutes, 1 cluster instance, all processes unscheduled: To test the queries done by quartz even if there are no process currently executed
- 5 minutes, 2 cluster instances, all processes unscheduled: Same as the previous one but using 2 cluster instances, to measure the impact of each extra cluster instance.
- Scheduling a job, to be run later: compiles the queries done when a new process is scheduled to be executed (only scheduling queries, actual execution not included)
- Executing a job immediately: contains the queries done when executing a job immediately
- 5 minutes, 2 cluster instances, 1 execution every 10 seconds: The test closer to a real client activity, when there are some processes scheduled to be executed regularly.
The impact seems to be quite small. In the most intensive test, where there are two cluster instances that among them execute one backgroud process every 10 second during 5 minutes, the total amount of time spent in the database running quartz queries is less than 60 milliseconds.