Рус Eng Cn Перевести страницу на:  
Please select your language to translate the article


You can just close the window to don't translate
Библиотека
ваш профиль

Вернуться к содержанию

Кибернетика и программирование
Правильная ссылка на статью:

Эффективность консервативных СУБД больших объемов на кластерной платформе

Райхлин Вадим Абрамович

доктор физико-математических наук

профессор, кафедра Компьютерных систем, Казанский национальный исследовательский технический университет им. А.Н. Туполева — КАИ

1420111, Россия, республика Татарстан, г. Казань, ул. К. Маркса, 10

Raikhlin Vadim Abramovich

Doctor of Physics and Mathematics

Professor, Department of Computer Systems, Tupolev Kazan National Research Technical University

1420111, Russia, respublika Tatarstan, g. Kazan', ul. K. Marksa, 10

no-form@evm.kstu-kai.ru
Минязев Ринат Шавкатович

кандидат технических наук

доцент, кафедра Компьютерных систем, Казанский национальный исследовательский технический университет им. А.Н. Туполева — КАИ

1420111, Россия, республика Татарстан, г. Казань, ул. К. Маркса, 10

Minyazev Rinat Shavkatovich

PhD in Technical Science

Associate Professor, Department of Computer Systems, Tupolev Kazan National Research Technical University

1420111, Russia, respublika Tatarstan, g. Kazan', ul. K. Marksa, 10

txf13@mail.ru
Классен Роман Константинович

аспирант, кафедра Компьтерных систем, Казанский национальный исследовательский технический университет им. А. Н. Туполева — КАИ

420111, Россия, республика Татарстан, г. Казань, ул. К.маркса, 10

Klassen Roman Konstantinovich

Postgraduate Student, Department of Computer Systems, Tupolev Kazan National Research Technical University

420111, Russia, respublika Tatarstan, g. Kazan', ul. K.marksa, 10

klassen.rk@gmail.com

DOI:

10.25136/2644-5522.2018.5.22301

Дата направления статьи в редакцию:

14-03-2017


Дата публикации:

25-11-2018


Аннотация: Обсуждаются результаты оригинальных исследований принципов организации и особенностей функционирования консервативных СУБД кластерного типа. Актуальность принятой ориентации на работу с базами данных больших объемов определяется современными тенденциями интеллектуальной обработки больших информационных массивов. Повышение объема баз данных требует их хеширования по узлам кластера. Это обуславливает необходимость использования регулярного плана обработки запросов с динамической сегментацией промежуточных и временных отношений. Дается сравнительная оценка получаемых результатов с альтернативным подходом "ядро на запрос" при условии репликации БД по узлам кластера. Значительное место в статье занимает теоретический анализ возможностей GPU-акселерации применительно к консервативным СУБД с регулярным планом обработки запросов. Экспериментальные исследования проводились на специально разработанных натурных моделях — СУБД Clusterix, Clusterix-M, PerformSys с применением средств MySQL на исполнительном уровне. Теоретический анализ возможностей GPU-акселерации выполнен на примере предлагаемого проекта Clusterix-G. Показаны: особенности поведения СУБД Clusterix в динамике и оптимальный архитектурный вариант системы; повышение "в разы" масштабируемости и производительности системы при переходе к мультикластеризации (СУБД Clusterix-M) либо к перспективной технологии «ядро на запрос» (PerformSys); неконкурентоспособность GPU-акселерации в сравнении с подходом «ядро на запрос» для баз данных средних объемов, не превышающих размеры оперативной памяти узла кластера, но не умещающихся в глобальной памяти графического процессора. Для баз данных больших объемов предложена гибридная технология (проект Clusterix-G) с разделением кластера на две части. Одна из них выполняет селектирование и проецирование над хешированной по узлам и сжатой базой данных. Другая – соединение по схеме «ядро на запрос». Функции GPU-ускорителей в разных частях своеобразны. Теоретический анализ показал бόльшую эффективность такой технологии в сравнении с Clusterix-M. Но вопрос о целесообразности использования графических ускорителей в рамках подобной архитектуры требует дальнейшего экспериментального исследования. Отмечено, что проект Clusterix-M сохраняет жизнеспособность в области Big Data. Аналогично — с подходом «ядро на запрос» при доступности использования современных дорогих информационных технологий.


Ключевые слова:

Консервативные СУБД, Большие данные, Регулярный план обработки, Хеширование по узлам, Динамическая сегментация отношений, Масшабируемость, Производительность, Мультикластеризация, Перспективная технология, Эффективность графических ускорителей

УДК:

681.3

