электронное научно-техническое издание
НАУКА и ОБРАЗОВАНИЕ
Эл № ФС 77 - 30569. Государственная регистрация №0421100025. ISSN 1994-040S
Оценка среднего времени обработки запросов к хранилищу данных методом создания первичного индекса для таблицы фактов в параллельной системе баз данных
77-30569/241916
# 11, ноябрь 2011 Григорьев Ю. А.
УДК 004.657
МГТУ им. Н.Э. Баумана
В работах [11, 12] получено преобразование Лапласа-Стилтьеса (ПЛС) времени выполнения запроса к хранилищу данных, которое справедливо для каждого АМР параллельной системы баз данных:
% (s) = R(s) • Hг (sppS (s)x(s( (s)), (1)
где
R(s) = jjGi (1 - Pi (1 -x2(s))), (2)
i=1
K - число измерений,
Vl
Gi (z) = zn - производящая функция числа записей i-го измерения в узле, Vi - общее число записей i-го измерения, n - число AMP- узлов (AMP-процессоров),
pi - вероятность, что запись i-го измерения удовлетворяет условию поиска по этому измерению в запросе,
X2(s) - ПЛС времени обработки записи блока листового уровня индекса (x(s)) и записи таблицы измерения (x(s)),
X(s) = Pd (s)Pu( s)PPI (s), (3)
1 i-1 i i+1 n
Hi z) = V (s (pN (s),..., (pN (s\ z, (pN (s),...( (s)) X ,
rn-1/n 1 1 „2
(4)
xVn-1(0,11,...,1i -1, (m (s) z,1i+1,...,1n) V(s, z) = yk-1 <A gk (1 - Pk (1 - (pj (s)(M (s)4n(Z1,—, zn)))), (5)
Ук-х(^) = Ук - 2^ Ок-1(1 - Рк-1(1 - ФРЗ (^¿ЖГЧ^М"-1)(^} ))),
= У1(^, О2(1 - Р2(1 - ^(^¿ЖГЧ^М"-1)(*)))), (6) У1(з,х) = О1(1 - Р1(1 - ^-1(*)<^п-1)(*) 2п)), дп (21»...» гп) определяется следующими рекуррентными формулами:
Яп (^1»...» 2п ) = (1 - Рп )Яп-1 (^1»...» 2п-1 ) + Рп2п , Яп-1 (2п-1 ) = (1 - Рп-1 )Яп-2 (21,..., 2п-2 ) + Рп-12п-1 :
=(1 - Р1) + Р1Р1 = 1»
(7)
Pj - это вероятность, что запись передаётся из данного узла в ]-й узел при условии, что она не была передана в узлы п.^+1.
В табл. 1 [11» 12] приведены выражения для ПЛС фв(в), фм(в), ф^), фи^)» фк^в), фРА(в), фге^) - это ПЛС случайного времени обработки записи (исходной, промежуточной, результирующей) в ресурсе (диске, ОП, шине, процессоре).
Таблица 1
БЫ
1 Р . Р Мвб - (п -1) ■ Рв^в / NN 1 Р I Р мвб
1 Рв 1 Рв Мвб - (п -1) ■ Рв^в / NN + Я 1 РВ 1 РВ Мвб + Я
фм(в) Мм - (п - 1)^м Мм - (п - Щм + Я (обмен между процессорами осуществляется через ОП) Мм Мм + Я
Ыв) МN - (п - 1)^N МN - (п - + Я
фи^Х фР-Т^Х фРА^Х фРБ(в) МР1 Мрз МРА Мр8 МР1 + ^ Мрз + ^ МРА + ^ Мрб + )
Здесь
1-рБ - вероятность, что запись находится в кэше (СУБД или диска),
Хм, - интенсивности запросов к разделяемому ресурсу (на чтение записей из ЯАГО-массива, на запись/чтение записей таблиц из ОП, на передачу записей по соединительной шине),
№в=1^БЧ - интенсивность чтения блоков чередования с диска ЯАГО-массива, 1БЧ - среднее время чтения блока чередования,
N - количество дисков в ЯАГО-массиве (с учётом зеркальных),
- интенсивность записи/чтения записей таблиц из ОП,
- интенсивность передачи записей по соединительной шине,
- интенсивность обработки записей в процессоре при их поиске и чтении с помощью индекса,
ци - интенсивность построения записей декартова произведения в процессоре,
- интенсивность сравнений записей БД в процессоре при их сортировке,
^ра - интенсивность агрегации записей (значений фактов),
Рге - значение коэффициента при среднем значении . фр8 (см. ниже),
(п-1) в табл. 1 означает, что заявка не ждёт сама себя в очереди к ресурсу.
В дальнейшем будем считать, что запись результирующего декартова произведения остаётся в данном узле или передаётся в другие узлы с одинаковой вероятностью. Т. е. pj = 1/ в формулах (7). В этом случае в формуле (5)
1 п
Яп ^ь.- ^п) = -Х 21 • (8)
п\=1
Продифференцируем выражение (1) в нуле и оценим математическое ожидание времени выполнения запроса к ЯОЬАР в параллельной системе баз данных [11, 12]. При этом индекс 1 будем опускать в силу симметричности (8).
к к 1 к -
М = -Ч' (0) = [21 glpl + пк -1 П §гРг ](в +
I=1 1=1
к-1 -1 I к 6П - 2 к-1 к -
[2(п-1)glР1 + 2п Iп ПgjРj + 41giРi +-п ПgiРi](м+
1=2 j =1 1=1 п 1=1
к-1 -1 I п -1 к -1 к -
[(п - 1)glР1 + (п - 1) I п1 ПgjРj +-п ПgiРi ]Фы +
1=2 ]=1 п 1=1
к-1 ■ -1 I к-1 к - к к -
[ I п1 ПgjРj + п ПgiРi\фрз + [21giРi + п ПgiРi]фр1 +
I=2 j=1 I=1 I =1 I=1
к - к -
[пк-1 П glРl ] Фрб + [пк-1 П glРl ] Фрл = (9)
I=1 i=1
Об Фб+Qм 9м + Фм+Фрз+Ор1 Фр1 + Фрб+°рл Фрл
где фБ и т.д. определяются следующим образом [4]:
- если соответствующий ресурс является "узким местом" (табл. 2), то это математическое ожидание времени пребывания в ресурсе, ПЛС которого представлено в табл. 1 (где фигурирует соответствующая интенсивность запросов к ресурсу - А0 и т.д.),
- в противном случае фб = 1//иБ и т.д. (для неразделяемого ресурса и для разделяемого ресурса, который не является "узким местом"),
I
gi = О (1) = V / п - математическое ожидание числа записей таблицы 1-го измерения, которые хранятся в узле.
Остальные переменные в формуле (9) определены выше. Формулы для оценки А0, Ам, приведены в табл. 2 [11].
Архитектура Условие наличия "узкого места" "Узкое место" Определяемый параметр Х Формула для оценки Х
БЕ & >> ом + ом Диск хб Оо
мо Мм ом + + ^ Мм , м,
^ << ом + мв мм Память ХМ Ом + Ом Оо О, Мо , М
Оо >> Ом мо Мм Диск хб Оо ом + ом + ^& мм мм 1 М
Оо << Ом Сеть Ом
мо мм мо мм 1 М
нет Сеть
В табл. 2 введено следующее обозначение:
^ 0__ QpJ + Оп + ^ + Орл (10)
, М, МPJ МР1 Мрб Мрл
Помимо архитектур БЕ, ББ и БК на практике применяют смешанные архитектурные решения. Например, узлы БМР (БЕ) соединяются по схеме "точка-точка" типа Ву№1 (БК). В этом случае формулу (9) можно переписать в следующем виде:
М = Ро (ПЛМР ) + ОМ Рм + (пЛМР, Г(п))РмШР + (П)
(ОЫ -(пЛМР,Г(п)))Рм + ^ РpJ + ОР1 Рр1 + РрБ + ОРЛ Ррл
здесь предполагается, что в БМР-узле "узким местом" является диск, пАМР - число АМР-процессоров (узлов) в одном БМР-узле, п= п8МР -пАМР - общее число АМР-процессоров в системе, ПэМР - число БМР-узлов, Г(п) - вектор ^(п), ..., Вк(п)),
РтМР _ 1/ МщМР - среднее время передачи записи между АМР-
процессорами БМР-узла (чтение из ОП - передача записи (сообщения) по системной шине - запись в ОП),
остальные обозначения такие же, как и в формуле (9).
Пример расчёта среднего времени выполнения запроса к хранилищу данных в параллельной системе баз данных
Расчёт математического ожидания (среднего) времени выполнения запроса к хранилищу данных в ПСБД был выполнен при следующих значениях характеристик ресурсов.
1. Процессор - Intel Xeon 5160. СУБД - Oracle 9i. В [9] для выбранного процессора приведено измеренное значение числа процессорных циклов, выполняемых Oracle в секунду (CPUSPEED) - 1.5-109.
Согласно [3, стр. 228-230] при поиске и чтении 400 записей с помощью обычного индекса (B-дерева) было потрачено 6-105 процессорных циклов. Для интенсивности обработки записей в процессоре при их поиске и чтении с помощью индекса имеем - р,и= 400/(6-105/1.5-109)= 106.
В [3, стр. 347] приведены результаты автотрассировки простого запроса соединения: число обработанных записей во внешней таблице- 320, число процессорных циклов - 7-104. Поэтому для интенсивности построения записей декартова произведения в процессоре имеем - ^PJ= 320/(7-104/1.5-109)= 7-106.
Согласно [3, стр. 397, 400] на выполнение 2-107 сравнений при сортировке записей БД в оперативной памяти было потрачено 6,21 секунд процессорного времени при скорости 3,5-108 процессорных тактов в секунду (CPUSPEED). Поэтому для интенсивности сравнений записей БД в процессоре при их сортировке имеем - ^ps= 2-107 - (1.5-109/3,5-108)/6,21 = 14-106.
Интенсивность агрегации записей (значений фактов) ^PA= ^PS= 14-106 (т .к. многие операции агрегирования фактов требуют сортировки - order by, group by и др.
2. Оперативная память (ОП) - DDR3-1600 PC3- 12800. Расчёты показывают, что интенсивность записи/чтения записей таблиц из ОП равна 10.4-106 (она мало зависит от длины записи, т.к. данные читаются страницами из ОП).
3. Высокоскоростная системная шина:
для SE (SMP) - системная шина QuickPath Interconnect, её производительность достигает 25 Гбайт/с; при средней длине записи 1З= 100 байтов интенсивность передачи записей по шине равна ^N= 250-106; при такой скорости эта шина не будет "узким местом" в архитектуре SE,
для SD (кластерная архитектура) и SN (MPP) - в обоих случаях узлы соединены по схеме "точка-точка" типа ByNet (т.е. шина является неразделяемым ресурсом) и интенсивность передачи данных по этой шине равна 20 Мбайт/с на один узел. Таким образом, при средней длине записи 1З= 100 байтов интенсивность передачи записей по соединительной шине равна ^N= 0.2n-106.
2. Внешняя память - RAID10 c NR=30 дисками (с учётом зеркальных) 3.5'' Seagate Cheetah 15K.6 ST3146356FC (объём диска 147 Гбайт); размер блока чередования (stripe size) - Q^=64 Кбайт; среднее время поиска и чтения блока чередования с диска - tБЧ = подвода + tвращения/2 + QБч/Vчтения = 4 + 4/2 + 64/200 = 6,3 мс. Следовательно, ^DB=1/%4=1.6-10 .
При расчётах использовались формула (11), а также формулы из табл. 1 и 2. Графики зависимостей математического ожидания (среднего) времени выполне-
ния запроса к хранилищу данных (М) от общего числа процессоров 'п' в параллельной системе баз данных приведены на рис. 1.
Зависимость от общего числа AMP-процессоров - n Vp=20, K=5
X
ш
X
с; о с
ъ
ш к S ш о. ш О)
щ
X
ч
(U
.
о
200
180
160
140
£ 120
л 100 о
£L 80
с л
« 60 40 20
8 12 Число AMP-процессоров
16
■nAMP=1
■nAMP=2
■nAMP=4
0
4
Рис. 1. Зависимости математического ожидания времени выполнения запроса к хранилищу данных (М) от числа процессоров (n).
Графики построены при следующих параметрах: среднее число записей таблиц измерений в запросе - ViPi= Vp= 20, число измерений - K=5 (число записей в декартовом произведении измерений равно 205), вероятность, что запись находится в кэше (СУБД или диска) - 1-pD= 0,99. Каждая зависимость соответствует конкретному числу AMP-процессоров в одном SMP-узле: nAMP= 1 (SN), 2, 4 (см. легенду). При этом число SMP-узлов равно nSMP= n/nAMP.
Анализ зависимостей на рис. 1 позволяет сделать следующие выводы:
1. Перегрузка диска в SMP-узле наступает при nAMP= 4, в этом случае среднее время обработки одной записи в дисковой подсистеме узла рассчитывалось по формуле
(nAMP ) = nAMPPD / MDB . (12)
Уменьшение времени выполнения запроса при nAMP= 4 с ростом общего числа AMP-процессоров объясняется уменьшением числа записей таблиц измерений и фактов, хранящихся в одном SMP-узле.
2.Дл случая nAMP= 4 при n=16 (число SMP-узлов равно 4) время выполнения запроса (50 сек.) соизмеримо с временем выполнения запроса в SN(MPP)-системе (nAMP= 1) при n=16 (13 сек.). Но такая смешанная SMP-система в несколько раз дешевле (примерно в 4 раза) соответствующей SN(MPP)-системы.
3. В рассматриваемом примере время выполнения запроса в "чистой" БМР-системе (п8МР= 1) не зависит от 'п' и равно примерно 200 с. Это подтверждает тот факт, что при перегрузке "узкого места" (диска) не имеет смысла наращивать число АМР-процессоров в "чистой" БМР-системе.
Графики зависимостей математического ожидания (среднего) времени выполнения запроса к хранилищу данных (М) от среднего числа записей таблиц измерений в запросе (У;р;= Ур) в параллельной системе баз данных приведены на рис. 2.
Графики на рис. 2 построены при следующих параметрах: общее число АМР-процессоров - п= 16, число АМР-процессоров в узле - пАМР= 1 (БК(МРР)-система, см. сплошные линии), вероятность, что запись находится в кэше (СУБД или диска) - 1-рв= 0,99. Одна зависимость соответствует числу измерений в запросе: К= 3, 4, 5(см. легенду).
Анализ зависимостей на рис. 2 позволяет сделать следующие выводы:
1. Время выполнения запроса сильно зависит от числа записей в измерении (Ур) и числа измерений (К), указанных в запросе. МРР-системе с 16 АМР-процессорами потребуется 19 часов, чтобы обработать записи 5-ти измерений по 110 записей в каждом измерении (количество записей в декартовом произведении равно 1105). Чтобы снизить это время до 19 минут потребуется МРР-система с 1000 АМР-процессорами.
2. Системе с 4-я БМР-узлами по 4-е АМР-процессора в каждом узле (см. пунктирную линию на рис. 2) потребуется 72 часа, чтобы обработать записи 5-ти измерений по 110 записей в каждом измерении.
Зависимость от числа записей измерения в запросе - Ур (в логарифмическом масштабе), п=16, пАМР=1
100000
10000
с;
о ^
1= ^
3 <и
Ю .О,
к (О
г о
ф о
а. а. ш
ф
ф
X
Ч
Ф а.
О
л «
1000
100
10
20 50 80 110
Число записей измерений в запросе
■К=3
■К=4
■К=5 —Ж— п=16,пАМР=4,К=5
1
Рис. 2. Зависимости математического ожидания времени выполнения запроса к хранилищу данных (М) от среднего числа записей таблиц измерений в запросе (Уф1= Ур).
В работе проанализирован процесс обработки запроса к хранилищу данных, реализованному на основе параллельной системы баз данных и использующему специальный план соединения таблиц измерений и фактов.
Приведено выражение для математического ожидания времени выполнения запроса. Рассмотрен практический пример расчёта и сделаны некоторые выводы. В частности, если "узкое место" (диск) системы не перегружено (его загрузка меньше 1), то среднее время выполнения запроса к хранилищу данных в системе с SMP-узлами соизмеримо с временем обработки этого запроса в MPP-системе с тем же количеством AMP-процессоров. Это позволяет существенно сэкономить денежные средства при приобретении аппаратного обеспечения параллельной системы баз данных.
ЛИТЕРАТУРА
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. Григорьев Ю.А., Плужников В.Л. Оценка времени соединения таблиц в параллельной системе баз данных// Информатика и системы управления. - 2011. - № 1. - С. 3-16.
5. Лисянский К., Слободяников Д. СУБД Teradata® для ОС UNIX®: [Электронный ресурс]. [http://citforum.ru/database/kbd98/glava5.shtml]. Проверено 14.03.2011.
6. Кузнецов С. Essential Modelling Options: [Электронный ресурс]. [http://citforum.ru/database/digest/dig_1612.shtml]. Проверено 14.03.2011.
7. Лев Левин. Teradata совершенствует хранилища данных: [Электронный ресурс]. [http://www.pcweek.ru/themes/detail.php?ID=71626]. Проверено 26.11.2010.
8. Григорьев Ю.А., Плутенко А.Д. Теоретические основы анализа процессов доступа к распределённым базам данных. - Новосибирск: Наука, 2002. - 180 с.
9. Форум/Использование СУБД/Oracle/CPUSPEED на IntelXeon 5500 (Nehalem): [Электронный ресурс]. [http://www.sql.ru]. Проверено 02.12.2010.
10. Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы. Общий подход. -М.: БИНОМ. Лаборатория знаний, 2006. - 406 с.
11. Григорьев Ю.А., Плужников В.Л. Анализ времени обработки запросов к хранилищу данных в параллельной системе баз данных // Информатика и системы управления. -2011. - № 2. - С. 94-106.
12. Плужников В.Л. Преобразование Лапласа-Стилтьеса времени обработки запросов к хранилищу данных в параллельной системе баз данных: [Электронный ресурс]. [http://technomag.edu.ru/doc/270159.html]. Проверено 29.10.2011.
electronic scientific and technical periodical
SCIENCE and EDUCATION
Estimation of the mean time of processing data warehouse inquiry by method of creating a primary index for the table of facts in the parallel database system
77-30569/241916
# 11, November 2011 Григорьев Ю.А.
Bauman Moscow State Technical University [email protected]
The article gives an expression for mathematical expectation of the execution time of data warehouse inquiry built on the basis of a database parallel system (DPS). The author determines parameters of this expression taking into account the presence of "bottleneck". The author provides an expression which makes it possible to estimate the mean execution time of inquiries to the database parallel system with CE cluster architecture. In this expression the number of SMP-units and quantity of AMP-processors in each unit are taken into account. A practical example is analyzed, and conclusions are formulated. In particular, it is noted that if "the bottleneck" (disk) of the system is not overloaded (its load is less than 1), then the mean execution time of data warehouse inquiry in the system with the SMP-units is commensurate with the time of processing this demand in the MPP-system with the same quantity of AMP-processors. This makes it possible to substantially save cash resources during the acquisition of hardware of the parallel database system.
Publications with keywords: Laplas-Stiltes transform, average of distribution time for query execution
Publications with words: Laplas-Stiltes transform, average of distribution time for query execution
Reference
1. M. Tamer Ozzu, Patrik Valduriz,
< http://citforum.ru/database/classics/distr_and_paral_sdb/>.
2. Sokolinskij L. B., Cymbler M. L., < http://pdbs.susu.ru/CourseManual.html>.
3. Dzh. L'juis. Oracle. The basics of cost optimization, SPb, Piter, 2007, 528 p.
4. Grigor'ev Ju.A., Pluzhnikov V.L., Informatika i sistemy upravlenija 1 (2011) 3-16.
5. Lisjanskij K., Slobodjanikov D., DBMS Teradata® for OC UNIX®, <http://citforum.ru/database/kbd98/glava5.shtml>.
6. Kuznecov S., Essential Modelling Options, <http://citforum.ru/database/digest/dig_1612.shtml>.
7. Lev Levin., <http://www.pcweek.ru/themes/detail.php?ID=71626>.
8. Grigor'ev Ju.A., Plutenko A.D., Theoretical basis of analysis of the processes of access to distributed databases, Novosibirsk, Nauka, 2002, 180 p.
9. <http://www.sql.ru>.
10. Miller R., Bokser L., Consecutive and parallel algorithms. The general approach, Moscow, BINOM. Laboratorija znanij, 2006, 406 p.
11. Grigor'ev Ju.A., Pluzhnikov V.L., Informatika i sistemy upravlenija 2 (2011) 94-106.
12. Pluzhnikov V.L., Nauka i obrazovanie - Science and Education <http: //technomag .edu. ru/doc/270159.html>.