Научная статья на тему 'Оценка времени соединения двух таблиц в параллельной колоночной системе баз данных'

Оценка времени соединения двух таблиц в параллельной колоночной системе баз данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
276
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЕ КОЛОНОЧНЫЕ СИСТЕМЫ БАЗ ДАННЫХ / ПРЕОБРАЗОВАНИЕ ЛАПЛАСА-СТИЛТЬЕСА / МАТЕМАТИЧЕСКОЕ ОЖИДАНИЕ ВРЕМЕНИ ВЫПОЛНЕНИЯ СОЕДИНЕНИЯ ОТНОШЕНИЙ / PARALLEL COLUMN-ORIENTED DATABASE SYSTEMS / LAPLACE-STIELTJES TRANSFORM / EXPECTATION OF TIME OF PERFORMING A JOIN OF RELATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Григорьев Ю. А., Ермаков Е. Ю.

Проанализированы существующие методы выполнения соединения отношений в параллельной колоночной системе баз данных. Выведено преобразование Лапласа-Стилтьеса времени соединения двух таблиц методом вложенных циклов, а также рассмотрены варианты этого преобразования для архитектур SE, SD, SN и различных режимов работы параллельных систем баз данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ESTIMATION OF TIME OF JOINING TWO TABLES IN THE PARALLEL COLUMN-ORIENTED DATABASE SYSTEM

The existing methods for performing a join of relations in the parallel columnoriented database system are analyzed. The Laplace-Stieltjes transform is deduced for the time of joining two tables using the nested-loop method, and the variants of this transform are considered for the SE, SD, and SN architectures and different operating modes of the parallel database systems.

Текст научной работы на тему «Оценка времени соединения двух таблиц в параллельной колоночной системе баз данных»

УДК 004.657

ОЦЕНКА ВРЕМЕНИ СОЕДИНЕНИЯ ДВУХ ТАБЛИЦ В ПАРАЛЛЕЛЬНОЙ КОЛОНОЧНОЙ СИСТЕМЕ БАЗ ДАННЫХ

Ю.А. Григорьев, Е.Ю. Ермаков

МГТУ им. Н.Э. Баумана, Москва

e-mail: [email protected]; [email protected]

Проанализированы существующие методы выполнения соединения отношений в параллельной колоночной системе баз данных. Выведено преобразование Лап-ласа-Стилтъеса времени соединения двух таблиц методом вложенных циклов, а также рассмотрены варианты этого преобразования для архитектур SE, SD, SN и различных режимов работы параллельных систем баз данных.

Ключевые слова: параллельные колоночные системы баз данных, преобразование Лапласа-Стилтьеса, математическое ожидание времени выполнения соединения отношений.

ESTIMATION OF TIME OF JOINING TWO TABLES IN THE PARALLEL COLUMN-ORIENTED DATABASE SYSTEM

Yu.A. Grigoriev, Ye.Yu. Yermakov

Bauman Moscow State Technical University, Moscow e-mail: [email protected]; [email protected]

The existing methods for performing a join of relations in the parallel column-oriented database system are analyzed. The Laplace-Stieltjes transform is deduced for the time of joining two tables using the nested-loop method, and the variants of this transform are considered for the SE, SD, and SN architectures and different operating modes of the parallel database systems.

Keywords: parallel column-oriented database systems, Laplace-Stieltjes transform, expectation of time of performing a join of relations.

Российский бизнес все острее осознает необходимость построения хранилищ данных. Являясь одними из наиболее значимых элементов ИТ-инфраструктуры предприятия, хранилища консолидируют информацию, необходимую для создания достоверных аналитических отчетов. Они являются одними из крупнейших источников информации для современных аналитиков. По оценке Gartner, хранилища данных в ближайшей перспективе останутся одними из ключевых компонентов автоматизированных информационных систем предприятий [1]. Большой потенциал колоночных систем в области построения хранилищ данных подтверждают как аналитические исследования и прогнозы аналитиков [1-3], которые считают колоночные СУБД одним из основных и перспективных направлений развития, так и практическое использование таких систем для построения крупных хранилищ данных [4].

Перед архитектором информационной системы обработки данных возникает непростая задача выбора между традиционными (строчными — Oracle, MS SQL Server, MySql и др.) и специализированными

