We have noticed during performances optimization of the Cardano transaction prover that the connections to the SQLite database is a bottleneck. A first prototype showed throughtput increased by a factor of ~x10 when implementing resource pooling on the connections to the database. However, in order to be properly implemented, the resource pooling must be done in a setup where all write queries are implemented with SQL transactions.
What
Implement a connection pooling mechanism for the Cardano transaction repository and remove the performance bottleneck on the Cardano transaction prover.
How
[x] Implement a pooling mechanism for the Cardano transaction repository
[x] Add a configuration parameter for the connection pool size
[x] Use the connection pool size parameter in the devnet
[x] Use the connection pool size parameter in the terraform infrastructure
[x] Use the connection pool size parameter in the CI
Why
We have noticed during performances optimization of the Cardano transaction prover that the connections to the SQLite database is a bottleneck. A first prototype showed throughtput increased by a factor of
~x10
when implementing resource pooling on the connections to the database. However, in order to be properly implemented, the resource pooling must be done in a setup where all write queries are implemented with SQL transactions.What
Implement a connection pooling mechanism for the Cardano transaction repository and remove the performance bottleneck on the Cardano transaction prover.
How