ГЛАВА 6. Сервер Firebird.

ГЛАВА 6. Сервер Firebird.

Сервер Firebird - это программа, которая выполняется на узле хоста в сети, и слушает клиентов с порта коммуникации. Она обслуживает запросы множества клиентов к множеству баз данных. Суперсервер (Superserver) является многопоточным процессом, который запускает новый поток для каждого соединившегося клиента. В модели Классического сервера (Classic server) новый процесс запускается для каждого соединения.

Серверы Firebird могут выполняться почти на любом оборудовании персональных компьютеров и принимать клиентские соединения от приложений, выполняющихся в совершенно других операционных системах. С одной стороны, небольшой и легкий дистрибутив сервера может быть установлен на устаревшем оборудовании, даже для старых процессоров Pentium в операционной системе Windows 95 или в минимальных системах Linux. С другой стороны, серверы Firebird выполняются на распределенном оборудовании, управляя базами данных размерами в терабайты[8].

Конечно, нереально планировать информационную систему предприятия, выполняющуюся под Windows 95. Тем не менее проще простого запустить минимально сконфигурированный сервер, а по необходимости в дальнейшем масштабировать его как по вертикали, так и по горизонтали. Серверы Firebird существуют в двух вариантах - Суперсервер и Классический сервер для удовлетворения различных потребностей пользователя. Оба могут быть масштабированы как вверх, так и вниз для обработки от самых простых до наиболее сложных конфигураций.

Программное обеспечение сервера Firebird эффективно использует системные ресурсы хост-компьютера. Суперсервер использует приблизительно 2 Мбайта памяти. Каждое клиентское соединение Суперсервера добавляет примерно 115 Кбайт к используемой сервером памяти - меньше или больше в зависимости от характеристик приложений клиента и способа проектирования базы данных. Каждое соединение Классического сервера запускает собственный серверный процесс, требующий приблизительно 2 Мбайта памяти.

Требуемая серверу кэш-память зависит от конфигурации и от выбранного варианта Firebird. Обычная конфигурация кэша для сети при одновременно работающих 20-40 пользователях, скорее всего, будет 16, 32 или 64 Мбайта для Суперсервера, использующего общий пул для всех соединений. Для каждого Классического сервера назначается статический кэш с размером по умолчанию 75 Кбайт. Серверы версии 1.5 также будут использовать RAM для ускорения сортировки, если память доступна. Требуемое дисковое пространство для минимальной инсталляции Firebird составляет от 9 до 12 Мбайт в зависимости от платформы. Дополнительное дисковое пространство требуется для временного хранения данных в процессе выполнения операций, дополнительная память также требуется для кэширования страниц базы данных. Эта память конфигурируется в соответствии с запросами обработки данных и вероятного объема и типа обрабатываемых данных.

Роль сервера

Работа сервера включает:

* управление хранением данных базы данных и выделение дискового пространства;

* управление всеми транзакциями, запущенными клиентами, гарантирование, что каждая получит и сохранит непротиворечивый образ постоянно хранимых данных, требуемых клиенту;

* управление подтверждением транзакций, данными и сборкой мусора;

* поддержку блокировок и статистики для каждой базы данных;

* обработку запросов на добавление, изменение или удаление строк и поддержку текущих и устаревших версий записей;

* поддержку метаданных каждой базы данных и обслуживание запросов клиентов по созданию новых баз данных и объектов базы данных, изменение структур, проверку и компиляцию хранимых процедур и триггеров;

* обслуживание клиентских запросов на получение результирующих данных и выполнение хранимых процедур;

* маршрутизацию сообщений для клиентов;

* поддержку кэшированных данных для хранения часто используемых наборов данных и индексов;

* отдельную поддержку безопасности баз данных для проверки доступа пользователей.