СУБД (колоночными — Vertica, ParAccel, MonetDB и др.). Для принятия обоснованного технического решения по выбору типа СУБД необходимо использовать средства моделирования. Для традиционных реляционных СУБД такие методы уже существуют [5]. Для параллельных СУБД подобные исследования ведутся [6-9], но находятся на начальной стадии развития.

Ранее в статье [10] были предложены математические методы оценки времени выполнения запроса к одной таблице в параллельной колоночной системе баз данных (ПКСБД). В настоящей работе предлагаются математические методы оценки времени выполнения соединения таблиц в ПКСБД, учитывающие особенности выполнения запросов к БД проектируемой системы, а также особенности реализации колоночных хранилищ. Получение такой оценки важно, так как операция соединения (join) часто используется в аналитических запросах к хранилищам данных, построенным на основе реляционных БД (ROLAP).

Организация работы колоночного хранилища. Под строчным хранением данных обычно понимается физическое хранение кортежа любого отношения в виде одной записи, в которой значения атрибутов идут последовательно одно за другим, а за последним атрибутом записи в общем случае следует новая запись отношения [11]. Таким образом, на физическом носителе отношение Я представлено в следующем виде:

> ^23,

t j

j

где а,, — значение атрибута а» в у-м кортеже отношения В: [а\,, а2 /.... ..., аПз\з — .у-й кортеж отношения Я; п — число атрибутов отношения Я; т = Т(Я) — число кортежей отношения Я.

В колоночных хранилищах значения одного атрибута хранятся последовательно друг за другом [11], т.е. на физическом носителе отношение Я примет следующий вид:

in, а, 12,0i3,

)l(021, 022? о23, •

^nl) Оп2) Опз, • • • , 0>г,

í)nj

где а,, — значение атрибута а, в у-м кортеже отношения Я; (а,ь а,2, ¿¿з,..., а,,,,.}, — г-й столбец (атрибут) отношения Я.

Каждая колонка, хранимая на диске, разделена на блоки определенного размера. Блок состоит из заголовка, размер которого пренебрежимо мал по сравнению с размером блока и непосредственно данных. При одном запросе к диску происходит чтение нескольких блоков, число которых определяется некоторым параметром. Каждой записи в столбце сопоставляется ее позиция (номер строки). В большинстве

современных колоночных БД [12] значения столбца упорядочиваются по их позициям.

На логическом уровне колоночное хранилище выглядит идентично строчному: оно, по существу, представляет собой только модификацию физической (дисковой) структуры БД. В общем случае колоночные БД могут реализовывать совместимый со стандартами интерфейс реляционной БД (например, ODBC, JDBC и т.д.). Основные на данном уровне различия заключаются в информационных процессах, протекающих при формировании плана запроса и в процессе его выполнения [12]. Использование колоночных СУБД позволяет существенно уменьшить время реализации запросов к БД [10].

Материализация кортежей. Одним из процессов при формировании ответа на запрос в колоночных БД является материализация кортежей — процесс воссоздания кортежа на основе столбцов-атрибутов. В зависимости от момента применения данной операции в плане запроса существуют следующие варианты материализации [13]:

• ранняя материализация. Данный вариант аналогичен "естественной" материализации, применяемой в строчных хранилищах: каждый раз, когда осуществляется доступ к новому атрибуту, он добавляется к кортежу;

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

Сжатие данных. В современных СУБД широко используется сжатие данных. Это позволяет повысить производительность уменьшая число дисковых операций ввода-вывода и объем передаваемых по сети данных. Колоночное хранение отношений позволяет улучшить этот показатель по сравнению со строчными хранилищами. Это достигается путем использования коэффициентов повторяемости значений атрибутов и возможности оперировать сжатыми данными (т.е. отсутствие затрат на декомпрессию). В работе [14] предлагается полученный эмпирическим путем алгоритм выбора типа компрессии данных в столбцах.

Параллельная обработка запросов. Основной формой параллельной обработки запросов является фрагментный параллелизм. Подробно данный процесс рассмотрен в работах [6-9, 15]. В соответствие с этой схемой запрос на языке SQL преобразуется в некоторый последовательный план. Данный последовательный план преобразуется в параллельный план, представляющий собой совокупность п идентичных параллельных агентов, которые реализуют те же операции, что

