Многопотоковые архитектуры

Оценить
(1 голос)

Многопотоковые архитектуры отличаются от двухпроцессных (2п) тем, что на каждое подключение пользователя приходится не более двух процессов. Процесс агента заменяется потоком агента в многопотоковом сервере агента. Каждый многопотоковый сервер поддерживает множество агентских подключений, что приводит к значительному сокращению количества процессов на сервере и потребности в памяти на одного пользователя.

Каждая связь пользователя с базой данных поддерживается двумя компонентами:

1.            Прикладным процессом, который запускает логику приложения.

2.            Агентским потоком, запускающимся в многопотоковом процессе сервера. Процесс сервера связывается с памятью совместного доступа БД и обращается к месту хранения данных со стороны приложения пользователя.

Многопотоковый процесс сервера запускается в системе сервера БД. Как и в случае двухпроцессной архитектуры, прикладной процесс может быть запущен на сервере БД, отдельном сервере приложений или на рабочей станции пользователя. Доступ к базе данных для обеих архитектур происходит с помощью подобных механизмов. На рисунке 5.2 показаны подключения.

Базы данных, основанные на многопотоковой архитектуре, также обычно используют внутренние потоки для остальных ключевых функций, таких как регистрация, очистка страниц, монитор процессов.

Каким образом один многопотоковый серверный процесс масштабируется в SMP-системе с несколькими ЦП? Решение, применяемое поставщиками баз данных, заключается в использовании одного многопотокового процесса сервера на каждом процессоре, вследствие чего комбинирование преимуществ сокращенного процесса сопоставимо с масштабируемостью SMP-системы. В базах данных многопотоковых серверов более низкий коэффициент "непопаданий" при обращениях к TLB (Translation Lookaside Buffer - буферу быстрого преобразования адреса, блоку процессора, отвечающему за преобразование виртуальных адресов), чем в базах данных, основанных на двухпроцессных архитектурах.

Примерами многопотоковых баз данных для Solaris являются Sybase, Informix и Ingres.

В отношении этих баз данных можно было бы логически прийти к использованию потоков Solaris для реализации многопотоковых серверов. Однако на самом деле каждая СУБД имеет свою собственную библиотеку потоков как в силу того, что упрощается переносимость между различными платформами UNIX, так и в силу того, что продавцы баз данных верят в свою способность эффективной реализации потоков для специфических целей.

Параллельная обработка
Репликационные (тиражируемые) базы данных
Мониторы транзакций
Мультиплексирование пользователей
Маршрутизация транзакций

Добавить комментарий


Защитный код
Обновить