RÓŻNICE MIĘDZY WERSJAMI SERWERA BAZY DANYCH FIREBIRD

Podczas instalacji, serwer bazy danych Firebird umożliwia dokonanie wyboru w jakim trybie ma on pracować. Wybór właściwej opcji należy dokonać w zależności od posiadanego sprzętu komputerowego. Informacje na temat różnic pomiędzy poszczególnymi wersjami można można znaleźć w dokumentacji serwera Firebird:

Po zainstalowaniu właściwej wersji serwera, należy dodatkowo przeprowadzić konfigurację, edytując plik konfiguracyjny firebird.conf
(domyślna lokalizacja pliku to C:\Program Files\Firebird\Firebird_2_5)


» Wróć do: PODRĘCZNIK ADMINISTRATORA Classic Server kontra Super Server


Odrobina historii

W czasach prehistorycznych istniał sobie serwer InterBase. Co pewien czas powstawały nowe wersje serwera. W serwerze InterBase 5 zmieniono wewnętrzną architekturę serwera. Aby podkreślić innowacyjność nowej architektury nazwano ją Super Server, a architekturę dostępną w dotychczasowych wersjach nazwanoClassic Server. W środowisku Windows nie miało to większego znaczenia, bo była dostępna tylko wersja Super Server. Natomiast w środowisku Linux dostępne były dwie wersje serwera o podobnej funkcjonalności — Classic Server oraz Super Server.

W roku 2001 serwer InterBase 6 został udostępniony na zasadach Open Source. Wkrótce powstało kilka grup programistów rozwijający ten serwer pod różnymi nazwami. Po pewnym czasie wszystkie te grupy programistów zjednoczyły swoje siły w najbardziej zaawansowanym projekcie czyli Firebird.

Autorzy serwera Firebird SQL ponownie udostępnili wersję Classic Server dla wszystkich obsługiwanych systemów operacyjnych udostępniając wersję Classic iSuper równolegle.

Więcej o tej historii można poczytać tutaj lub tutaj. Dlaczego dwie różne wersje

Z punktu widzenia programisty lub administratora bazy danych właściwie nie ma żadnej różnicy pomiędzy tymi dwoma wersjami serwera. W rzeczywistości jest sporo różnic w implementacji i działaniu obu wersji. Jedną z ważniejszych jest to, że w architekturze Classic Server w systemie dla każdego użytkownika tworzony jest oddzielny proces do jego obsługi. Natomiast w architekturze Super Server w systemie istniejej jeden proces serwera, w ramach którego tworzone są oddzielne wątki do obsługi poszczególnych użytkowników.

Architektura Super Server jest znacznie lepsza niż Classic Server. Ponieważ wszyscy użytkownicy obsługiwani są przez ten sam proces serwera więc istnieje jeden wspólny cache bazy danych. Poza tym synchronizacja wątków w ramach jednego procesu działa znacznie szybciej niż synchronizacja oddzielnych procesów.

Skoro Super Server jest lepszy do po co nadal dostępny jest Classic Server. Powodem było coraz częstsze wykorzystywanie komputerów wyposażonych w więcej niż jeden procesor (lub w technologię Hyper Threading). W takich komputerach technologia miała jeden poważny minus. System operacyjny „widzi” taki serwer jako jeden proces. Gdy ten proces zaczyna intensywnie działać to obciąża jeden z procesorów. Pozostałe procesory najczęśniej mie mają zbyt wiele do pracy. Po chwili system operacyjny stwierdza, że procesory nie są równomiernie obciążone i chce temu zaradzić. W tym celu przenosi proces serwera na inny procesor. Takie przenoszenie procesu trwa zazwyczaj kilkanaście sekund i przez ten czas serwer pracuje mniej wydajnie. Mało tego! Po przeniesieniu procesu serwera na drugi procesor teraz ten drugi procesor jest mocno obciążony, a pozostałe procesory nie mają zbyt wiele pracy. Więc po chwili system znowu przenosi proces serwera na kolejny procesor. W efekcie tych przenosin serwer czasem w takich komputerach działa wolniej niż gdyby w komputerze był tylko jeden procesor.

W serwerze Firebird 1 jedynym rozwiązaniem było przypisanie procesu serwera do jednego z procesorów (poprzez plik konfiguracyjny serwera). Natomiast w serwerze Firebird 1.5 znacznie lepszym „lekarstwem” było udostępnienie wersji Classic Server W tej wersji dla każdego użytkownika tworzony jest oddzielny proces. System operacyjny może te procesy wykonywać równolegle na różnych procesorach i równomiernie rozkładać obciążenie wszystkich procesorów. Którą weresję wybrać

Z powyższych rozważań wynika prosta wskazówka dotycząca najlepszej wersji serwera Firebird SQL w zależności od możliwości komputera, na którym ma działać.

  Jeżeli kompuer ma kilka procesorów lub obsługuje Hyper Threading to najlepiej jest 
  używać wersję SUPERCLASSIC/Classic Server;
  W przeciwnym razie, gdy komputer ma jeden procesor (bez Hyper Threading) to lepszy jest Super Server.

Konsekwencje wyboru

Jak już wcześniej pisałem wybór architektury serwera nie ma niemal żadnego znaczenia dla programistów i administratorów bazy danych. Warto jedynie pamiętać o tym, że Super Serverakceptuje zarówno lokalne połączenia z bazą danych (ścieżka do pliku) jak i połączenia zdalne (serwer, dwukropek, ścieżka na serwerze). Natomiast Classic Server akceptuje wyłącznie połączenia zdalne.

Na przykład korzystając z serwera Classic Server chcąc połączyć się z bazą c:\Program\Baza.fdb należy użyć składnię localhost:c:\Program\Baza.fdb.