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

       

Этот подход позволяет использовать без


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

Рассмотрим просмотр отношения A, которое было разделено между тремя дисками на фрагменты A0, A1, A2. Этот просмотр можно реализовать с помощью трех операций просмотра, которые направляют свой вывод на вход общей операции слияния (merge operator). Операция слияния производит единый выходной поток данных и посылает его прикладной программе или следующей реляционной операции. Управляющая программа параллельного запроса создает три процесса просмотра, показанные на рис. 8, и предписывает им вводить данные из трех различных последовательных входных потоков (A0, A1, A2). Она также предписывает им послать вывод в общий узел, где происходит слияние вывода. Каждый просмотр может выполняться на отдельном процессоре и диске. Таким образом, первой нуждающейся в распараллеливании операцией является операция слияния, который объединяет несколько параллельных потоков данных в один последовательный поток.



Рисунок 8.

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

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

используется для разделения или реплицирования потока кортежей, производимого реляционным оператором.

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