Abstract: The results of original research on the principles of organization and features of the operation of conservative DBMS of cluster type are discussed. The relevance of the adopted orientation to work with large-scale databases is determined by modern trends in the intellectual processing of large information arrays. Increasing the volume of databases requires them to be hashed over cluster nodes. This necessitates the use of a regular query processing plan with dynamic segmentation of intermediate and temporary relationships. A comparative evaluation of the results obtained with the alternative "core-to-query" approach is provided, provided that the database is replicated across cluster nodes. A significant place in the article is occupied by a theoretical analysis of GPU-accelerations with respect to conservative DBMS with a regular query processing plan. Experimental studies were carried out on specially developed full-scale models - Clusterix, Clusterix-M, PerformSys with MySQL at the executive level. Theoretical analysis of the GPU-accelerations is performed using the example of the proposed project Clusterix-G. The following are shown: the peculiarities of the behavior of the Clusterix DBMS in dynamics and the optimal architectural variant of the system; Increased "many times" scalability and system performance in the transition to multiclustering (DBMS Clusterix-M) or to the advanced technology "core-to-query" (PerformSys); Non-competitiveness of GPU-acceleration in comparison with the "core-to-query" approach for medium-sized databases that do not exceed the size of the cluster's memory, but do not fit into the GPU's global memory. For large-scale databases, a hybrid technology (the Clusterix-G project) is proposed with the cluster divided into two parts. One of them performs selection and projection over a hashed by nodes and a compressed database. The other is a core-to-query connection. Functions of GPU accelerators in different parts are peculiar. Theoretical analysis showed greater effectiveness of such technology in comparison with Clusterix-M. But the question of the advisability of using graphic accelerators within this architecture requires further experimental research. It is noted that the Clusterix-M project remains viable in the Big Data field. Similarly - with the "core-to-query" approach with the availability of modern expensive information technologies.


Keywords:

Conservative DBMS, Big Data, Regular processing plan, Host hashing, Dynamic relationship segmentation, Scalability, Performance, Multiclusterisation, Advanced technology, GPU-accelerators efficiency

Используемые обозначения

– Clusterix, Clusterix-M, Clusterix-Gназвания затрагиваемых в статье проектов консервативных СУБД на кластерной платформе, принятые разработчиками этих проектов.

MySQL применяемая в этих проектах инструментальная СУБД.

PerformSys («ядро на запрос», «узел на множество запросов») – перспективная технология консервативных СУБД.

GPU(Graphics Processing Unit) – сопроцессор, широко применяемый как ускоритель трехмерной графики. Используется и при выполнении обычных вычислений – подход GPGPU (General-Purpose GPU).

CPU центральный процессор.

TPC(Transaction Processing Performance Council) – Совет по производительности обработки транзакций.

TPC-H один из тестов производительности систем принятия решений.

Введение

Проблема масштабируемости по числу узлов кластера и повышения производительности всегда была и остается одной из серьезнейших проблем параллельных СУБД [1-4]. В настоящее время имеется немалое число разработок таких СУБД на платформе вычислительных кластеров. Большинство из них осущест­вляет под­держку работы internet-сер­висов, выполняющих сра­в­­нительно простые операций типа selectи insertнад динамически изменяемыми базами данных. Причина в том, что повыше­ние скорости обработки сложных запросов до сих пор проблематично [5]. Наше рассмотрение ориентировано на по­строение парал­лельных СУБД кон­сер­ва­тив­ного типа (с эпизо­ди­че­с­ким об­но­вле­нием дан­ных в специаль­но вы­деляемое вре­мя) больших объе­мов (до единиц TB). Его актуальность определяется тенденция­ми интел­лектуальной обработки ин­фор­ма­ци­он­ных мас­­­­­­­си­­­­­­вов. При­­­­ме­ром тому является проект специа­лизи­ро­ванной системы SciDB для обра­бот­ки на­уч­­ных дан­ных (резуль­татов испы­та­ний, наблюде­ний за со­стоя­нием среды и др.) [6-8]. Для них характерен вы­­сокий удель­ный вес имен­но сложных запросов типа selectprojectjoin, опери­рую­щих множеством таб­лиц с большим числом опера­ций соединения join. Такие базы данных приходится хешировать по узлам кластера.

Поэтому единственно приемлемым планом обработки запросов оказывается регулярный [9] (рис.1) по схеме

СЕЛЕКЦИЯ (σ) – ПРОЕКЦИЯ (π) – СОЕДИНЕНИЕ (σθ(R x S)) .

Подпись:  

 Рис.1.Регулярный план

