- •Лекция 23
- •Пути повышения эффективности и оперативности обслуживания большого числа клиентских запросов
- •Архитектура «один к одному»
- •Многопотоковая односерверная архитектура
- •Мультисерверная архитектура
- •Серверные архитектуры с параллельной обработкой запроса
- •Структура компонентов поддержки удаленного доступа
- •Доступ к базам данных в
- •Открытый интерфейс доступа к базам данных
- •Структурная схема доступа к данным с использованием JDBC
- •Пример взаимосвязи механизмов
- •Мониторы обработки транзакций
- •Механизмы DCОМ и CORBA
- •Обобщенная структура сервера приложений
Лекция 23
Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы параллелелизма при обработке запросов
Пути повышения эффективности и оперативности обслуживания большого числа клиентских запросов
снижение суммарного |
распараллеливание |
расхода памяти и |
процесса обработки |
вычислительных |
запроса – использование |
ресурсов за счет |
разных процессоров для |
буферизации |
параллельной обработки |
(кэширования) и |
изолированных |
совместного |
подзапросов и/или для |
использования |
одновременного |
наиболее часто |
обращения к частям базы |
запрашиваемых |
данных, размещенным на |
данных и процедур |
отдельных физических |
(разделяемые ресурсы) |
носителях |
Архитектура «один к одному»
Запрос 1 Серверный процесс 1
Процессор БД
Запрос N Серверный процесс N
Для обслуживания каждого запроса запускается свой серверный процесс: если от клиентов поступят совершенно одинаковые запросы, для их обработки каждого из них будет запущен отдельный процесс, каждый из которых будет
выполнять одинаковые действия и использовать одни и те же ресурсы
Многопотоковая односерверная архитектура
|
Сервер-процесс |
||
|
|
|
|
Запрос 1 |
|
Поток 1 |
|
|
|
|
|
Процессор БД
Запрос N |
Поток N |
Обработку всех клиентских запросов выполняет один серверный процесс, взаимодействующий со всеми клиентами и монопольно управляющий ресурсами. При этом для отдельного клиентского процесса создается поток, в рамках которого локализуется обработка запроса
Мультисерверная архитектура
Запрос 1
Запрос 2
Запрос N
Серверный процесс Процессор
Диспетчер
Серверный Процессор процесс
БД
СУБД имеет мультисерверную многопотоковую архитектуру: серверный процесс реализуется как многопоточное приложение.
Характер распределения запросов зависит от того, поддерживает ли операционная система потоковую обработку, а также от возможностей средств управления приоритетами задач
Серверные архитектуры с параллельной обработкой запроса
Подзапрос1
Серверны й процесс
Подзапрос 2
Запрос
Подзапрос N |
|
|
|
Серверны |
|
|
|
й процесс |
|
|
|
|
|
|
|
|
|
|
|
Процессор Сегмент БД
Процессор Сегмент БД
Сегментирование (размещение хранимых данных на нескольких физических носителях) - модель горизонтального параллелизма.
Разбиение запроса на взаимосвязанные по результатам подзапросы - модель вертикального параллелизма.
Структура компонентов поддержки удаленного доступа
Доступ к базам данных в |
||
двухзвенных моделях клиент- |
||
Клиент |
сервер |
Сервер |
|
||
Прикладная |
|
|
программа |
|
СУБД |
Библиотечные |
|
|
|
|
|
функции |
|
|
Драйвер СУБД |
|
|
Драйвер сети |
|
Драйвер сети |
|
|
|
|
Сеть |
|
Открытый интерфейс доступа к базам данных |
||||
(ODBC - Open Database Connectivity) |
||||
|
Прикладная |
|
|
|
|
программа |
|
|
|
|
|
|
СУБД 1 |
СУБД 2 |
ODBС-driver manager |
|
|
|
|
локальный |
ODBС- |
ODBС- |
|
|
ODBС- |
драйвер |
драйвер |
|
|
драйвер |
СУБД 2 |
СУБД 1 |
|
|
Файловая |
|
|
Драйвер |
Драйвер |
Драйвер сети |
сети |
сети |
||
система |
|
|
|
|
Локальный |
|
|
Сеть |
|
|
|
|
|
|
диск |
|
|
|
|