НАУЧНОЕ ИЗДАНИЕ МГТУ ИМ. Н.Э. ЬАУМЛНЛ
НАУКА и ОБРАЗОВАНИЕ
Эл JVa ФС 77 - 48211. Государственная регистрация №(I4212Ü0025. ISSN 1994-0408
электронный научно-технический журнал
Преобразование Лапласа-Стилтьеса времени соединения
двух таблиц в параллельной системе баз данных
# 06, июнь 2012
DOI: 10.7463/0612.0390320
Плужников В. Л., Домников А. С.
УДК 004.657
Россия, МГТУ им. Н.Э. Баумана
chernen@bmstu.ru VPluzhnikov@croc.ru
Выполнение запросов в параллельной системе баз данных
Процесс выполнения SQL-запроса в параллельной системе баз данных можно представить в виде следующих шагов [2]:
• генерация последовательного плана выполнения запроса,
• тиражирование плана выполнения запроса на все узлы системы,
• обработка запроса над фрагментированными таблицами (распределение фрагментов таблиц БД по узлам системы выполняется заранее и один раз),
• слияние полученных данных.
Рассмотрим процесс параллельной обработки запроса, где выполняется соединение таблиц R и S базы данных (рис. 1). Q = R 1X1 S - это логическая операция соединения (join) двух отношений (таблиц) R и S по некоторому общему атрибуту Y. В данном примере таблица R фрагментирована произвольным образом, а таблица S - по атрибуту соединения Y. На рис. 1 показано, что логический план выполнения соединения двух отношений тиражируется на 'n' процессоров в параллельной системе баз данных (на рисунке показаны 2 процессора). Далее происходит параллельная обработка на каждом процессоре соответствующих фрагментов таблиц R и S. Вследствие того, что таблица R не фрагментирована по атрибуту соединения, при последовательном чтении записей этой таблицы происходит их обработка в операторе exchange, осуществляющем разбор записи и её межпроцессорный обмен. Таблица S фрагментирована по атрибуту соединения и записи читаемые из фрагментов этой таблицы обрабатываются на каждом процессоре локально.
Оператор exchange является составным оператором и включает в себя четыре оператора: gather, scatter, split и merge. Оператор split - это оператор, который осуществляет разбиение кортежей (записей), поступающих из входного потока, на две группы: свои и чужие. Свои кортежи - это кортежи, которые должны быть обработаны на данном процессорном узле. Эти кортежи направляются в выходной буфер оператора split (стрелка вверх). Чужие кортежи, то есть кортежи, которые должны быть обработаны на процессорных узлах, отличных от данного, помещаются оператором split во входной буфер правого дочернего узла, в качестве которого фигурирует оператор scatter. Нульарный оператор scatter извлекает кортежи из своего входного буфера и пересылает их на соответствующие процессорные узлы. Нульарный оператор gather выполняет перманентное чтение кортежей из указанного порта со всех процессорных узлов, отличных от данного. Оператор merge, реализующий логическую операцию join, определяется как бинарный оператор, который забирает кортежи из выходных буферов своих дочерних узлов, соединяет их и помещает результат в собственный выходной буфер. Таким образом, с помощью рассмотренных операций оператор exchange реализует полноценный межпроцессорный обмен записями в параллельной системе баз данных при обработке запроса методом фрагментарного параллелизма.
n- количество процессоров (фрагментов таблиц R и S)
Рис. 1. Обработка запроса Q = R |><| S в параллельной системе баз данных.
Для реализации параллельных систем баз данных используются следующие архитектуры:
1. SE (Shared-Everything) - архитектура с разделяемыми памятью и дисками.
2. SD (Shared-Disks) - архитектура с разделяемыми дисками.
3. SN (Shared-Nothing) - архитектура без совместного использования ресурсов.
Преобразование Лапласа-Стилтьеса времени соединения двух таблиц
Ниже приведены преобразования Лапласа-Стилтьеса (ПЛС) времени соединения таблиц A и B в параллельной системе баз данных [15]. ПЛС позволяют оценивать не только математические ожидания случайных величин, но и моменты более высокого порядка. Предполагается, что записи таблиц фильтруются и соединяются по неиндексированным атрибутам (т.е. рассматривается наихудший случай). Также предполагается, что таблица B фрагментирована по атрибуту соединения, а таблица A - нет. ПЛС получены для двух способов соединения: NLJ (соединение с помощью вложенных циклов) и HJ (хешированное соединение).
Формула (1) определяет производящую функцию (ПФ) числа записей исходной фрагментированной таблицы A i-го узла, передаваемых другим процессорам в соответствии с функцией распределения этого узла (s=0). Записи, распределённые на i-й процессор (zi ), обрабатываются на этом узле, а остальные записи передаются другим процессорам по команде exchange.
VAi(S ^v- zn) = GAi (ф (s)ффм( я)Фр (s)(1 - рА (1 - ЧАШ (zn)))), (1)
Va
где GAi (z) = z n - производящая функция числа записей исходной фрагментированной таблицы A, обрабатываемых в i-ом процессоре (узле); конечно, здесь эта функция может быть более сложной; VA/n - число записей таблицы A, которые хранятся в i-м узле; n - число узлов; PA - вероятность, что запись таблицы A удовлетворяет условию поиска по этой таблице (условию фильтрации);
фв ^)фм {б)Фр (s) - учитывает, что каждая запись таблицы А читается с диска, сохраняется и читается из ОП, обрабатывается процессором, qAin (z1,..., zn) определяется следующими рекуррентными формулами:
qAin (z1,..., zn ) = (1 - PAin )qAin-1(z1,..., zn-1) + pAinzn , qAin-1 (z1,..., zn-1) = (1 - pAin-1 )qAin-2(z1,..., zn-2) + pAin-1zn-1 (2)
4Ai1(z1) = (1 - PAi1) + PAi1z1, Pai1 = 1,
Ра - это вероятность, что запись передаётся из ьго узла в j-й узел при условии, что она не была передана в узлы п...]+1.
Формула (1) выводится на основании свойств производящих функций [10]. Действительно,
вА1 (1 - Ра (1 - ^)) (3)
- это производящая функция числа записей, удовлетворяющих условию поиска по таблице А,
ЧАт ^ь.-^ ) (4)
- производящая функция числа записей, передаваемых процессорам в соответствии с функцией распределения, для одной произвольной записи таблицы А (для случая, когда таблица фрагментирована не по атрибуту соединения; если таблица фрагментирована по атрибуту соединения, то чАп(2Ь...,2п) = 2^).
Поясним формулы (2). С вероятностью рА1п запись передаётся в п-й узел (испытание по схеме Бернулли успешно). С вероятностью (1 - рА1п) запись передаётся в другие узлы. Производящая функция числа таких записей равна
ЧАп-1(2п-1) и т д. по рекурсии.
Подставляя (4) в (3), получим (1). Формула (5) определяет производящую функцию числа записей таблицы А, соединяемых в ьом узле.
^■(2) = 1\Га] (0,11,...,12-1,2,1м,...,1я), (5)
1=1
здесь УА1 (б, 2ъ.., 2п) определяется выражением (1).
При выводе формулы (5) учитывалось, что число записей, обрабатываемых в ьом узле равно сумме случайного числа записей, поступающих в ьй узел из всех п узлов в соответствии с их функциями распределения. Производящая функция суммы случайного числа записей равна произведению производящих функций.
Производящая функция результирующего числа записей, полученных после соединения таблиц А и В в ьом узле, определяется следующим выражением:
(2) = WAl (Ов1 (1 - РвПАВ (1 - 2)) , (6)
здесь От (2) = 2 п - производящая функция числа записей исходной фрагменти-
рованной таблицы В, обрабатываемых в ьом узле; Ув/п - число записей таблицы В, которые хранятся в 1-ом узле. Предполагается, что таблица В фрагментирована по атрибуту соединения, пАВ - вероятность, что две записи из таблиц А и В удовлетворяют условию соединения.
Da I
Пав =1.ПАПвк , (7)
j=1
здесь |Da| - мощность домена атрибута соединения в таблице A, nAj - вероятность, что атрибут соединения в записи таблицы A принимает значение dAj£DA, nBk - вероятность, что атрибут соединения в записи таблицы B принимает значение dBkGDB : dBk = dAj, DB - домен атрибута соединения в таблице B. Докажем (6).
WAi (GBl (z)) (8)
- это производящая функция числа записей в декартовом произведении соединяемых таблиц,
1 - РвПав (1 - z) (9)
- это производящая функция числа записей, удовлетворяющих условию фильтрации (PB) и условию соединения (nAB), для одной записи таблицы B (действует схема испытания Бернулли). Вероятность nAB получена по формуле полной вероятности (см. (7)). Подставляя (9) в (8), получаем (6).
Получим формулу для ПЛС времени соединения таблиц по методу NLJ в i-ом узле. Ведём следующую функцию
1 i-1 i i +1 n
HAi (s>z) = VAi (s> ф (s),...> ф (s\^ ф (s\...^N (s)) X
n , (10)
x п Vaj (0,11,...,1i-1,z!+b...,1n)
j=1, j
где VAi(-) определяется выражением (1).
Функция (10) определяет время чтения записей таблицы A в i-ом узле (s), время пересылки записей таблицы другим узлам по команде exchange (q>N(s)), где они обрабатываются процессорами принимающих узлов, а также число записей таблицы, соединяемых в i-ом узле (z). ПЛС времени соединения таблиц по методу NLJ имеет вид
4NLJ (s) = Hai (s, GBl (фв (s)^M (s)фp (s)(1 - РвПав (1 - ФN (s))))), (11)
где HAi(-) определяется выражением (10), GBi (1 - PBnAB (1 - z))- производящая функция числа записей таблицы B, удовлетворяющих условию поиска по таблице B (PB) и условию соединения (nAB - см. (7)). Поясним (11).
Следует отметить, что таблица B, сканируемая во внутреннем цикле, фраг-ментирована по атрибуту соединения. Каждая запись из A сравнивается по
атрибуту соединения со всеми записями из B. Каждая запись из B должна быть прочитана с диска, сохранена и прочитана из ОП и обработана в процессоре
(произведение фв ( s)фM ( ( s), при этом учитывается наличие общесистемного
буфера СУБД, т.е. кэша). В формуле (11) учитывается, что чтение и обработка записей из B повторяется для каждой записи из A (это связано с тем, что в скобочном шаблоне для каждой записи из A выполняется команда reset для правого сына, т.е. для B). С вероятностью PBnAB результирующая запись передаётся по команде exchange в узел (9N(s)), где выполняется сборка и формируется окончательный результат.
Получим ПЛС времени соединения таблиц по методу HJ (алгоритм Grace) в i-ом узле. Таблица B фрагментирована по атрибуту соединения. ПЛС времени соединения таблиц по методу HJ имеет вид
%HJ (s) = HAl (sMD (sW2M(s)YA ) x
Gb, Ф (s^M (s^p (s)(1 - PB (1 - ф (ф (s)fB ))) x , (12)
Wa, (Gbi (1 - Pb + Pb (1 -1 + ^Фр (s))(1 - Пав + ПавФм (s))))
r r
где HAi(s, z) определяются выражением (10), GBi(z) - производящая функция числа записей фрагментированной исходной таблицы B, обрабатываемых в i-ом узле, WAi(z) определяется выражением (5).
Поясним формулу (12). Записи фрагментированной таблица А читаются в i-м узле (HAi(s, •)). Записи таблицы B должны быть прочитаны с диска, сохранены и прочитаны из ОП, а также обработаны в процессоре c целью их фильтрации
( GBl ф (s^M (s)фР ( s)(1 - PB (•)))). Записи таблиц A и B, поступившие в i-й узел,
подвергаются хэшированию ((ф1)(s^2(s))aA и (ф1)(s^M-(s))®B ).
Если хэш-таблица создающей таблицы A полностью сохраняется в оперативной памяти, то записи и создающей таблицы (А), и зондирующей таблицы (B) читаются с диска и обрабатываются один раз (это чтение уже учтено, поэтому ®A=®B=0). Если нет, то каждая таблица читается с диска (1-ое обращение к диску, оно уже учтено), она хэшируется в ОП и хэш-группы сохраняются на диске (2-ое обращение к диску). После этого пары хэш-групп таблиц A и B (одна пара имеет одинаковое значение хэш-ключа) читаются с диска (3-е обращение к диску). Т.к. размеры хэш-групп создающей таблицы A могут отличаться, то в рассматриваемом случае ®A < 2 и ®B < 2.
Поясним третий сомножитель в формуле (12). Хеш-группы (разделы) таблиц A и B соединяются в оперативной памяти. Каждая запись таблицы A
хранится в одном из r разделов (число записей таблицы A определяется ПФ WAi(^)). Произвольная запись из B (их число определяется ПФ GBi(1-PB+PBz)) с вероятностью 1/r попадает в тот раздел, где хранится запись из A, и выполняется операция сравнения значений атрибутов соединения ^P(s)). С вероятностью nAB сравнение будет успешным и результат соединения двух записей будет передан в узел сборки ^N(s)).
Так как узлы в параллельной системе баз данных идентичны, то (11) и (12) определяют ПЛС времени реализации плана соединения, т.е. времени выполнения исходного запроса. Дифференцируя (11) и (12) в нуле, можно получить моменты (математическое ожидание, дисперсию и т.д.) случайного времени выполнения соединения таблиц в параллельной системе баз данных методами NLJ и HJ.
ЛИТЕРАТУРА
1. М. Тамер Оззу, Патрик Валдуриз. Распределенные и параллельные системы баз данных: [Электронный ресурс]. Режим доступа: http://citforum.ru/database/classics/distr and paral sdb/ . Проверено 26.11.2010.
2. Соколинский Л.Б., Цымблер М.Л. Лекции по курсу "Параллельные системы баз данных": [Электронный ресурс]. Режим доступа: http : //pdbs. susu.ru/CourseManual. html . Проверено 04.12.2010.
3. Дж. Льюис. Oracle. Основы стоимостной оптимизации. - СПб: Питер, 2007. - 528 с.
4. Григорьев Ю.А., Плужников В.Л. Оценка времени выполнения запросов и выбор архитектуры параллельной системы баз данных// Информатика и системы управления. - 2009. - № 3. - С. 3-12.
5. Производительность СУБД Oracle Database 11g при работе на сервере Sun SPARC Enterprise M9000: [Электронный ресурс]. [http://ru. sun.com/sunnews/press/2010/2010-05- 18.j sp]. Проверено 26.11.2010
6. В.А. Варфоломеев, Э.К. Лецкий, М.И. Шамров, В.В. Яковлев. Лекции по курсу "Операционные системы и программное обеспечение на платформе zSeries": [Электронный ресурс]. [http://www.intuit.ru/department/os/ibmzos/]. Проверено 26.11.2010.
7. Керри Болинджер. Врожденный параллелизм: [Электронный ресурс]. [http://www.osp.ru/ os/2006/02/1156526/_p1.html]. Проверено 26.11.2010.
S. Лев Левин. Teradata совершенствует хранилища данных: [Электронный ресурс]. [http://www.pcweek.ru/themes/detail.php?ID=71626]. Проверено 26.11.2010.
9. Oracle Real Application Clusters Administration and Deployment Guide 11g Release 1 (11.1): [Электронный ресурс]. [http://download.oracle.com/docs/cd/B28359_01/rac. 111/ b28254/admcon.htm/]. Проверено 26.11.2010.
10.Григорьев Ю.А., Плутенко А.Д. Теоретические основы анализа процессов доступа к распределённым базам данных. - Новосибирск: Наука, 2002. - 180 с.
11.Жожикашвили В.А, Вишневский В.М. Сети массового обслуживания. Теория и применение к сетям ЭВМ. - М.: Радио и связь, 1988. - 192 с.
12.Клейнрок Л. Теория массового обслуживания. - М.: Машиностроение, 1979. - 432 с.
13.Бронштейн О.И., Духовный И.М. Модели приоритетного обслуживания в информационно-вычислительных системах. - М.: Наука, 1976. - 220 с.
14. Форум/Использование СУБД/Oracle/CPUSPEED на IntelXeon 5500 (Nehalem): [Электронный ресурс]. [http://www.sql.ru]. Проверено 02.12.2010.
15.Григорьев Ю.А., Плужников В.Л. Оценка времени соединения таблиц в параллельной системе баз данных// Информатика и системы управления. -2011. - № 1. - С. 3-16.
scientific periodical of the bauman mstü
SCIENCE and EDUCATION
EL JV® FS 77 - 4821 1. №0421200025. ISSN 1994-0408 electronic scientific and technical journal
The Laplace-Stieltjes transform of connection time of two tables
in parallel database
# 06, June 2012
DOI: 10.7463/0612.0390320
Pluzhnikov V.L., Domnikov A.S.
Russia, Bauman Moscow State Technical University
chernen@bmstu.ru VPluzhnikov@croc.ru
Connection of two tables in parallel database system (PDBS) was analyzed in this article. The Laplace-Stieltjes transform (LST) of connection time of two tables with NLJ and HJ methods in PDBS was introduced. Random character of the number of rows in the connecting tables is considered along with node fragmentation of tables, filtration of all table entries, probability of matching of connection attribute values, variants of hash-table location in the memory and parameters of interprocessor communication of PDBS nodes. Generating function of resultant value of entries, obtained after connection of tables in any node is presented in the article.
Publications with keywords: parallel system of database, Laplase-Stieltjes transformation, SE, SD, SN architectures, NLJ and HJ methods of connection of tables
Publications with words: parallel system of database, Laplase-Stieltjes transformation, SE, SD, SN architectures, NLJ and HJ methods of connection of tables
References
1. Ozsu M.T., Valduriez P. Distributed and parallel database systems (Russ. version: M. Tamer Ozzu, Patrik Valduriz. Raspredelennye iparallel'nye sistemy baz dannykh. Available at: http://citforum.ru/database/classics/distr_and_paral_sdb/ , accessed 26.11.2010).
2. Sokolinskii L. B., Tsymbler M. L. Lektsiipo kursu «Parallel'nye sistemy baz dannykh" [Lectures on the course "Parallel database systems"]. Available at: http://pdbs.susu.ru/CourseManual.html, accessed 04.12.2010.
3. Lewis J. Cost-Based Oracle Fundamentals (Expert's Voice in Oracle). Apress, 2005. 520 p. (Russ. ed.: Dzh. L'iuis. Oracle. Osnovy stoimostnoi optimizatsii. SPb., Piter, 2007. 528 p.).4. Grigor'ev Iu.A., Pluzhnikov V.L. Otsenka vremeni vypolneniia zaprosov i vybor arkhitektury parallel'noi sistemy baz
dannykh [Score a run-time of query and selection of architecture of the parallel database systems]. In-formatika i sistemy upravleniia, 2009, no. 3, pp. 3-12.
5. Proizvoditel'nost' SUBD Oracle Database 11gpri rabote na servere Sun SPARC Enter-prise M9000 [Performance of Oracle Database 11g database while working on the server Sun SPARC Enterprise M9000]. Available at: http://ru.sun.com/sunnews/press/2010/2010-05-18.jsp, accessed 26.11.2010.
6. Varfolomeev V.A., Letskii E.K., Shamrov M.I., Iakovlev V.V. Lektsiipo kursu "Oper-atsionnye sistemy iprogrammnoe obespechenie naplatforme zSeries" [Lectures on the course "Oper-ating systems and software on zSeries platform"]. Available at: http://www.intuit.ru/department/os/ibmzos/, accessed 26.11.2010.
7. Carrie Ballinger. Born To Be Parallel (Russ. version: Kerri Bolindzher. Vrozhdennyipar-allelizm. Available at: http://www.osp.ru/os/2006/02/1156526/, accessed 04.05.2012.).
8. Levin L. Teradata sovershenstvuet khranilishcha dannykh [Teradata improves data ware-house]. Available at: http://www.pcweek.ru/themes/detail.php?ID=71626, accessed 04.05.2012.
9. Oracle Real Application Clusters Administration and Deployment Guide 11g Release 1 (11.1). Available at: http://download.oracle.com/docs/cd/B28359_01/rac.111/ b28254/admcon.htm, accessed 26.11.2010.
10. Grigor'ev Iu.A., Plutenko A.D. Teoreticheskie osnovy analizaprotsessov dostupa k raspredelen-nym bazam dannykh [Theoretical basis of analysis of the processes of access to distributed databases]. Novosibirsk, Nauka, 2002. 180 p.
11. Zhozhikashvili V.A, Vishnevskii V.M. Seti massovogo obsluzhivaniia. Teoriia iprime-nenie k se-tiam EVM [Queueing network. Theory and application to computer networks]. Moscow, Ra-dio i sviaz', 1988. 192 p.
12. Kleinrok L. Queueing Systems. Vol. 1. Theory. New York, John Wiley & Sons, 1975. (Russ ed.: Kleinrok L. Teoriia massovogo obsluzhivaniia. Moscow, Mashinostroenie, 1979. 432 p.).
13. Bronshtein O.I., Dukhovnyi I.M. Modeliprioritetnogo obsluzhivaniia v informatsionno-vychislitel'nykh sistemakh [Model of the priority services in the information-computing systems]. Moscow, Nauka, 1976. 220 p.
14. Forum/Ispol'zovanie SUBD/Oracle/CPUSPEED na IntelXeon 5500 (Nehalem) [Forum / Using the database/Oracle/CPUSPEED on IntelXeon 5500 (Nehalem)]. Available at: http://www.sql.ru, accessed 02.12.2010.
15. Grigor'ev Iu.A., Pluzhnikov V.L. Otsenka vremeni soedineniia tablits v parallel'noi sisteme baz dannykh [Score of the time of connection of tables in a parallel database system]. Informatika i sistemy upravleniia, 2011, no. 1, pp. 3-16.