Основные процессы
Брокер
Брокер – это главный процесс базы данных, который создаёт и управляет разделяемой памятью в многопользовательской базе данных.
Брокер выполняет следующие задачи в четырёх фазах работы базы данных:
- Старт базы данных
- для обеспечения согласованности и целостности данных автоматически выполняет Crash Recovery;
- на основе заданных параметров старта базы данных создаёт экземпляр разделяемой памяти и файл локировки (.lk);
- ожидает запросы на подключение от дистанционных клиентов вплоть до момента останова базы данных.
- Подключение дистанционных клиентов (remote clients)
- проверяет наличие доступных серверов;
- если есть доступный сервер, то брокер направляет дистанционного клиента к этому серверу;
- если доступных серверов нет, то брокер стартует новый сервер и направляет дистанционного клиента к нему.
- Во время работы базы данных. На протяжении всего времени, пока база данных находится в стартованном состоянии, брокер периодически выполняет функции контроля (функции процесса watchdog), т.е. выполняет проверку и «уборку» за неправильно завершившимися самообслуживающимися клиентами (self-service clients).
- Останов базы данных. Во время останова базы данных брокер останавливает работу всех дистанционных и самообслуживающихся клиентов, освобождает все структуры разделяемой памяти, закрывает файлы базы данных и удаляет файл локировки (.lk).
Сервер
Сервер – это процесс базы данных, который получает доступ к данным через разделяемую память от имени одного или нескольких дистанционных клиентов. Старт сервера по мере необходимости выполняется брокером базы данных для обработки поступающих запросов на подключение от дистанционных клиентов.
Существует два типа серверов:
- ABL-сервер – поддерживает только дистанционных клиентов OpenEdge ABL
- SQL-сервер – поддерживает только дистанционных клиентов OpenEdge SQL
Один сервер не должен обслуживать ABL-клиентов и SQL-клиентов.
Порядок обработки сервером клиентского запроса к данным:
- Клиент запрашивает данные у сервера.
- Сервер передаёт клиентский запрос в базу данных через разделяемую память.
- СУБД обрабатывает запрос и возвращает результат серверу.
- Сервер возвращает результат клиенту.
Клиент
Клиент – это процесс базы данных, инициированный пользователем. Клиент может создавать запросы, добавлять, удалять или изменять данные в базе данных.
Существует два типа клиентов:
- Дистанционные (Remote Client);
- Самообслуживающиеся (Self-Service Client).
Дистанционный клиент – это такой клиент, который:
- работает на компьютере, не содержащем базу данных и брокера базы данных;
- обращается к базе данных только через сетевые протоколы.
СУБД OpenEdge рассматривает SQL-клиентов как дистанционных клиентов, даже если они работают на том же компьютере, где и база данных, так как такие клиенты всегда подключаются к базе данных через сетевой протокол.
Самообслуживающийся клиент – это клиент, который:
- работает на той же машине, где работает брокер базы данных;
- обращается к базе данных напрямую через разделяемую память;
- исполняет функции как клиента, так и сервера в одном процессе;
- исполняет логику приложения напрямую.
Использование самообслуживающихся клиентов – это быстрый способ доступа к базе данных. Тем не менее, так как клиентский процесс напрямую работает с разделяемой памятью, то такой доступ несёт в себе различного рода риски, которые могут привести к аварийному останову базы данных.
Фоновые процессы
Фоновые процессы – это процессы, задача которых обеспечить высокий уровень производительности базы данных, а также гарантировать целостность данных в случае краха системы или сбоя носителя.
Существует четыре вида фоновых процессов:
- Before-image Writer (BIW) – предназначен для записи заполненных BI-буферов в BI-файл на диске.
- After-image Writer (AIW) – предназначен для записи заполненных AI-буферов в AI-файл на диске.
- Asynchronous Page Writer (APW) – предназначен для записи изменённых блоков базы данных в экстенты областей хранения на диске.
- Watchdog (PROWDOG) – предназначен для освобождения ресурсов базы данных после некорректно завершённых самообслуживающихся клиентов, а также после аварийного завершения сервера дистанционных клиентов.
В зависимости от типа лицензии OpenEdge некоторые фоновые процессы могут быть недоступны. В следующей таблице представлен список типов лицензий и фоновых процессов, доступных для каждой из них.
Фоновый процесс |
Тип лицензии | ||
Enterprise | Workgroup |
Personal |
|
Before-image Writer (BIW) | Yes | No | No |
After-image Writer (AIW) | Yes | No | No |
Asynchronous Page Writer (APW) | Yes | No | No |
Watchdog (PROWDOG) | Yes | Yes | Yes |
Процессы «врайтеры» недоступны для лицензий Workgroup и Personal – их функции выполняет брокер базы данных.
Все фоновые процессы доступны только для лицензии Enterprise. Благодаря фоновым процессам брокер базы данных освобождается от значительной рутинной работы, тем самым выполняя только прямые свои задачи. Такое распределение обязанностей значительно улучшает масштабируемость и производительность базы данных в целом.