Применение генетических алгоритмов при проектировании распределенных баз данных

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ПРИ ПРОЕКТИРОВАНИИ РАСПРЕДЕЛЕННЫХ БАЗ ДАННЫХ

В.Б. Новосельский Научный руководитель - к.т.н., доцент Т.А. Павловская

В статье рассматривается жизненный цикл проектирования распределенных баз данных (РаБД), описываются этапы проектирования. На основании взаимозависимости этапов фрагментации данных, размещения данных и выбора стратегии исполнения запросов формулируется задача проектирования РаБД и производится оценка ее сложности. Автор рассматривает применимость генетических алгоритмов для решения поставленной задачи и предлагает подход, позволяющий учесть взаимозависимость этапов проектирования.

Введение

Создание распределенных информационных систем является весьма актуальной задачей. Это связано с возрастающими потребностями в приложениях, доступ к которым осуществляется из различных географических местоположений. Увеличиваются требования к оперативности и достоверности информации. Управление информацией происходит с помощью систем управления базами данных. Для достижения высокой производительности распределенных приложений, работающих с базами данных, необходимы эффективные методы проектирования распределенных баз данных (РаБД).

В статье рассматривается жизненный цикл проектирования РаБД, описываются этапы проектирования. На основании взаимозависимости этапов фрагментации данных, размещения данных и выбора стратегии исполнения запросов формулируется задача проектирования РаБД и производится оценка ее сложности. Автор рассматривает применимость генетических алгоритмов для решения поставленной задачи и предлагает подход, позволяющий учесть взаимозависимость этапов проектирования.

Жизненный цикл проектирования РаБД

Жизненный цикл проектирования РаБД состоит из двух фаз: начальное проектирование и репроектирование. Большинство исследователей под начальным проектированием понимают фрагментацию БД и размещение фрагментов по узлам вычислительной сети (ВС). С течением времени возможно ухудшение производительности приложений, работающих с РаБД, вызванное изменениями в инфраструктуре распределенной среды (ИРС). Под инфраструктурой понимаются физические и логические параметры функционирования системы, а именно транзакции и их частоты, топология ВС, характеристики узлов ВС и т.д.

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

рис. 1.

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

Далее кратко описаны основные этапы проектирования.

Рис. 1. Жизненный цикл проектирования РаБД Фрагментация данных

Основной целью фрагментации является сужение пространства поиска при исполнении запроса. Фрагментация данных допускает разбиение отношения на два или более сегмента или фрагмента. Каждый фрагмент может храниться на любом узле ВС. Принято выделять две базовых стратегии фрагментации данных: горизонтальная фрагментация (ГФ) и вертикальная фрагментация (ВФ). Вертикальная фрагментация - это разделение атрибутов на группы, горизонтальная фрагментация - разделение отношения на подмножества таким образом, что каждое подмножество содержит полный набор атрибутов. Примеры горизонтальной и вертикальной фрагментации показаны на

рис. 2 и

рис. 3 соответственно.

Рис. 2. Горизонтальная фрагментация

Рис. 3. Вертикальная фрагментация

Горизонтальная фрагментация разделяется на первичную (primary) и вторичную (derived) фрагментацию. Целью первичной горизонтальной фрагментации является оптимизация операций над множествами, позволяющая сузить пространство поиска и обеспечить возможность параллельного выполнения операций. Целью же вторичной горизонтальной фрагментации является повышение скорости навигационных операций, достигаемое за счет объединения множеств объектов различных типов.

Размещение данных

Размещение данных представляет собой процесс принятия решения о месте хранения данных с целью минимизации целевой функции при выполнении запросов. Выделяют следующие типы стратегии размещения данных:

• централизованное размещение данных - вся база данных хранится на одном узле;

• секционированное размещение данных - каждый фрагмент БД хранится на определенном узле;

• реплицированное размещение данных - одна или более копий фрагментов БД хранятся на нескольких узлах.

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

Стратегия исполнения запроса

Существует две стратегии оптимизации запроса для распределенного исполнения. В первой стратегии сначала строится оптимальный план последовательного исполнения запроса, который затем параллелизуется [4]. Во второй стратегии оптимизация производится с учетом параллельного исполнения [5]. Как показано в [6], для систем без разделения ресурсов (shared-nothing), которые наиболее близки к РаБД, первая стратегия не обеспечивает оптимальности.

Наиболее часто план исполнения запроса представляется в виде дерева операторов, в котором листья представляют отношения, которые участвуют в запросе, а промежуточные вершины - операторы. Параллельная обработка при таком описании разделяется на нескольких видов [7, 8]:

• межоператорная (inter-operation) - параллельное исполнение операторов, лежащих на разных ветвях дерева;

• внутриоператорная (intra-operation) - параллельное исполнение на различных фрагментах одного отношения суб-операторов, полученных в результате декомпозиции оператора;

• конвейерная (pipeline) - узел дерева «потребитель» может начать выполнение до того, как «производитель» завершит свою работу

Сложность решаемых задач

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

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

Количество возможных вариантов фрагментации отношения равно n-ному числу Белла B(n), это показано в [9] применительно к ВФ и в [10] для ГФ. Причем для ВФ п означает число атрибутов отношения, а для ГФ - количество минтерм предикатов, используемых во всех запросах, применяемых к отношению. Например, при п = 15 B(n) «109, для больших п B(n) стремится к пп.

В [11, 12] показано, что оптимальные алгоритмы фрагментации и размещения данных являются NP-трудными, т.е. с ростом размерности задач их вычислительная сложность растет экспоненциально. Для уменьшения размерности задачи размещения данных в некоторых работах (например, в [13]) применяется алгоритм объединения узлов в группы, после чего размещение фрагментов производится в два этапа - между группами и между узлами внутри группы. Однако, как показано в [14], задача объединения узлов в группы также является NP-полной.

Решение Количество вариантов

Выбор фрагмента П Г , где г1 - количество реплик /-го фрагмента

Последовательность операции соединения (join) (* -1)!, где * - количество фрагментов

Узел, в котором производится операция соединения п(* -1), где п - количество узлов

Применение операции semi-join 3

Применение double-pipelined hash join 3

Степень внутриоператорного параллелизма * (п)!

Таблица 1. Количество вариантов исполнения запроса

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

Общее количество возможных стратегий исполнения запроса равно произведению количества вариантов каждого решения. Например, для сети из 4-х узлов и запроса, в котором используются 5 фрагментов, каждый из которых имеет 2 реплики, существует почти 16х106 возможных вариантов.

Эвристические алгоритмы

Для решения NP-полных задач применяются эвристические алгоритмы, которые уменьшают вычислительную сложность и позволяют получить близкое к оптимальному решение. Существуют следующие типы эвристических моделей:

• модель слепого поиска, которая опирается на так называемый метод проб и ошибок;

• лабиринтная модель, в которой решаемая задача рассматривается как лабиринт, а процесс поиска решения - как блуждание по лабиринту;

• структурно-семантическая модель, которая считается в настоящее время наиболее содержательной. Она отражает семантические отношения между объектами, составляющими область задачи.

Достаточно полный список существующих эвристических методов приведен в [15]. В [16] отмечено, что для решения задач кластеризации и компоновки наиболее успешно применяются генетические алгоритмы (ГА). В ГА любое решение задачи синтеза представляется хромосомой, состоящей из генов. Значениями генов являются значения проектных параметров. Направленный перебор решений осуществляется с помощью генетических операторов выбора родителей, кроссовера, мутации, селекции, переупорядочения.

Сначала формируется исходное поколение, состоящее из g хромосом. Размер поколения выбирается таким образом, чтобы в достаточной степени был представлен набор существующих решений. Например, поколение из 100 хромосом обычно достаточно для того, чтобы осуществить поиск среди 109 доступных решений. Хромосомы оцениваются с использованием функции приспособленности.

Далее случайным образом среди хромосом данного поколения выбираются пары родителей, причем вероятность выбора хромосом с лучшими значениями функции приспособленности должна быть выше. Следующее поколение образуется (селектируется) из g перспективных дочерних хромосом, являющихся результатом ряда операций кроссовера. Кроссовер заключается в разрыве двух родительских хромосом и рекомбиниро-вании образовавшихся хромосомных отрезков. Мутации, т.е. случайные изменения генов, происходят с заданной вероятностью и служат для исключения застревания поиска в ограниченном подпространстве. Разновидности генетических операторов и их сочетаний порождают множество ГА, описание которых можно найти в [17].

Применение генетических алгоритмов

Задача проектирования РаБД формируется тремя NP-полными взаимозависимыми задачами, т.е. входными данными для следующей задачи является решение предыдущей. Таким образом, в методе получения проекта РаБД, близкого к оптимальному, целесообразно применять вложенные генетические алгоритмы. Разрабатываемый автором алгоритм выглядит следующим образом.