и последовательный план. Здесь п обозначает число процессорных узлов. Это достигается путем вставки оператора обмена exchange в соответствующие места дерева плана запроса. На завершающем этапе агенты рассылаются на соответствующие процессорные узлы, где параллельно интерпретируются исполнителями запросов. Результаты выполнения агентов объединяются корневым оператором exchange на нулевом процессорном модуле.

Рассмотрим процесс параллельной обработки запроса, где выполняется соединение таблиц R и S БД (рис. 1). Q — II [><] S — это логическая операция соединения (join) двух отношений (таблиц) II и S по некоторому общему атрибуту Y. В данном примере таблица II фрагментирована произвольным образом, а таблица S — по атрибуту соединения Y. На рис. 1 показано, что логический план выполнения соединения двух отношений тиражируется на п процессоров в параллельной системе БД (на рис. 1 показаны два процессора). Далее происходит параллельная обработка на каждом процессоре соответствующих фрагментов таблиц R и S. Вследствие того что таблица R не фрагментирована по атрибуту соединения, при последовательном чтении записей этой таблицы происходит их обработка в операторе

Рис. 1. Обработка запроса Q = R X S в параллельной системе БД

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] предлагается для внутреннего отношения использовать раннюю материализацию (в оператор пересечения сразу подаются готовые кортежи).

В параллельных БД нефрагментированная по атрибуту соединения таблица пересылается другим узлам и используется во внешнем цикле. Поскольку оператор exchange работает покортежно [15], передавать битовые маски нельзя и для обоих отношений необходимо использовать раннюю материализацию. Рис. 2. Иллюстрация пе-

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

Преобразование Лапласа-Стилтьеса времени соединения двух таблиц. Ниже получены преобразования Лапласа-Стилтьеса (ПЛС) времени соединения таблиц А и В в параллельной системе баз данных в соответствии с планом -ka(<?fa(A)) > < 7Гb(&fb(B)) и услови-

\KAf\

ями поиска (фильтрации) в исходных таблицах Fa — f 10 П П /аь

\KBf\ 30 п П fBi

где 7г — операция проекции, и — операция селек-

