Performance test consisted of the following:
1. FULL history level
2. Process looks like this:
BpmnModelInstance process = Bpmn.createExecutableProcess("process")
.startEvent()
.serviceTask()
.camundaClass(NoopDelegate.class.getName())
.camundaAsyncAfter()
.serviceTask()
.camundaClass(UpdateVarDelegate.class.getName())
.camundaAsyncAfter()
.serviceTask()
.camundaClass(DeleteVarDelegate.class.getName())
.endEvent()
.done();
3. Process is started with 500 process variables. 1st Service task does nothing, but the transaction is committed after it is completed (asyncAfter). 2nd service task update all 500 process variables with new values and the transaction is committed afterwards. 3rd service task removes all the variables and process finishes.
The testing was done with the help of QA Performance test suite. It was running the test in 2 threads with 50 repeations. The result are the following:
- |
Oracle 12 |
Mysql 5.7.17 |
SQL Server 2014 |
SIMPLE mode |
196696 |
135528 |
264003 |
BATCH mode |
58012 |
128714 |
94147 |
It looks like MySQL does not distinguish batch and not batch operations, but SQL Server and Oracle do.
Performance test consisted of the following:
1. FULL history level
2. Process looks like this:
3. Process is started with 500 process variables. 1st Service task does nothing, but the transaction is committed after it is completed (asyncAfter). 2nd service task update all 500 process variables with new values and the transaction is committed afterwards. 3rd service task removes all the variables and process finishes.
The testing was done with the help of QA Performance test suite. It was running the test in 2 threads with 50 repeations. The result are the following:
It looks like MySQL does not distinguish batch and not batch operations, but SQL Server and Oracle do.