Для каждого отношения Я на основании запросов определяется набор минимальных фрагментов. Каждый минимальный фрагмент характеризуется множеством мин-терм предикатов и группой атрибутов. После этого формируется хромосома, описывающая размещение фрагментов на узлах ВС. Если фрагмент размещен в узле, то в соответствующую ячейку ставится 1, в противном случае 0. Структура хромосомы приведена в табл. 2.

Узлы \ фрагменты Отношение 1 Отношение 2

Атрибуты Предикаты Атрибуты Предикаты

Атр1 Атр2 Пред1 Пред2 Атр1 Атр2 Пред1 Пред2

Узел1 1 0 1 1 0 1 0 1

Узел2 0 1 1 0 1 1 1 0

Таблица 2. Структура хромосомы схем фрагментации и размещения

Для удовлетворения свойства полноты в каждой колонке должна быть хотя бы одна единица. Каждому атрибуту и предикату назначено значение мощности: для атрибутов мощность определена на основании типа данных, для предикатов - селективности. На основании мощности определяется количество возвращаемых запросом данных.

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

Заключение

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

Список литературы

1. Stepwise Redesign of Distributed Relational Databases: Technical Report / Hong Kong University of Science & Technology; Kazerouni L., Karlapalem K. - Hong Kong, 1997. - 28 p. - HKUST-CS97-12.

2. Karlapalem K., Navathe S.B., Ammar M. Optimal redesign policies to support dynamic processing of applications on a distributed relational database system // Information Systems. - 1996. - Vol. 21. - № 4. - Р. 353-367. - ISSN 0306-4379.

3. Materialization of Redesigned Distributed Relational Databases: Technical Report / Hong Kong University of Science & Technology; Karlapalem K., Navathe S.B. - Hong Kong, 1994. - 44 p. - HKUST-CS94-14.

4. Hong W. Exploiting Inter-Operation Parallelism in XPRS // ACM SIGMOD International Conference on Management of Data. USA. - 1992. - Р. 19-28.

5. Lanzelotte R.S.G., Valduriez P., Zait M. Industrial-Strength Parallel Query Optimization: Issues and Lessons // Information Systems. - 1994. - Vol. 19. - № 4. - Р. 311330. - ISSN 0306-4379.

6. Ziane M., Zait M., Hong H.Q. Parallelism and query optimization // International Journal of Computer Science and Engineering. - 1995. - Vol. 10. - № 1. - Р. 50-56.

7. Ganguly S., Goel A., Silberschatz A. Efficient and accurate cost models for parallel query optimization (extended abstract) // Fifteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems. Montreal, Quebec, Canada. - 1996. - Р. 172-181.

8. Brunie L., Kosch H. Control strategies for complex relational query processing in shared nothing systems // SIGMOD Rec. - 1996. - Vol. 25. - № 3. - Р. 34-39. - ISSN 0163-5808.

9. Hammer M., Niamir B. A heuristic approach to attribute partitioning // ACM SIGMOD international conference on Management of data. Boston, Massachusetts. - 1979. - Р. 93-101.

10. Horizontal Class Partitioning for Queries in Object-Oriented Databases: / Hong Kong University of Science & Technology; Bellatreche L., Karlapalem K., Basak G.K. -Hong Kong, 1998. - 27 p. - HKUST-CS98-6.

11. Ahmad I., Karlapalem K., Kwok Y.K., et al. Evolutionary Algorithms for Allocating Data in Distributed Database Systems // Distributed and Parallel Databases. - 2002. -Vol. 11. - № 1. - Р. 5-32.

12. Apers P.M.G. Data allocation in distributed database systems // ACM Transactions on Database Systems. - 1988. - Vol. 13. - №3. - Р. 263-304.

13. Hababeh I.O., Ramachandran M., Bowring N. A high-performance computing method for data allocation in distributed database systems // Journal of Supercomputing. - 2007. - Vol. 39, N1. - Р. 3-18. - ISSN 0920-8542.

14. Graham J.M. Theoretical properties of two problems of distribution of interrelated data // 44th annual Southeast regional conference. Melbourne, Florida. - 2006. - Р. 395-398.

15. Джонс Д.К. Методы проектирования: пер. с англ. 2-е изд., доп. // М.: 1986. - 326 с.

16. Норенков И.П. Эвристики и их комбинации в генетических методах дискретной оптимизации // Информационные технологии. - 1999. - №1. - С. 2-7. - ISSN 19940408.

17. Батищев Д.И. Генетические алгоритмы решения экстремальных задач. Учеб. пособие. - Воронеж: ВГТУ, 1995. - 69 с.