Классика баз данных - статьи

       

Смешивание пакетных и OLTP запросов


Во втором разделе этой статьи "Основные технологии для параллельных машин баз данных" рассматривались основные технологии, используемые при обработке сложных реляционных запросов в параллельных системах баз данных. При одновременном выполнении как простых, так и сложных запросов, возникает сразу несколько проблем, которые до сих пор не решены.

Во-первых, при выполнении больших реляционных запросов обычно устанавливается много блокировок, и они удерживаются довольно долго. Это препятствует обновлению данных простыми транзакциями. В настоящее время предлагаются два решения, первое из которых состоит в предоставлении интерактивным запросам нечеткой картины базы данных без блокирования данные во время просмотра. Такое "грязное чтение" не приемлемо для некоторых прикладных программ. Некоторые системы предлагают механизм версий, который обеспечивает согласованную (старую) версию базы данных при чтении и позволяет создавать новые версии объектов при обновлении. Мы надеемся, что найдутся лучшие решения этой проблемы.

Другая проблема – распределение приоритетов при смешанной рабочей загрузке. Пакетные работы обладают тенденцией к монополизации процессора, заполнению кэша и большой интенсивности ввода/вывода. Задачей операционной системы становится умельчение и ограничение ресурсы, используемых пакетными работами, для обеспечения быстрого отклика и небольших отклонений во времени отклика для коротких транзакций. Очень сложна проблема инверсии приоритетов, когда клиент с низким приоритетом обращается к серверу с высоким приоритетом. Сервер должен выполняться с высоким приоритетом, так как он управляет жизненно важными ресурсами. И если низкоприоритетный запрос обслуживается высокоприоритетным сервером, работа низкоприоритетного клиента фактически становится высокоприоритетной. Предпринимались попытки решения этой проблемы в конкретных ситуациях, но приемлемые решения так и не были найдены.



Содержание  Назад  Вперед