Subject Re: [firebird-support] Speed of Firebird v1.52 vs. Interbase v7.1
Author Helen Borrie
At 11:24 PM 7/09/2005 +0000, you wrote:
>Hi All,
>I have switched a client's application from Interbase v7.1 to Firebird
>v1.52. I've made no other changes to the application except the
>database server. The application uses IBO for connectivity.
>One of the users claims that the application is now slower. Could
>there be any truth in this? I've never heard of Firebird being slower
>than Interbase.

Are they running a mullti-processor server, or a mono-processor with
hyperthreading active? If so, the CPUAffinityMask (in firebird.conf) must
be set to 1 for Firebird Superserver. It is meant to default to 1 (which is
the mask for processor 0). Check the setting. If it hasn't been changed,
i.e. is at the (commented) default, try uncommenting the sentence. If it
has been changed, i.e. is uncommented already and is set to a mask that
enables SMP, then change it to a single CPU mask. ( To calculate the mask,
see the 1.5 release notes...) Save; then stop and restart the server.

The symptom of the multi-processor problem with Fb is that the OS
constantly swings the entire thread (in SS, a client's connection is a
thread) back and forth between CPUs - known as "the see-saw effect". If
this is what is happening at your client's site then "impossibly slow" will
be the order of the day.

However, if hyperthreading is in the picture, setting the affinity mask
won't necessarily help. In that case, HT should be disabled in the BIOS.

IB 7.1 has a hack to work around some SMP limitations. Fb doesn't do hacks
- the superserver threading has to be re-architected to take account of the
Windows implementation of SMP and it isn't an overnight thing. Jim Starkey
has done it for Vulcan, so far.
As well, check closely with the clients as to *what* is slower; and in
what way that thing is slow; otherwise you are searching for a needle in a