1
votes

I'm trying to improve the performance of my cordapp. I'm using Corda open source with postgres.

One suggestion I got here at stackoverflow was to register states in batch. I implemented this suggestion and added several states in the same transaction. It worked correctly, but the performance was worse than making individual calls, that is, calling a flow for each state.

Can anyone explain to me why batch registration was slower than making individual calls?

And I intend to use Corda Enterprise which will allow me to call flows in parallel. Is the parallel flow solution more recommended than batch states in the same transaction?

1

1 Answers

1
votes

Batching does help while trying to achieve greater throughput. But you need to come up with optimal batch size.

You could find various performance benchmarking results here which could help you have a better idea:

https://docs.corda.net/docs/corda-enterprise/4.5/node/performance-results.html

Figure 2 shows how throughput changes with output states per transaction.

Also, note that most of the results measure the performance of Corda Enterprise, results with Opensource would be different.