Does Firebird support SMP?


Short answer:

It does, you need to use Firebird Classic.

Long:

Firebird comes in two different architectures, Classic and SuperServer. Super runs one thread per connection, while Classic runs one process per connection. This makes Classic somewhat heavier on resources, but it enables multiple users to run long-running queries and still not create a bottleneck for short transactions.

Since Firebird doesn't have good SMP support in Super Server, you can use Classic and let your operating system and Firebird lock manager handle things.

Note: Classic was only supported on Linux before, but now there is support for Windows as well.

If you just want to run on one procesor, then you can use SuperServer and set the CPU Affinity setting in firebird.conf file to number of processor you wish to use (for example: 1). This setting has no effect on Linux, where it's left for kernel to decide what to do. There are reports that SuperServer works fine in some SMP Linux kernel configurations.

If you can't get it to work properly on Linux, you can also try to disable one of the CPU cores using a command like this:

echo 0 >> /sys/devices/system/cpu/cpu1/online

To see how many cores are running, you can run the command "top" and press "1" on the keyboard, or view the content of /proc/cpuinfo:

cat /proc/cpuinfo



Do you find this FAQ incorrect or incomplete? Please e-mail us what needs to be changed. To ensure quality, each change is checked by our editors (and often tested on live Firebird databases), before it enters the main FAQ database. If you desire so, the changes will be credited to your name. To learn more, visit our add content page.

If you are a commercial tool maker and your tool features a great way to handle the issue written about in this FAQ, please check out our advertisement page.



All contents are copyright © 2007-2017 FirebirdFAQ.org unless otherwise stated in the text.


Links   Firebird   News   FlameRobin   Home Inventory powered by FB  
Add content   Advertise   About  

Categories
 Newbies
 SQL
 Installation and setup
 Backup and restore
 Performance
 Security
 Connectivity and API
 HOWTOs
 Errors and error codes
 Miscellaneous