В статье рассматриваются вопросы внедрения алгоритма повышения эффективности работы распределенной базы данных, снижения загруженности серверов и уменьшения времени отклика на запрос пользователя за счет динамического перераспределения фрагментов данных между серверами.
Ключевые слова: распределенные базы данных, динамическое управление серверами базы данных, фрагменты данных.
The article deals with the implementation of an algorithm to improve the efficiency of a distributed database, reducing the workload of servers and reduce the response time to the user's request, by the dynamic reallocation of pieces of data between servers.
Keywords: distributed databases, dynamic management of the database servers, data fragments.
Распределенная база данных — это децентрализованная информационная система, устроенная таким образом, чтобы ее данные могли быть найдены и обработаны с помощью компьютера. Представляет собой набор узлов, в котором каждый узел — самостоятельная система управления базой данных. Другими словами, это единая логическая система данных, разделенная на физически удаленные фрагменты. С появлением возможностей для оперативного обмена информацией, в том числе Интернета, распределенные базы данных стали повсеместно вытеснять централизованные.
О динамическом управлении размещением фрагментов данных, входящих в состав единой распределенной базы данных (РБД), говорят и пишут давно [1–3]. Однако до сих пор эта проблема пока еще не решена окончательно, в частности, актуальной является задача сокращения времени отклика на запрос пользователя к РБД, а также задача повышения надежности работы всей системы.
Чтобы обеспечить оптимальный баланс загрузки серверов баз данных (СБД) и уменьшить времени отклика на запрос пользователя, фрагменты РБД распределяются по узлам сети, при этом используются принятые критерии размещения. Когда используемые критерии размещения данных приводят к перегрузке серверов или возникают другие причины (изменение структуры сети и т. п.), необходимо провести реорганизацию базы. Такая реорганизация проводятся достаточно редко, что влечет за собой неэффективное функционирование РБД до проведения следующих плановых оптимизационных мероприятий. Поэтому важно, чтобы система управления РБД могла управлять размещением фрагментов данных по СБД одновременно с выполнением основных функций.
Предлагаемый подход предполагает использование алгоритмов динамического управления размещением фрагментов данных на СБД в зависимости от частоты обращения к фрагментам данных и нагрузки на сами серверы.
Данный метод предусматривает оптимизацию размещения фрагментов данных не для всей РБД из-за большой размерности, многокритериальности и ресурсоемкости. Она может решаться для отдельно взятых СБД, что приведет к оптимальному размещению фрагментов данных в РБД в целом. Неоднократное проведение таких перераспределений позволит, во-первых, оперативно реагировать на изменения условий, во-вторых, обеспечить более высокую эффективность реакции на запросы пользователей в течение их работы с РБД по сравнению с традиционной системой.
Для этого необходимо решить ряд подзадач:
1. Сбор данных о состоянии и эффективности работы системы.
2. Определение перемещаемых (тиражируемых) фрагментов данных.
3. Реализация операции реорганизации структуры РБД.
В качестве исходных данных используют:
1. Характеристику серверов баз данных и связей между ними, т. е. производительность СБД (число решаемых задач в минуту), максимальный объем хранимых данных (Мб), максимальную скорость передачи данных в каналах связи между серверами (Кбит/с).
2. Стратегию размещения фрагментов данных в распределенной базе данных (стратегию расчленения или смешанную стратегию) и схему размещения фрагментов данных в РБД. Стратегия полного дублирования фрагментов данных по всем серверам не рассматривается из за большого объема памяти.
3. Характеристики фрагментов данных: размер (Мб), возможность перемещения фрагментов данных (встречаются фрагменты данных, которые не рекомендуется или запрещено перемещать).
Для выявления ситуаций, при которых требуется перераспределение фрагментов данных и принятие соответствующих обоснованных решений, необходимы статистические данные о состоянии и эффективности работы РБД. На каждом из серверов должны накапливаться данные статистики только применительно к «своей» базе.
В целом на этом этапе должны быть получены следующие данные: общее количество запросов к данному серверу, общее количество запросов к каждому фрагменту данных, число удаленных запросов к каждому фрагменту данных от каждого СБД, среднее время выполнения запросов от каждого СБД, средний размер запросов от каждого СБД, объем загрузки данного сервера.
Эти данные могут быть получены путем анализа информации, содержащейся в каждом запросе к СБД. Для накопления статистических данных должен выполняться учет числа обращений к СБД и фрагментам данных. Накопленные таким образом данные будут отражать реальные показатели эффективности работы РБД и использоваться при решении последующих задач. Для этого необходим анализ данных учета числа обращений. Решение должно приниматься на основе либо своего опыта, либо определяться с помощью модели РБД с динамическим управлением размещения фрагментов данных. Изменения должны минимально касаться структуры БД для исключения снижения эффективности ее работы.
Для определения перемещаемых (тиражируемых) фрагментов необходимо знать долю обращений к конкретному фрагменту данных (то есть его «популярность») и долю удаленных запросов к нему. Зная, насколько «популярен» данный фрагмент данных, и каков при этом вклад удаленных запросов, можно сделать вывод о необходимости дальнейшего изменения размещения выбранного фрагмента данных. Для этого заранее администратором РБД должно быть принято решение о максимальной доле удаленных запросов, при которой необходимо рассмотреть вопрос об изменении местоположения фрагмента данных. Кроме этого, долю можно определить на основании личного опыта и с помощью модели. Далее для выбранного фрагмента данных проводится проверка возможности копирования или перемещения фрагмента данных, оцениваются средняя скорость передачи информации к серверу места назначения, предполагаемое время на перемещение фрагмента данных, затраты на поддержание копии фрагмента данных на серверах мест назначения, изменение нагрузки на серверах мест назначения после перемещения фрагмента данных, изменение нагрузки на СБД, являющемся инициатором перемещения.
Лучший вариант перемещения будет получен в результате решения оптимизационной задачи.
Среднюю скорость передачи информации определяют на основе данных статистики наблюдения и используют для последующей оценки затрат времени на перемещение фрагмента данных. Оценка затрат на поддержание копии фрагмента данных проводится на основе используемых систем управления базами данных протоколов актуализации.
Оценка изменения нагрузки на СБДН после перемещения фрагмента данных необходима для того, чтобы не превысить определенный барьер нагрузки. Хотя оценка изменения нагрузки на СБДИ является приближенной, но она должна быть учтена при решении оптимизационной задачи, поскольку изменение местоположения фрагмента данных преследует цель не только улучшения интервала времени ответа на запросы пользователей, но и баланса загрузки СБД.
Таким образом, предлагаемый подход к динамическому управлению размещением фрагментов данных в распределенной базе данных позволяет существенно повысить эффективность ее функционирования.
Литература:
1. Кузнецов С. Д. Основы баз данных / Д. С. Кузнецов. -М.: Интернет-университет информационных технологий, БИНОМ. Лаборатория знаний, 2007.
2. Хомоненко А. Д. Базы данных: Учебник для высших учебных заведений / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев. — СПб.: КОРОНА-Принт, 2009.
3. Чертовской В. Д. Базы и банки данных: Учебное пособие / В. Д. Чертовской. -СПб: Изд-во МГУП, 2001.