Performance improvement by using firebird client from cvs head
He doubled his performance by just switching the firebird client :
We’ve just built and tested ‘libfbclient.so’ from the head branch and tested
it against the release version 2.0.3. In other words, we only switched out
the client library, and left the database server itself intact at version
2.0.3.
The performance improvement is huge:
fbclient-head: 6% processing time spent in ‘futex’
fbclient-2.0.3: 75% processing time spent in ‘futex’
Our throughput almost *doubled* to 1000 TPS. And I think that’s the most we’re likely to see on this 8-core system.
To be certain, we tested by switching back and forth between fbclient
versions, with no changes to anything else in the system.
So the fbclient mutex in 2.0.3 is a serious scalability bottleneck. Regardless
of how many CPUs you have, if you run around 3 threads wide-open they’ll
spend most of their time waiting on that mutex.
[Ed. Note] The performance enhancement is valid only for highly multi-threaded client applications. It has no effect in most of the usual (single thread) applications.