Лекция 23 Лекция 23 Схемы распределения данных и запросов. Обработка распределенных данных и запросов. Многопотоковые и многосерверные архитектуры. Типы параллелизма при обработке запросов
Пути повышения эффективности и оперативности обслуживания большого числа клиентских запросов снижение суммарного расхода памяти и вычислительных ресурсов за счет буферизации (кэширования) и совместного использования наиболее часто запрашиваемых данных и процедур (разделяемые ресурсы) распараллеливание процесса обработки запроса – использование разных процессоров для параллельной обработки изолированных подзапросов и/или для одновременного обращения к частям базы данных, размещенным на отдельных физических носителях
Архитектура «один к одному» Для обслуживания каждого запроса запускается свой серверный процесс: если от клиентов поступят совершенно одинаковые запросы, для их обработки каждого из них будет запущен отдельный процесс, каждый из которых будет выполнять одинаковые действия и использовать одни и те же ресурсы Запрос 1 Серверный процесс 1 Запрос N Серверный процесс N Процессор БД
Многопотоковая одно серверная архитектура Обработку всех клиентских запросов выполняет один серверный процесс, взаимодействующий со всеми клиентами и монопольно управляющий ресурсами. При этом для отдельного клиентского процесса создается поток, в рамках которого локализуется обработка запроса Сервер-процесс Запрос 1 Поток 1 Запрос N Поток N Процессор БД
Мультисерверная архитектура Диспетчер Запрос 1 Серверный процесс Запрос N Серверный процесс Процессор БД Процессор Запрос 2 СУБД имеет мульти серверную много потоковую архитектуру: серверный процесс реализуется как многопоточное приложение. Характер распределения запросов зависит от того, поддерживает ли операционная система потоковую обработку, а также от возможностей средств управления приоритетами задач
Серверные архитектуры с параллельной обработкой запроса Сегментирование (размещение хранимых данных на нескольких физических носителях) - модель горизонтального параллелизма. Разбиение запроса на взаимосвязанные по результатам подзапросы - модель вертикального параллелизма. Подзапрос 1 Серверны й процесс Подзапрос N Серверны й процесс Процессор Сегмент БД Процессор Подзапрос 2 Сегмент БД Запрос
Структура компонентов поддержки удаленного доступа
Доступ к базам данных в двухзвенных моделях клиент- сервер Клиент Сервер Прикладная программа Библиотечные функции Драйвер СУБД Драйвер сети СУБД Драйвер сети Сеть
Открытый интерфейс доступа к базам данных (ODBC - Open Database Connectivity) СУБД 1 Драйвер сети СУБД 2 Драйвер сети Сеть Локальный диск Прикладная программа ODBС-driver manager локальный ODBС- драйвер ODBС- драйвер СУБД 2 ODBС- драйвер СУБД 1 Файловая система Драйвер сети
Структурная схема доступа к данным с использованием JDBC
Пример взаимосвязи механизмов доступа к данным Сервер БД СУБД База данных Клиентское приложение для работы с БД ADOBDE OLE DBODBC LinkSQL Link ODBC Программное обеспечение клиента СУБД
Мониторы обработки транзакций
Механизмы DCОМ и CORBA Процесс клиента КлиентProxy Процесс сервера Stub Объект Машина клиента Клиент StubORB Сетевое окружение Smart agent Машина сервера ORBBOAОбъект Skeleton
Обобщенная структура сервера приложений Средства разработки и Управление сеансам и Защита Оповещение о событиях Служба каталогов Контроль доступа к разд Оптимизация распределения Управление транзакциями ORB, TP-монитор, SQL-шлюзы Унаследованные приложения и данные Другие серверы приложений Внешние приложения СУБД COM клиент CORBAклиен т Java клиент Браузер Web-сервер HTML- документы CGI- приложения