Развитие идей и приложений реляционной СУБД System R


Распределенная компиляция запросов - часть 2


На этом вопросе мы остановимся более подробно в следующем подразделе. Глобальный план отображается в преобразованном соответствующим образом дереве запроса.

3. Если в глобальном плане выполнения запроса участвуют дополнительные узлы, производится его декомпозиция на части, каждую из которых можно выполнить в одном узле (например, локальная фильтрация отношения в соответствии с заданным в условии выборки предикате ограничения). Соответствующие части запроса (во внутреннем представлении) рассылаются в дополнительные узлы.

4. В каждом узле, участвующем в глобальном плане выполнения запроса (главном и дополнительных) выполняется завершающая стадия выполнения компиляции. Эта стадия включает, по существу, две последние фазы процесса компиляции запроса в System R: оптимизацию и генерацию машинных кодов. Производится проверка прав пользователя, от имени которого производится компиляция, на выполнение соответствующих действий; происходит обработка представлений базы данных (здесь имеются тонкости, связанные с тем, что представления могут включать удаленные отношения; ниже мы еще остановимся на этом, а пока будем считать, что в запросе употребляются только имена базовых отношений); осуществляется локальная оптимизация обрабатываемой части запроса в соответствии с имеющимися индексами; наконец, производится генерация кода. В отличие от секций модуля доступа System R, которые включали только индивидуальный код и обращения к RSS, образовывающиеся при компиляции запроса в System R* программные единицы (подсекции) включают еще и обращения к сетевому компоненту системы для необходимых транспортных взаимодействий.

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


Начало  Назад  Вперед



Книжный магазин