FirebirdSQL / NETProvider

Firebird ADO.NET Data Provider
https://www.firebirdsql.org/en/net-provider/
Other
152 stars 62 forks source link

Frebird embedded, perfomance degradation over time in multithreaded environment #1166

Open PavelRodnyansky opened 3 months ago

PavelRodnyansky commented 3 months ago

Hello. We are using Firebird Embedded as a read only datasource for a web application and at some point we encountered a problem with application perfomance. After some tests i noticed that firebird provider starting to work very slowly if used in multithreaded environment. Basically if requests are made from 3+ threads in parallel, request execution time grows continiously and never comes back. If thread count is 1 or 2 - no slowdowns are noticeable. I tested provider agains default Firebird server and also didn't noticed any problems even at 50+ threads, so that is probably some weird issue with firebird embedded.

I provided a test example which clearly illustrates the issue, setting threads count to higher value leads to rapid degradation in perfomance.

FIrebirdEmbeddedPerfomanceTest.zip

Tested on Windows10 22H2, firebird 3 and 5 with similar results.