36
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
Основной формой параллельной обработки запросов в строчных
и колоночных СУБД является фрагментный параллелизм. Подробно
данный процесс рассмотрен в работах [7—10, 15]. В соответствие с
этой схемой запрос на языке SQL преобразуется в некоторый после-
довательный план, который преобразуется в параллельный, пред-
ставляющий собой совокупность
n
идентичных параллельных аген-
тов, которые реализуют те же операции, что и последовательный
план. Здесь
n
обозначает число процессорных узлов. Это достигается
путем вставки оператора обмена exchange в соответствующие места
дерева плана запроса. На завершающем этапе агенты рассылаются на
соответствующие процессорные узлы, где интерпретируются испол-
нителем запросов. Результаты выполнения агентов объединяются
корневым оператором exchange на нулевом процессорном модуле.
Наиболее распространенной системой классификации параллель-
ных систем баз данных является система, предложенная Майклом
Стоунбрейкером [15]:
1.
SE (Shared-Everything) — архитектура с разделяемыми памя-
тью и дисками.
2.
SD (Shared-Disks) — архитектура с разделяемыми дисками.
3.
SN (Shared-Nothing) — архитектура без совместного исполь-
зования ресурсов.
Особенности обработки запросов в колоночных СУБД.
Одним
из процессов при формировании ответа на запрос в колоночных базах
данных является материализация кортежей — процесс воссоздания
кортежа на основе столбцов-атрибутов. В зависимости от момента
применения данной операции в плане запроса в работе [16] предла-
гаются следующие варианты материализации.
Ранняя материализация
.
Данный вариант аналогичен «есте-
ственной» материализации, применяемой в строчных СУБД: каждый
раз, когда осуществляется доступ к новому атрибуту, он добавляется
к кортежу.
Поздняя материализация
.
Специфика колоночных СУБД позво-
ляет отложить процесс материализации до определенного момента, ис-
пользуя в процессе выполнения запроса позиции значений в колонках
вместо самих значений атрибутов. К преимуществам данного метода
можно отнести более высокую скорость работы с позициями значений
по сравнению со всем кортежем. Слабым местом такого подхода явля-
ется необходимость двойного чтения данных из столбца — в первом
случае для получения позиций, во втором, уже после анализа и преобра-
зования номеров, для получения значений.
Следовательно, операцию материализации можно рассматривать
в качестве момента, после которого исполнитель запросов начинает
применять классические покортежные операции. В работе [16] пред-
лагаются два варианта обработки столбцов — параллельный и после-
довательный. В первом случае все колонки считываются независимо
друг от друга. При поздней материализации после считывания полу-
ченные битовые маски пересекаются, и на основе результирующей