If I have 1 million process instance, shall I use embedded database h2 or any other database like mysql? What will be the performance impact if I use h2?
@007arindam007 H2 database won’t be sufficient, because H2 is in memory database and mostly used for development purposes. Using in memory database would cause higher resource utilization and it’s expensive.
Also when using in memory database you can’t scale the application horizontally (clustered environment), because data won’t be in sync, so it will lead to loosing the ACID properties in the clustered environment.
H2 uses table level locks by default, which may cause deadlocks if the deploy command needs to get a new Id using the DbIdGenerator while performing a deployment.
I would recommend you to use the supported databases by camunda https://docs.camunda.org/manual/7.11/introduction/supported-environments/#databases
Check limitations section in the h2 database document:
Thanks for the answer, aravindhrs
@007arindam007, I think you have to look this
and than, read the sections of camunda documentation that you have doubts.
It’s not just the database causes impact on camunda performance, camunda have many strategies to save variables, history, caching.
So, it depends on how you are configuring your process model.
For me the most important is to know more about(but not just that) history level and task executors(sync vs async).
Hope it helps.