Firebird Superserver oder Classicserver
Es gibt 2 Arten des Firebird SQL-Servers:
1. Superserver
2. Classicserver
Der SuperServer ist ein multi-threaded Prozeß, d.h. jede Verbindung zur Datenbank wird innerhalb des Serverprozesses als eigener Thread behandelt.
So wird z.B. ein gemeinsamer Cache pro Datenbank verwendet, d.h. der Ressourcenverbrauch ist beim SuperServer in der Regel geringer als bei Classic, jedoch besitzt der SuperServer derweil noch den Nachteil, dass dieser nicht SMP/HT-tauglich ist, d.h. wenn Sie den Nutzen aus mehreren CPUs ziehen möchten, dann ist der SuperServer noch die falsche Wahl.
Der Classic Server hingegen erzeugt für jede Verbindung einen eigenen Prozess, und daher ist diese Architektur von Grund aus SMP/HT-tauglich, weil es dem OS überlassen ist, wie die unterschiedlichen Prozesse (sprich Datenbankverbindungen) auf mehrere (logische) CPUs aufgeteilt werden.
Gerade in einer Umgebung mit sehr vielen aktiven Verbindungen ist der Classic Server besser skalierbar, sprich man kann z.B. eine sehr ressourcenintensive Abfrage ausführen, ohne damit die anderen Verbindungen erheblich zu blockieren.
Der Nachteil von Classic ist, dass dieser erheblich mehr Ressourcen benötigt, da nicht ein Cache pro Datenbank, sondern pro Verbindung verwaltet wird, d.h. hier muss man immer im Hinterkopf haben, dass z.B. das hinaufsetzen des Page Buffers jede Client-Verbindung betrifft, und man damit schneller mal an die Grenzen des verfügbaren Hauptspeichers gelangt.
Das schöne an der Sache ist, dass man z.B. mit dem SuperServer anfangen kann, und später zum Classic migrieren kann, ohne dass man z.B. an der Datenbankdatei etwas ändern muss.
Einfach SuperServer deinstallieren, und Classic installieren.
Wenn man die Newsgroups verfolgt, dann verwendet eigentlich jeder (inklusive die Entwickler), der ein etwas größeren System mit Firebird unter Linux oder Windows verwendet, die Classic Architektur bevorzugt, diese zwar ressourcenintensiver ist (aber was kostet heute schon noch der Hauptspeicher), weil diese einfach besser skalierbar ist.
Wahrscheinlich die bedeutendste Neuerung in Firebird 2.5 ist die SuperClassic Architektur, die eine Kombination aus Super- und Classicserver darstellt, um die Unterstützung von Mehrprozessorsystemen (SMP) zu verbessern. Die neue Architektur kann wie folgt charakterisiert werden:
- Ein dedizierter Serverprozess unter Windows bzw. unter POSIX) für alle Verbindungen (identisch zu Superserver).
- Privater Page- und Metadaten-Cachhe. Das impliziert die identische Berechnung der maximalen Hauptspeichernutzung für das Caching wie bei Classic Server.
- SMP-Fähigkeit für simultane Verbindungen zu einer und mehreren Datenbanken.
- SMP-Fähigkeit bei Sweeps und Services-API-Requests.
- Kein exklusiver Lock auf die Datenbankdatei (identisch zu Classic Server).
- Gecachte Verbindung zur Benutzerdatenbank für einen schnelleren Verbindungsaufbau (identisch zu Superserver).
- Sicherer Shutdown aller Datenbankverbindungen durch Beenden des dezidierten Serverprozesses (identisch zu Superserver).
- Automatisches Beenden aller Datenbankverbindungen beim Crash des Serverprozesses (identisch zu Superserver – ein Nachteil).
- Zielplattform: Natürlich unter 32-Bit lauffähig, allerdings erscheint der Einsatz unter 64-Bit sinnvoller, da hier keine Limitierung in Bezug auf die maximale Hauptspeicheradressierung pro Prozess existiert (identisch zu Superserver).
- Performance-Verbesserungen von bis 3 Minuten beim Tabellenaufbau in den Monatsrechnungen in WEBFAKT, getestet wurde mit einem Datenbestand von 49.000 Kunden, 52.300 Domains, 18.600 Speicherplätzen und 54.700 Dienstleistungen. Plattform Windows 64-Bit
Zur Installation-/Aktivierung der SuperClassic Architektur wählen Sie im Firebird Installationsprogramm folgendes aus:
danach