Microsoft, Apple and several Linux distros started to distribute patches to try to fix the recent security flaws found in Intel, AMD and ARM CPUs, in almost every CPU released in the last 20 years. The security flaws are known as Meltdown (affects Intel) and Spectre (affects Intel, AMD and some ARM processors).
The flaw allow softwares to access protected memory areas that should be accessed only by the Operating System kernel, and get sensitive data, like passwords, etc.
There are two problems with the fixes:
- They do not fix 100% of the problem, since it is related on how the CPUs were designed. So far, there is no 100% solution for the problem, and probably it will never exists.
- They impact badly in performance.
In a recent post to firebird-devel list, an user reported that the performance of the Firebird server dropped ~30% after he upgraded its Linux kernel to a version that “fix” those security flaws.
General reports over the internet shows that the most affected areas of the system are CPU, RAM and Disk, so any software that makes intensive use of some of those areas will probably have its performance significantly degraded.
Just to be clear: this performance loss doesn’t affect only Firebird, but any software!
The recording of the HQBird presentation at the 14th Firebird Developers Day is now publicly available here. Speaker’s audio is in English, but there is consecutive translation to Portuguese.
Sinática is pleased to announce the availability of Sinática Monitor 2.2 for Firebird.
This new release includes new features and bugfixes.
Read the details or download now.
I’m glad to announce the availability of Sinática Monitor 2.0 for Firebird.
You may download it right now and read about what’s new in the 2.0 series.
In the last post I commented that I had a test-bed application, based on Apache, PHP and Firebird, and once the problem with the images was solved I could finally start doing the actual performance testing/tuning that I originally wanted to do.
The only major changes from the last post is that I’ve now upgraded the database engine to the “Firebird v2.5 Alpha 1” that supports SMP, and that the application now contains more base data in the tables.
Comparing the performance of several operations in FB2.1, OraXE and SQLServerXE using the vendor specific .NET data access drivers, I discovered Firebird was about 3 times faster than the others which were both nearly the same speed.
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
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.
« Hide it