Firebird Documentation IndexFirebird 1.5 Quick Start → Classic or Superserver?
Firebird Home Firebird Home Prev: What is in the kit?Firebird Documentation IndexUp: Firebird 1.5 Quick StartNext: Default disk locations

Classic or Superserver?

Firebird comes in two flavors, called architectures: Classic Server and Superserver. Which one should you install? That depends on your situation. A short overview of the most important differences follows.

Table 1. Firebird 1.5 Classic Server vs. Superserver

Classic Server

Superserver

On Linux: fully mature.

On Windows: fully mature as from version 1.5.1.

Fully mature on both Windows and Linux.

Creates a separate process for every client connection, each with its own cache. Less resource use if the number of connections is low.

A single process serves all the connections, using threads to handle requests. Shared cache space. More efficient if the number of simultaneous connections grows.

Permits fast, direct I/O to database files for local connections on Linux. On Windows, you must make local connections network-style, by connecting to localhost.

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.

1.5: Partially implemented Services Manager, supporting tasks like backup/restore, database shutdown etc. over the network. Other service tasks have to be performed locally using the client tools (small separate executables) that come with Firebird.

1.5.1 and up: full Services Manager.

Full Services Manager allows you to perform management tasks (backup/restore, database shutdown, 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 CpuAffinityMask parameter in the configuration file firebird.conf.

Can't use Fiebird events if the server is behind a firewall or if connections are made through a secure tunnel.

Can use Fiebird events under all circumstances. If the server is behind a firewall or if connections are made through a secure tunnel, a specific events port has to be assigned to the RemoteAuxPort variable in firebird.conf, and the firewall or tunnel configured accordingly.


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), use this rule of thumb:

Note that you can always switch to the other architecture later; your applications and databases will keep functioning (except if your apps call unsupported or malfunctioning Services Manager functions in Classic).

For Linux, Superserver download packages start with FirebirdSS, Classic packages with FirebirdCS. For Windows, there is a combined installation package; you choose the architecture during the installation process.

Note

We've not been completely honest with you. Firebird has a third flavor: Embedded Server, but this is an entirely different beast and not intended for your typical client-server setups. Consult the Release Notes for details.

Prev: What is in the kit?Firebird Documentation IndexUp: Firebird 1.5 Quick StartNext: Default disk locations
Firebird Documentation IndexFirebird 1.5 Quick Start → Classic or Superserver?