This is a structural issue in Quantum.
Two factors contribute to it:
- Some transactions are very long, creating a larger interval when a connection is used before being returned to the pool
- Current db pooling code does not work well with nested transaction and causes a distinct connection to be taken from the pool for each subtransaction. We are moving to oslo DB pooling which will solve this part of the issue.
I reckon that migrating to oslo DB will make things a lot more resilient.
Sorting out usage of DB transactions in Quantum code might take longer.
This is a structural issue in Quantum.
Two factors contribute to it:
- Some transactions are very long, creating a larger interval when a connection is used before being returned to the pool
- Current db pooling code does not work well with nested transaction and causes a distinct connection to be taken from the pool for each subtransaction. We are moving to oslo DB pooling which will solve this part of the issue.
I reckon that migrating to oslo DB will make things a lot more resilient.
Sorting out usage of DB transactions in Quantum code might take longer.