exchange, осуществляющим разбор записи и ее межпроцессорный об-
мен. Таблица
S
фрагментирована по атрибуту соединения, и записи,
читаемые из фрагментов этой таблицы, обрабатываются на каждом
процессоре локально.
Оператор exchange является составным оператором и включает в
себя четыре оператора: Split, Gather, Scatter и Merge. Оператор Split
— это оператор, который осуществляет разбиение кортежей (записей),
поступающих из входного потока, на две группы: свои и чужие. Свои
кортежи — это кортежи, которые должны быть обработаны на дан-
ном процессорном узле. Эти кортежи направляются в выходной буфер
оператора Split (стрелка вверх). Чужие кортежи, т.е. кортежи, которые
должны быть обработаны на процессорных узлах, отличных от данно-
го, помещаются оператором Split во входной буфер правого дочернего
узла, в качестве которого фигурирует оператор Scatter. Нульарный опе-
ратор Scatter извлекает кортежи из своего входного буфера и пересы-
лает их на соответствующие процессорные узлы. Нульарный оператор
Gather выполняет перманентное чтение кортежей из указанного порта
со всех процессорных узлов, отличных от данного. Оператор Merge,
реализующий логическую операцию join, определяется как бинарный
оператор, который забирает кортежи из выходных буферов своих до-
черних узлов, соединяет их и помещает результат в собственный вы-
ходной буфер. Таким образом, с помощью рассмотренных операций
оператор exchange реализует полноценный межпроцессорный обмен
записями в параллельной системе БД при обработке запроса методом
фрагментного параллелизма.
Архитектуры параллельных систем БД.
Наиболее распростра-
ненной системой классификации параллельных систем БД является
система, предложенная Майклом Стоунбрейкером (Michael Stonebraker)
[15]:
1. SE (Shared-Everything) — архитектура с разделяемыми памятью
и дисками;
2. SD (Shared-Disks) — архитектура с разделяемыми дисками;
3. SN (Shared-Nothing) — архитектура без совместного использова-
ния ресурсов.
Пересечение отношений в колоночных хранилищах.
При пере-
сечении отношение во внешнем цикле остается отсортированным по
порядку, отношение во внутреннем цикле — нет (рис. 2, здесь в резуль-
тирующей таблице указаны номера позиций в исходных колонках).
Поскольку чтение по неотсортированным позициям и последующее
пересечение может занять продолжительное время, в [12] предлагает-
ся для внутреннего отношения использовать раннюю материализацию
(в оператор пересечения сразу подаются готовые кортежи).
84 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012. № 4