Parallel threaded steps with Hibernate/JPA
We are currently working with a Spring Batch-based ETL process that uses Hibernate via JPA. We are struggling to improve the step throughput performance and would like to implement multi-threaded steps using task executors. Our attempts to implement these steps using the Spring Batch parallel step example failed, and we've been able to multi-thread these steps only by pushing all Hibernate activities into the step Writer phase.
When we do this, we find that the processors are in fact multi-threading, but the Writer appears to be limited to a single database connection and rapidly becomes the bottleneck in our step process.
I would be interested to hear from anyone who has successfully implemented this pattern, and what steps were necessary to make this happen successfully. For what it's worth, we found the resources below to be helpful in reaching our current position:
Thanks in advance for any help or insights you can offer!