Здесь < x > – декартово произведение, селектирование в операции соеди­нения ведется по θ‑соответствию корте­жей отношений R и S. По условиюсо­еди­не­ние всегда естественное и проводится по полям первичного ключа. При использовании стратегии «множество узлов кластера – на один запрос» база данных оказыва­ет­ся распределенной по узлам. Получение любо­­го промежуточного Ri' и любого временного RB(i-2) отно­ше­ний происходит параллельно. При этом теоретически возможно совме­ще­ние обоих процес­сов, если за время съема с дисков и пред­вари­тель­ной обра­ботки (селекции с проекцией) исходного отношения Riуспева­ет сформироваться временное отношение RB(i-2). Для целей исследования была разработан­а натурная модель – СУБД Clusterix[10].

1. СУБД Clusterix

Функциональная характеристика. Обработка запросов – 2-уровневая. На ниж­нем уровене выполня­ются опера­ции селекции (σ) и проекции (π) над исходными отношениями Riбазы данных. Результатом обработки этого уровня является промежуточное отношение Ri'. На верх­нем уровне реализу­ется операция соедине­ния RBi–1 = Ri' ►◄ RBi–2 = π (σθ(Ri'xRBi–2)), где RBi–1 и RBi–2 – временные отношения как результаты соеди­нений в i- и в (i-1)-шагах соответственно. Фильтрация на нижнем уровне значительно снижает объемы данных, передаваемых на верхний уро­вень.

Отношения БД распределены по дискам на процессорах нижнего уровня (IOr) с примене­ни­ем хеш-функции к первичному ключу для каждого кортежа отношения. Требованию равно­мер­ного распределения кортежей хорошо удовлетворяет выбор в качестве нее функции деления по модулю [11]. Основание деления – число процессоров нижнего уровня (nIO). Оста­ток от деления r однозначно определяет номер страницы (процессора IOr), куда будет распределен кортеж. Процес­соры верхнего уровня обработки запроса называются процессорами JOIN. Хеш-функция, использованная в Clusterix, имеет следующий вид:

hash=((key_field1 mod M) + (key_field2 mod M) + … + (key_fieldP mod M)) mod M,

где P – количество полей в первичном ключе; M = nIO– основание деления по модулю; mod – операция деления по модулю. Как показали эксперименты на примере теста TPC-H (M=2,3,4,6,8,12,16,18,24), данный подход обеспечивает достаточно равномерное распределение данных по страницам. Хеширован­ные страницы хранятся на узлах IOr в виде отношений базы данных tpchK, где K = r.

Кроме исполнительных процессоров (IOr и JOINj), есть еще два процес­со­ра. Процессор УПР реализует функции мониторинга и управления осталь­ными процессорами системы. Для реализации функций объединения результатов обработки с уровня JOIN введен процессор SORT. Он дополнительно выпол­няет функции агрегации (SUM(), AVG(), MAX(), MIN() и др.) и сортиров­ки ре­зультата предшествующей операции соединения. В Clusterix реализован вариант сов­местной работы процессоров УПР и SORT на Host ЭВМ. Работа на уровне файловой системы, системных буферов, алгоритмов доступа к данным, работы с индексами и т.п. реализу­ется с помощью стандартной СУБД MySQL.

Система реализует потоково-конвейерный механизм обработки запросов. Конвейерность достигается за счет совмещения работ на нижнем, верхнем уровнях обработки и на уровне SORT (рис.2). Так реализуется вертикальный параллелизм. Его особен­ностью является совмещение последней операции на уровне JOIN для одного запроса и первой операции на уровне IO для следующего.

В Clusterix реализуется и горизон­тальный параллелизм, который до­сти­га­ется параллельной работой нескольких процессоров одного уровня над разными частями данных одного и того же запроса. Применение динамической сегментации промежуточных и временных отношений позволя­ет реализовать па­раллель­ное выполнение операции соединения на множестве процес­соров JOINj. Для обеспечения надежной работы системы на всех уровнях применена барьерная синхронизация.

Программная система. Параллельная СУБД Clusterixпредставляет композицию четырех програм­­­м­ных модулей: mlisten, msort, irun, jrun. Модуль mlistenреализует функцию логического процессора УПР, модуль msort– SORT, модуль irun– IO, модуль jrun– JOIN. Модули mlisten и msortфункционируют на Host. Назначение модуля mlisten: получение входного запроса от пользователя и передача результатов обработ­ки обратно; пересылка команд управления модулям irun, jrun, msort; мониторинг работы модулей системы; сбор статистической ин­форма­ции. Модуль msortпредназначен для выпол­нения операции объединения результатов обработки JOIN с последующим выполнением операций агрега­ции и сортировки результата. Назначение модуля irun – выполнение операций селекции и про­ек­ции над исходными отно­шениями базы данных. На каждом узле уровня IO располагается своя страница исходной БД. Номер этой страницы определя­ется текущей конфигурацией и присваивается ей при запуске системы. Поэтому каждая стра­ница (и соответствующий ей модуль irun) имеет уникальный номер. То же – и с модулем jrun, который выполняет операции соединения. Количество модулей irunи jrunдля любой конфигурации одинаково. Число физи­ческих процессоров, на которых функционируют программные модули irunи jrun, может быть различно.

Моделирование процессов, протекаю­щих в Cluste­rix, выполнялось при разном числе узлов кластера (физических процессоров) и разном распределении в них программ­ных модулей (логических процессоров). Здесь и далее понятия «логи­че­ский процессор» и «програм­мный модуль» (irunили jrun) использу­ются как синонимы. На каждом физическом процессоре могут выпол­няться неско­лько логических. Общее количество физических процессо­ров в кластере (включая Host) N=2n+1, где n=1,2,… Величина 2n = p+q, p и q – числа физических процессоров IO и JOIN. В дальнейшем фигурирует их отношение k = q/p.

Рассматривались три типа конфигураций Clusterix: «линейка», «сим­­метрия» и «асимметрия». В конфигурации «линейка» (с условным зна­че­нием k=0) на каждом физическом процессоре кластера выпол­ня­ют­ся оба логических процессора: irunи jrun. Модули функционируют в режиме разделения времени при усло­вии барьерной синхронизации. Сихронизация выполня­­­­ется передачей коротких сетевых сообщений и осуществляется модулем mlisten. Каждый узел кластера имеет устройство внешней памяти. Для конфигурации «симметрия» характерна реализация каждого логического процессора на отдель­ном физическом процессоре. Любому узлу, на котором выпол­няется модуль irun, соответствует узел с моду­лем jrun. Числа узлов JOIN и IO одинаковы: p=q=n, k=1. Конфигурации «асимметрия» предназна­чена для моделирования таких нагрузок, при которых основная часть работ приходится на узлы IO. Поэтому количест­во физических процессоров IO больше по сравнению с числом физических процессоров JOIN. На каждом физиче­ском процессоре JOIN выполняется несколько логических процессоров jrun. Исследова­ния показа­ли, что коли­чество совместно работающих логических процессоров jrunна одном узле не должно превышать трех. Поэтому здесь k=1/2, 1/3.

Запросы, на которых проводится те­сти­рова­ние, размещаются в специ­альном интерфейсном отношении queryсистемной базы данных в оттранслированном виде для каждого из трех программных модулей: irun, jrun и msort. Программа-кли­ента посылает номер SQL-запроса. Модуль mlistenзапускает для обра­ботки запроса функцию-поток Процесс h, где h – порядковый номер запроса в системе. Процесс h считывает па­кет команд запроса из от­ношения queryи передает его соот­вет­ствующим мо­дулям для исполнения.

Анализ экспериментальных данных. В качестве представительского теста (ПТ) использовался ограничен­ный тест TPC-H из 14 запросов, не содержащих операций записи. Далее приводятся результаты модельного эксперимента на натурной модели – СУБД Clustre­rix, полученные для двух кластерных платформ [12,13]:

Платформа 1. Host – cервер Intel Core 4 Xeon 5320 (2,4 GHz, RAM 4GB). Исполнительные узлы – 13 ПК Intel Core 2 Duo 6320 (1,87 GHz, RAM 3GB, жесткий диск SATA 125GB); локальная сеть Gigabit­Ether­net. На каждый компьютер установ­лена операцион­ная система Linux. Все процессоры дополни­тельно оснащены СУБД MySQL.

Платформа 2. Вычисли­тель­ный кластер фир­мы SUN из 22 узлов 2 Quad-core Intel Xeon E5450 CPU/1,87GHz/32GB. Интерконнект между узлами – Gigabit­Ethernet/Infini­band 4X (20Gbps DDR) с 24-порто­выми коммутато­рами Cisco. Дисковая под­система узла – SAS диски XRB-SS2CD-146G10KZ с пропускной спо­соб­ностью 300 МB/s. Как и ранее, – Linux, MySQL.

На рис.3a,b приведены экспериментальные зависимости производительно­сти, полученные усреднением на 5 вариантах перестановок запросов ПТ для плат­формы 1 и разных объемов баз данных.

a