Firebird Docset → Firebird Database Docs → Firebird 1.0 Quick Start → Classic or Superserver? |
Firebird comes in two flavors, called architectures: Classic Server and Superserver. On Windows, only Superserver is available (at least for 1.0 versions) so you can skip this section, but if you're installing on Linux you're faced with the choice. Which one is better? Well, that depends on your situation. A short overview of the most important differences follows.
Table 1. Firebird 1.0 Classic Server vs. Superserver
Classic Server |
Superserver |
---|---|
Only available on Linux. |
Available on both Windows and Linux. |
Creates a process for each client connection, each with its own cache. Less resource use if the number of connections is low. |
Single server process with a separate thread for each connection. Shared cache space. More efficient if the number of simultaneous connections grows. |
Permits fast, direct I/O to database files for Linux local connections. |
On Linux, local connections are made network-style, via localhost (often implicitly). On Windows, this is optional; you can also make direct local connections, but these are not as fast as the “Classic” ones on Linux and also less safe. |
Server must run as root. This poses a risk if the server were to be hacked or contained a severe bug. (Note: in Firebird 1.5 this is no longer the case.) |
Server can run as non-root user, e.g. firebird. This limits the damage in case of malfunctioning (by hack or otherwise). |
No Services Manager. Tasks like backup/restore, user management, stats etc. have to be performed locally using the client tools (small separate executables) that come with Firebird. |
Features a Services Manager enabling you to perform certain tasks (backup/restore, user management, stats, etc.) programmatically. You can connect to the Services Manager over the network and thus perform these tasks remotely. |
SMP (symmetrical multi-processor) support. Better performance in case of a small number of multiple connections that do not influence each other. |
No SMP support. On multi-processor Windows machines, performance can even drop dramatically as the OS switches the process between CPUs. To prevent this, set the CPU_AFFINITY parameter in the configuration file ibconfig. |
As you can see, neither of the architectures is better in all respects. This is hardly surprising: we wouldn't maintain two architectures if one of them was an all-fronts loser.
If you're still not sure what to choose (maybe you find all this tech talk a little overwhelming), just pick one or the other. In most circumstances, chances are that you won't notice a performance difference. Besides, you can always switch to the other architecture later; your applications and databases will keep functioning (except if they call the Services Manager and you switch to Classic).
Superserver download packages start with FirebirdSS, Classic packages with FirebirdCS. As said, this only goes for Linux.
Firebird Docset → Firebird Database Docs → Firebird 1.0 Quick Start → Classic or Superserver? |