ции, >< — операция естественного соединения подзапросов; /4. {¡в^ — элементарное условие поиска по г-му атрибуту таблицы А (В), например а, > 5; Куг {Кв г) ~ множество таких атрибутов таблицы А (В), на которые накладываются элементарные условия поиска; /д0 (/.Во) — условие поиска, которое включает в себя сравнение разных атрибутов таблицы А (В), например а, > о,.

Преобразования Лапласа-Стилтьеса позволяют оценивать не только математические ожидания случайных величин, но и моменты более высоких порядков, например дисперсию. Предполагается, что записи таблиц фильтруются и соединяются по неиндексированным атрибутам (т.е. рассматривается наихудший случай). Также предполагается, что таблица В фрагментирована по атрибуту соединения, а таблица А — нет. Преобразование Лапласа-Стилтьеса получено для метода КЫ (соединение с помощью вложенных циклов). Введем следующую функцию для г-го узла:

где

ад = г» (2)

— производящая функция числа записей исходной фрагментированной таблицы А (не по атрибуту соединения), обрабатываемых в г-м процессоре (узле); Уа/п — число записей таблицы А, которые хранятся в г-м узле; п — число узлов; функция Ф |, (. Z) учитывает, что читаются кортежи колонок по позициям, которые удовлетворяют условиям

поиска по предыдущим атрибутам, она рекуррентно определяется следующим образом:

(3)

*Ab(s,Z) =

,zny, (4)

>(1-4 (5)

— число атрибутов отношения А, по которым происходит

\Кае

фильтрация кортежей по условию р| /i

IttI+I кАа

П

(6)

— ПЛС времени чтения значений из колонок по значениям позий (т.е. по смещению); Кд-к — подмножество атрибутов отношения А, которые участвуют в операции проекции и не присутствуют в множестве К ; Кл_ — подмножество атрибутов отношения А, которые участвуют в операции соединения и не присутствуют в множестве Каж',

фо;{ь) — ПЛС времени чтения кортежа г-го столбца с диска; ф'''р (s) — ПЛС времени сохранения атрибута в оперативной памяти (ОП) и его чтения в кэш процессора; щ — размер атрибута; т — число циклов чтения/записи в ОП (на байт), необходимых для проверки условия по соответствующему атрибуту (для г-го столбца вводится аргумент ш, — см. (1), (3)); a>'r(s) — ПЛС времени обработки кортежа столбца в процессоре, г — число логических операций, необходимых для проверки условия по соответствующему атрибуту (для г-го столбца вводится аргумент Гг — см. (1), (3)); Xj(si lj mj) ~ ПЛС времени чтения кортежа у-ю столбца проекции (или селекции) с диска в кэш процессора и обработки в нем (см. (6)); 1 означает, что в процессоре проверяется только значение битовой маски в соответствующей позиции; ид — число логических операций процессора, необходимых для проверки условия /Ао; Pat — вероятность того, что сформированный кортеж удовлетворяет условию /д0; q.\4,(z\....,;;,,) — производящая функция,

учитывающая межпроцессорный обмен, она определяется рекуррентными формулами

{рлгз — это вероятность, что запись передается из г-го узла в у-й узел при условии, что она не была передана в узлы п,+ 1);

ЭАС • РАТ, (1А

.111 ) •

,*п))) (9)

— производящая функция (ПФ) числа записей исходной фрагменти-рованной таблицы А г-го узла, передаваемых другим процессорам в

\KAF\

соответствии с функцией распределения этого узла; Р ^ ■ = Р

Ah

— вероятность того, что сформированный кортеж удовлетворяет эле-

\KAFI

ментарным условиям по атрибутам К |/ ■ (условие р| /а»);

In)

(10)

— ПФ числа записей таблицы А, соединяемых в г-м узле.

Производящая функция результирующего числа записей, полученных после соединения таблиц А и В в г-м узле, определяется следующим выражением:

Ув

здесь = г г>, — ПФ числа записей исходной фрагментирован-

ной таблицы В, обрабатываемых в г-м узле; Ув/п — число записей таблицы В, которые хранятся в г-м узле. Предполагается, что таблица В фрагментирована по атрибуту соединения, Рдв — вероятность, что две записи из таблиц А и В удовлетворяют условию соединения, т.е.

\Da I

РАВ =Y^nAjT}Bk\

(12)

здесь \Иа | — мощность домена атрибута соединения в таблице А, //1 — вероятность, что атрибут соединения в записи таблицы А принимает значение ¿л Е Р> \, г]вк — вероятность, что атрибут соединения в

записи таблицы В принимает значение dBk £ Dв dBl. = d y -, DB — домен атрибута соединения в таблице В.

Получим формулу для ПЛС времени соединения таблиц по методу NLJ в г-м узле. Введем следующую функцию:

1 i—1 £ i+1 п

п N ^ ^

где УаД-) определяется выражением (1).

Функция (13) определяет ПЛС времени чтения записей таблицы А в г-м узле (s), ПЛС времени пересылки записей таблицы другим узлам по команде exchange (ф1^л'ил(з)), где они обрабатываются процессорами принимающих узлов, а также ПФ числа записей таблицы А, соединяемых в г-м узле (.:); v у — размер сформированного кортежа

/\КАж\ \

( X) ui}> wa — число операций чтения/записи (на байт), которое необходимо для перемещения сформированных записей.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Преобразование Лапласа-Стилтьеса времени соединения таблиц по методу NLJ имеет вид

хНАг(8,СВг(ЪВ1(^Фр (s) ЩРав,Фм (s) Фы ^^

функция рекуррентно определяется следующим образом:

= Q(PBß,Xb+i{sin+i,m,+1) ■ Ъв{ъ+1 )(s,z)), (15)

с = \КВВ\ — число атрибутов отношения В, по которым происходит

\КВр\

фильтрация кортежей по условию р| //•,; — размер сформи-

\КаА \КВж\

рованного кортежа ^ ^^ щ + ^^ г/^; уоав ~ число операций чтения/записи (на байт), которое необходимо для перемещения сформированных записей.

Первый сомножитель в (14) определяет ПЛС времени формирования материализованного представления таблицы В, которое соединяется с записями таблицы А в г-м узле.

Анализ режимов работы системы.

1. Пакетный режим — режим offline (система рассматривается как замкнутая).

Предполагается, что "узкое место" — это диск. Из работы [10, формула в табл. 2] следует, что ПЛС времени чтения кортежа столбца с диска равно

где L — число позиций в блоке столбца, 1 — ри ~ вероятность, что блок находится в буфере.

Далее речь пойдет об определении ПЛС времени чтения блока с диска с учетом очереди к диску, т.е. t]db{s).

В ПКСБД обрабатываются пакеты запросов. Их число — случайная величина £ > 0, Q(z) — ПФ В каждом пакете SQL-запросы выполняются последовательно (предполагается, что они связаны по данным: выходные данные одного запроса являются входными данными другого). Но запросы разных пакетов (по одному из каждого пакета) могут обрабатываться параллельно. Более того, каждый из этих запросов обрабатывается параллельно на п процессорах.

Рассмотрим наихудший случай, когда все п процессоров при обработке £ запросов обращаются к дисковой системе, состоящей из Nj, дисков (обработка как бы "проваливается" в дисковую систему).

Некоторый %-й процессор обращается к конкретному диску для чтения блока, связанного с обработкой запроса у-го пакета. Производящая функция числа других запросов, для которых читаются блоки с того же диска, равна

ег

Действительно,

ПФ(г) =

Q

Nu

(17)

— это ПФ числа обрабатываемых запросов

без 1 (т.е. без данного г;-го запроса); = 1 — — <?)

— учитывает, что для произвольного запроса его блок считывается с данного диска с вероятностью 1 /ТУр (испытание Бернулли).

Тогда ПЛС времени чтения блока (чередования) для ij-тo запроса с учетом очереди к диску будет равна

еп п

1

iV'

(S)

is),

(18)

где

Hdb

V'DB + S

1 /A'-db — среднее время чтения блока с диска.

Формула (18) справедлива для всех процессоров в очереди к диску, так как при чтении с диска используется "лифтовый" поиск, когда блоки читаются за один проход гребенки головок. На один поиск тратится следующее время: время подвода головок, время половины оборота шпинделя, время чтения блока.

2. Режим "запрос-ответ"—режим online (системарассматривается как разомкнутая). Положим, что г-я рабочая станция обращается к j-му запросу с интенсивностью Х, г Если предположить, что эти входные потоки заявок являются пуассоновскими, время обслуживания в ресурсах распределено по экспоненциальному закону, а переход от ресурса к ресурсу выполняется по вероятности, то модель обработки запросов можно представить в виде сети массового обслуживания (СМО). В этой сети обработку в узлах ресурсов можно представить в виде совокупности независимых СМО М/М/1 (это доказывается в теории массового обслуживания в виде теоремы разложения Джексона).

Ранее было получено ПЛС времени выполнения запросов (на одном из п процессоров после фрагментации таблиц — см. формулу (14)), которое зависит от ПЛС времени обработки в ресурсах системы:

Здесь и далее будем опускать верхний (NLJ) и нижний (г) индексы в левой части (14); ПЛС, входящие в (20), должны быть определены в соответствии с разложением Джексона следующими выражениями:

ßDB

ADB + s

(см. также (16)),

¡Лр

Мм Ар

А

м

(21)

Вопрос только в том, как определить интенсивности А в формулах (21). Каждую интенсивность можно вычислить по формуле

(22)

где \Ъз — интенсивность обращения г-й рабочей станции к у-му запросу, дх, — среднее число обрабатываемых кортежей (или циклов, операций) в ресурсе X (БВ — диск, М — ОП, N — сеть, Р — процессор) при выполнении одного у-го запроса.

Для определения дх, (X — БВ, М, ТУ, Р) можно использовать следующий прием. Заменим переменную ^ в выражениях (21) соответ-

ственно на переменные ьцц, вм, •> Далее перепишем формулу (20) в следующем виде:

Для ресурса X величину дХр которая используется в формуле (22), можно рассчитать, используя следующий алгоритм:

1. Положить в (23) п = 1, цх = 1, Ах = 0.

2. Для всех остальных ресурсов, кроме X, положить в (23) 8 = 0,

3. Найти частную производную =

Q

ds

4. Положить дх, = —> гДе пх ~ общее число узлов ресурса X

во всей системе (для X = ИВ — это общее число дисков, которые могут параллельно обрабатывать заявки, для X — М — это общее число блоков памяти, которые могут параллельно обрабатывать заявки, для X — N — это общее число параллельно работающих каналов межпроцессорной шины, для X = Р — это общее число процессоров в системе).

Оценка среднего времени выполнения запроса. Формулы для Фт(з) (г — номер колонки, т.е. атрибута), фм{з), фх{з), фр{з) в зависимости от архитектуры ПКСБД и режима работы представлены в табл. 1.

Дифференцируя выражение (14) как сложную функцию по § в нуле, можно получить моменты случайного времени (£) обработки запроса на соединение таблиц в ПКСБД:

Здесь индексы в левой части (14) опущены. Ручное дифференцирование выражения (14) является весьма трудоемкой задачей. Для получения значений моментов можно использовать методы численного дифференцирования, описанные в [16]:

ф\

h

где

ф:

т

Е

1 12

Ф'о

— разность ш-го порядка (при четном т

(25)

(26)

+т/2-з

% — целое, при нечетном т

(27)

— соответствующие значения функции, к — шаг таблицы разностей.

Таблица 1

Формулы для ПЛС времени пребывания в ресурсах: диске, ОП, сети, процессоре

Режим

И

§

Й О

Фвг СО

О

Сл

РШв

Шав Аш +л

§

Фм СО

#лг0)

фру)

Мм - А

■м

Мм ~ 4/ +5

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(обмен между процессорами осуществляется через ОП)

Мм ~ Л

■м

Мм Л-/ + Л'

¡Лр —Лр ¡иР -ЛР+я

Мм ~ А

■к

Мя Ай ^

ё о

й/ -1

\ X

ЛРовО)

о

О.

Ш:

13

•<?>овО)

Ад/

Мм + 5

Дм

у"« + -V

Мр

До

Мрв Мвв

Пример расчета. Далее приведен расчет времени выполнения соединения двух таблиц в ПКСБД. Характеристики ресурсов (интенсивности обработки) были получены с помощью программы синтетических тестов AIDA64 [17]. Расчеты выполнены при следующих значениях характеристик ресурсов.

1. Процессор — Intel Core i7-920 2.79 GHz. Для выбранного процессора измеренное значение числа процессорных циклов, выполняемых в секунду, ¡л,Р = 2,79 • 109 1/с.

2. Внешняя память Nd = 250, диск 3.5" Seagate Cheetan 15К.6 ST3146356FC; размер блока чередования (stripe size) (5бч=64кБ; среднее время поиска и чтения блока чередования с диска ¿Бч=^поДвоДа+ + ¿вращ/2 + ^Бч/Чтения = 4 + 4/2 + 64/200 = 6,6мс. Поэтому интенсивность чтения блоков с диска равна ¡j,dB = 1000/6,3 = 160 с-1,

3. Оперативная память DDR3-1600 РСЗ — 12800. Интенсивность чтения одного байта информации из ОП равна ¡iM = 7500 • 1024 х х 1024 1/с.

4. Параметры отношений и оператора соединения, использованных для расчетов, приведены в табл.2. В скобках указаны операции, в которых участвует атрибут: / — при поиске кортежей, 7Г — в операции проекции, а — в операции селекции.

Ниже приведены графики зависимостей среднего времени соединения таблиц Л и В от интенсивности поступления заявок на обра-

Таблица 2

Отношение А Отношение В

VA = 1000 РАТ = 0,01 VB = юооо Рвт = 0,01

и А = 700 wA = 1 ив = 700 WB = 1

Атра,о (/) Р = 0,33 Лр.Ьо (/) Р = 0,33

Лтр.аг (/) Р = 0,33 АТрЪ\ (/) Р = 0,33

Лтр.а2 (тг) Р = 1 Лр.&2 (/) Р= 1

Атр.а3 (/сгтг) Р = 0,33 АТр.63 (/СГТГ) Р = 0,33

(тг) Р = 1 АТр.&4 (*) Р = 1

(тг) Р = 1 Атр &5 (тг) Р = 1

Ajpüfj (-) Р = 1 Атр Ь6 (/) Р = 0,33

А1рат (-) Р = 1 Атр Ь7 (-) Р = 1

Атраа (-) Р = 1 Атр bs (-) Р = 1

ATpßg (-) Р = 1 Атр bg (-) Р = 1

Примечание. Для всех атрибутов v = 100, то = 1, г = 70.

ботку соответствующего оператора Select, числа процессоров и других параметров.

1. Архитектура SE — режим online. На рис. 3, 4 представлены зависимости времени выполнения соединения от интенсивности заявок и числа процессоров в архитектуре SE. Из графиков следует, что при числе процессоров более 4 последующее их увеличение не приводит к существенному уменьшению времени обработки и к повышению предельного порога интенсивности заявок, после которого возникает перегрузка.

ооооооооо

Loomouioioom

Рис. 3. Зависимость времени выполнения соединения от интенсивности запросов А, параметр — число процессоров п

о -1-L

1 2 3 4 5 6 7 8 П

Рис. 4. Зависимость времени выполнения запроса от числа процессоров п, параметр — интенсивность заявок А

Рис. 5. Зависимость времени выполнения запроса от интенсивности запросов

А, параметр — число процессоров п

t

0,28

Ä1 Аг \ Аз 1 Ад I As

\\

\ \ Ч \

WxV

Рис. 6. Зависимость времени выполнения запроса от числа процессоров п, параметр — интенсивность запросов А:

Ai = 1000, Л2 = 2000, А3 = 3000, А4 = 4000, А5 = 5000

2. Архитектура SN — режим online. На рис.5, 6 представлены зависимости среднего времени выполнения соединения таблиц от интенсивности заявок и числа процессоров в архитектуре SN. Так же, как и для режима SE, с ростом числа узлов темпы снижения времени выполнения запроса замедляются, но при этом возрастает предельный порог интенсивности. При этом предельные значения интенсивности почти в 5 раз превосходят аналогичные значения для архитектуры SE.

3. Пакетный режим. На рис. 7, 8 представлены зависимости времени выполнения соединения от числа пакетов и числа процессоров для пакетного режима работы. Из графиков следует, что время обработки практически линейно зависит от числа обрабатываемых пакетов

t

О _i_I_I_I_I_I_I_I_I_

50 100 150 200 250 300 350 400 450

Рис. 7. Зависимость времени выполнения соединения от числа пакетов параметр — число процессоров п

О -1-1-1-1-1-1-1-

1 2 3 4 5 б 7 81

Рис.8. Зависимость времени выполнения соединения от числа узлов п, параметр — число пакетов

4. Сравнение режимов работы. На рис.9, 10 представлены зависимости времени выполнения соединения таблиц от числа процессоров (узлов) для различных архитектур, режимов и нагрузок. Из графиков следует, что при единичной нагрузке (Л = 1 и ( = 1)в пакетном режиме запросы обрабатываются дольше. При высоких нагрузках SN-архитектура показывает лучшее время по сравнению с архитектурами SD и SE.

На рис. 11 приведена зависимость производительности системы от числа процессоров (показатель масштабируемости) для различных архитектур и режимов работы. Видно, что при пакетном режиме производительность отклоняется от линейной, а в режиме online она близка

Рис. 9. Зависимость времени выполнения запроса от числа процессоров (узлов) для различных режимов работы при единичной нагрузке

II111111111 ипптлттт

Рис. 10. Зависимость времени выполнения соединения от числа процессоров (узлов) для различных архитектур при нагрузке 100 заявок в секунду

к линейной (т.е. время выполнения запроса уменьшается практически пропорционально увеличению числа узлов). Но это, конечно справедливо, если с ростом числа процессоров накладные расходы ПКСБД увеличиваются незначительно.

Заключение. 1. Проанализирован процесс выполнения соединения двух таблиц в ПКСБД, реализованный на основе фрагментного параллелизма.

2. Получено ПЛС времени выполнения запроса на соединение двух таблиц в ПКСБД, позволяющее оценивать моменты различных порядков (математическое ожидание, дисперсию и др.).

3. Выполнен анализ пакетного режима функционирования ПКСБД

и режима "запрос-ответ".

к

12345678 9 10 11 12 13 14 15 16 17 1819 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34: л

Рис. 11. Показатель масштабируемости системы при различных режимах работы

4. Приведен пример расчета и построены графики зависимостей среднего времени соединения таблиц от интенсивности поступления заявок на обработку соответствующего оператора Select, числа процессоров и других параметров для различных архитектур ПКСБД и режимов ее функционирования. Сделан ряд нетривиальных выводов.

5. В дальнейшем предполагается использовать аппарат ПЛС для оценки времени выполнения аналитических запросов к хранилищу данных, реализованному на основе ПКСБД и использующему специальные планы соединения таблиц измерений и фактов.

СПИСОК ЛИТЕРАТУРЫ

1.Арсентьев А. Хранилища данных становятся инфраструктурным компонентом № 1. CNews аналитика. 2010. [Электронный ресурс]. [http://retail.cnews.ru/reviews/free/BI2010/articles/articles6.shtml]. Проверено 27.06.2011.

2. Michael Stonebraker. My Top 10 Assertions About Data Warehouses / Перевод Сергея Кузнецова, 2010 г.: [Электронный ресурс]. [http://citforum.ru/gazeta/166/]. Проверено 27.06.2011.

Mitch Cherniack, Tingjian Ge, Nabil Hache m, Stavros Harizopoulos, John Lifter, Jennie Rogers, and Stan Zdonik.

One Size Fits All? - Part 2: Benchmarking Results. 3rd Biennial Conference on Innovative Data Systems Research (CIDR), January 7-10, 2007, Asilomar, California, USA / Перевод Сергея Кузнецова, 2007 г.: [Электронный ресурс].

[http://citforum.ru/database/articles/one_size_fits_all_2/]. Проверено 27.06.2011.

■ SE

■ SD

■ SN

■ Package

4. E r i с Lai. Size matters: Yahoo claims 2-petabyte database is world's biggest, busiest. 2008 г.: [Электронный ресурс]. [http://www.computer-world.com/s/article/9087918/Size_matters_ Yahoo_claims_2_petabyte_data-base is world s biggest busiest]. Проверено 26.02.2012.

5. Григорьев Ю. А., Плутенко А. Д. Теоретические основы анализа процессов доступа к распределенным базам данных. - Новосибирск: Наука,

6. Григорьев Ю. А., Плужников В. Л. Оценка времени выполнения запросов и выбор архитектуры параллельной системы баз данных // Информатика

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

7. Григорьев Ю. А., Плужников В. Л. Модель обработки запросов в параллельной системе баз данных // Вестник МГТУ им. Н.Э. Баумана. Сер.

8. Г р и г о р ь е в Ю. А., П л у ж н и к о в В. Л. Оценка времени соединения таблиц в параллельной системе баз данных Информатика и системы управления.

9. Григорьев Ю. А., Плужников В. Л. Анализ времени обработки запросов к хранилищу данных в параллельной системе баз данных // Информатика и

10. Григорьев Ю. А., Ермаков Е. Ю. Модель обработки запросов в параллельной колоночной системе баз данных Информатика и системы управления.

11. Michael Stonebraker, Daniel J. Abadi, Adam Batkin, Xuedong Chen, Mitch Cherniack, Miguel Ferreira, Edmond Lau, Amerson Lin, Samuel R. Madden, Elizabeth J. O'Neil, Patrick E. O'Neil, Alexander Rasin, Nga Tran, and Stan B. Zdonik: C-Store: A Column-Oriented DBMS [Электронныйресурс]. [http://www.cs.yale.edu/homes/dna/pubs/displaypubs.cgi/]. Проверено 22.10.2011.

12. Daniel J. Abadi Query Execution in Column-Oriented Database Systems. [Электронный ресурс]. [http://www.cs.yale.edu/homes/dna/papers/abadiphd.pdf]. Проверено 25.12.2011.

13. Daniel J. Abadi, Daniel S. Myers, David J. DeWitt, and S a m u e l R. M a d d e n. Materialization Strategies in a Column-Oriented DBMS In Proceedings of ICDE, 2007. [Электронный ресурс]. [http://db.lcs.mit.edu/projects/cstore/abadiicde2007.pdf]. Проверено 25.12.2011.

14. D a n i e l J. A b a d i, S a m u e l R. M a d d e n and M i g u e l C. F e r -r e i r a. Integrating Compression and Execution in Column-Oriented Database Systems In Proceedings of ICDE, 2006. [Электронный ресурс]. [http://db.lcs.mit.edu/projects/cstore/abadisigmod06.pdf]. Проверено 25.12.2011.

15. С о к о л и н с к и й Л. Б., Цымблер М. Л. Лекции по кур-

[http://pdbs.susu.ru/CourseManual.html]. Проверено 04.12.2010.

16. Бахвалов Н. С. Численные методы (анализ, алгебра, обыкновенные диф-

17. AIDA64 Extreme Edition. [Электронный ресурс] [http://www.aida64.com/pro-duct/aida64-extreme-edition/overview] Проверено 08.04.2012.

Статья поступила в редакцию 28.05.2012

i Надоели баннеры? Вы всегда можете отключить рекламу.