Модель обработки запросов в параллельной системе баз данных - page 4

разбивает кортежи, поступающие из входного потока, на две группы:
свои и чужие. Свои кортежи — это те, которые должны быть обра-
ботаны на данном процессорном узле. Они направляются в выходной
буфер оператора split. Чужие кортежи, т.е. кортежи, обработанные на
процессорных узлах, отличных от данного, помещаются оператором
split в выходной буфер правого дочернего узла, в качестве которо-
го фигурирует оператор scatter. Здесь выходной буфер оператора split
играет роль входного потока данных.
Нульарный оператор scatter извлекает кортежи из своего выходно-
го буфера и пересылает их на соответствующие процессорные узлы,
используя заданный номер порта. Запись кортежа в порт может быть
завершена только после того, как реципиент выполнит операцию чте-
ния из данного порта.
Нульарный оператор gather выполняет перманентное чтение кор-
тежей из указанного порта со всех процессорных узлов, отличных от
данного. Считанные кортежи помещаются в выходной буфер операто-
ра gather.
Оператор merge определяется как бинарный оператор, который за-
бирает кортежи из выходных буферов своих дочерних узлов и поме-
щает их в собственный выходной буфер.
Общая схема обработки запроса в параллельной СУБД изобра-
жена на рис. 3. В соответствии с этой схемой запрос на языке SQL
преобразуется в некоторый последовательный план, который, в свою
очередь, преобразуется в параллельный план, представляющий собой
совокупность
n
идентичных параллельных агентов, реализующих те
же операции, что и последовательный план. Здесь
n
обозначает число
процессорных узлов. Это достигается путем вставки оператора обмена
exchange в соответствующие места дерева плана запроса. На заверша-
ющем этапе агенты рассылаются на соответствующие процессорные
узлы, где интерпретируются исполнителем запросов. Результаты вы-
полнения агентов объединяются корневым оператором exchange на
нулевом процессорном модуле.
Рис. 3. Обработка запроса в параллельной СУБД
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2010. № 4 81
1,2,3 5,6,7,8,9,10,11,12,13
Powered by FlippingBook