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

DOI: 10.18721/JCSTCS.11407

УДК 004.75:004.658.3, 004.657, 004.023

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

С.Г. Попов, В.С. Фридман

Санкт-Петербургский политехнический университет Петра Великого,

Санкт-Петербург, Российская Федерация

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

Ключевые слова: данные, распределенные базы данных, система управления базами данных, распределение данных, оптимизация, алгоритмы.

Ссылка при цитировании: Попов С.Г., Фридман В.С. Обзор методов динамического распределения данных в распределенных системах управления базами данных // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. 2018. Т. 11. № 4. С. 82-107. DOI: 10.18721/JCSTCS.11407

REVIEW OF METHODS FOR DYNAMIC DISTRIBUTION OF DATA IN DISTRIBUTED DATABASE MANAGEMENT SYSTEMS

S.G. Popov, V.S. Fridman

Peter the Great St. Petersburg Polytechnic University, St. Petersburg, Russian Federation

The article provides an overview of the methods and associated data distribution algorithms between nodes of a distributed database management system. The article proposes a classification of data redistribution algorithms and provides algorithms for a database management system functioning in a stable state. The article discusses approaches based on self-configuring finite-state machines with memory, forecasting query flows using time series analysis methods, heuristic and genetic algorithms. Redistribution algorithms are described for each method. The optimality criteria for the functioning of the dynamic data redistribution subsystem of the distributed database are highlighted for the described algorithms. The given approaches can be used to design data redistribution subsystems in control systems of distributed databases in the course of their operation.

Keywords: data, distributed databases, database management system, data distribution, optimization, algorithms.

Citation: Popov S.G., Fridman V.S. Review of methods for dynamic distribution of data in distributed database management systems. St. Petersburg State Polytechnical University Journal. Computer Science. Telecommunications and Control Systems, 2018, Vol. 11, No. 4, Pp. 82-107. DOI: 10.18721/JCSTCS.11407

Введение

В распределенной системе управления базами данных каждая часть базы должна участвовать в выполнении глобальных запросов, требующих доступа к данным на нескольких других узлах системы. Для получения данных с других узлов используется подсистема связи, время передачи данных по которой существенно влияет на общее время выполнения распределенного запроса [2]. Скорость получения данных из распределенных источников актуальна в таких областях, как геоинформационные системы [22], системы распределенных мультимедиа [15], распределенные системы хранения данных, ориентированные на Web [24]. В этом случае пренебречь временем передачи данных между отдельными частями распределенной базы данных нельзя, и задача оптимального размещения данных становится двухкритериальной: оптимальное размещение данных зависит как от объема данных запроса, так и от скорости каналов связи, соединяющих фрагменты базы.

Рассматривая размещение данных между узлами распределенной базы как динамическую систему, следует поддерживать оптимальность распределения данных между узлами с целью минимизации времени выборки данных из всей базы в целом. При этом глобальным критерием оптимальности функционирования такой системы остается минимизация времени выполнения всех запросов всех абонентов. Непрерывное поддержание распределенной СУБД в оптимальном состоянии невозможно, поскольку непрерывное распределение фрагментов, оказывающее решающее влияние на надежность и производительность [4, 5], является NP-полной задачей [11, 12].

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

данных [2] или их репликации [6, 20]. Рассматривая методы оптимизации размещения данных без избыточности, основной задачей становится выделение фрагмента в распределенной системе баз данных фрагмента данных для переноса на другой узел и определение этого узла. При этом основной принцип распределения — достижение максимальной локальности приложений и фрагментов. На практике это означает хранение фрагментов ближе к тому узлу, где они чаще используются.

Алгоритмы динамического распределения данных в распределенных базах данных можно классифицировать относительно их внутренних и внешних особенностей реализации, на основе их области применения, эффективности и критериев оптимальности. Выделенные классификационные признаки позволяют разделить алгоритмы по способу определения стоимости операций [17], анализу доступных ресурсов на узле [8, 9], типу применяемой избыточности данных [3, 7, 13], способу распределения данных [2], по методам описания [21] и применению распределенной тран-закционной модели [22].

Метод пороговой оценки с ограничением по времени, объему и расстоянию

Пороговый алгоритм с ограничением по времени, объему и расстоянию [1] является результатом набора исследований [2, 8, 9, 11, 13] и обеспечивает множественное обращение к одному фрагменту данных от нескольких узлов, путем перераспределения данных на основе предварительно собранной статистики обращений к данным на каждом узле. Алгоритм выполняется на каждом узле и обеспечивает передачу фрагмента данных тому узлу, доступ из которого осуществляется с максимальной интенсивностью за прошедший временной интервал.

Алгоритм реализуется в две фазы: подготовки и сбора статистических данных и анализа необходимости перемещения фрагмента данных. Используемые в алгоритме обозначения приведены в табл. 1.

Таблица 1

Обозначения в пороговом алгоритме с ограничением по времени, объему и расстоянию

Table 1

Symbols definitions in the algorithm of threshold, time, volume, and distance constraint

Обозначение Значение

F Количество фрагментов всей распределенной базы данных

S Число узлов распределенной базы данных

A Ограничение доступа на перераспределение фрагментов

B Ограничение времени на перераспределение фрагментов

Aq ap р-я попытка доступа к узлу q

nj Общее количество попыток доступа от узла ] к фрагменту / внутри временного интервала вплоть до текущего времени попытки доступа /

V/ Размер данных, передаваемых между фрагментом / и узлом ] внутри временного интервала вплоть до текущего времени /

Dj Расстояние между узлами

Фаза подготовки и сбора исходных данных. В этой фазе производятся сбор статистических данных для определения необходимости перемещения фрагментов данных между узлами в базе данных.

Предположим, что имеется F фрагментов и S узлов в распределенной системе управления базами данных. Каждый узел имеет как минимум один расположенный на нем фрагмент. Для каждого узла формируется матрица, в которой сохраняется метрическое расстояние между узлами, которым может являться скорость передачи данных между узлами. Каждый узел также хранит значения двух ограничений: порог числа повторных доступов к фрагменту за единицу времени а и ограничение на время перераспределения фрагментов р. Эти параметры позволяют управлять задержкой перед переносом данных на другой узел и могут выбираться статически или динамически.

Процесс подготовки состоит из двух шагов.

Шаг 1. Расположить фрагменты распределенной базы данных в первоначальной расстановке на разных узлах, используя любой статичный метод распределения данных без использования избыточности.

Шаг 2. Написать таблицу логов доступа Access_Log для каждого узла. Она имеет следующую структуру: Access_Log(AFID; ASID; ADateTime; DataVol), где AFID — ID фрагмента, к которому осуществляется обращение; ASID — ID узла, инициирующего это обращение; ADateTime — дата и время обращения; DataVol — размер данных, переданных от и к фрагменту; каждый узел хранит записи логов для каждого обращения к фрагментам, расположенным на этом узле; каждая запись Access_Log обозначается как Лдр — (p-е обращение на узле

q, где p = 1, 2, ..., да и q = 1, 2, ..., S).

Фаза принятия решения о переносе фрагмента. Фаза принятия решения о переносе фрагмента выполняется каждый раз после обращения к фрагменту данных на любом из узлов. Пусть обращение сделано от узла j к фрагменту i, расположенному на узле q во время t, где i = 1, 2, ..., F; j = 1, 2, ..., S; q = 1, 2, ..., S, причем q = j или q ф j. Локальная программа на узле q выполняет четыре шага при каждом обращении к фрагменту этого узла:

Шаг 1. Сделать запись Лдр в Access_Log на узле q.

Шаг 2. Если ГО обращающегося узла в лог-записи Лдр совпадает с ГО узла q, то

обращение локальное (у = у) и, следовательно, делать ничего не нужно.

Шаг 3. Если ГО обращающегося узла в Access_Log Лр не совпадает с Ю узла q,

значит обращение удаленное (4 ф у), следовательно, необходимо выполнить следующие подпункты.

Шаг 3.1. Вычислить общее количество обращений к фрагменту / от всех узлов, включая локальные обращения, внутри временного интервала р вплоть до текущего времени обращения t. Предполагается, что п\ обозначает общее количество обращений от узла я к фрагменту /, расположенному на узле q внутри временного интервала р вплоть до текущего времени t, где я = 1, 2, ..., 5.

Шаг 3.2. Вычислить средний размер данных в байтах, передаваемых между фрагментом I и всеми узлами, включая q, откуда были обращения к / внутри временного интервала р вплоть до текущего времени t. Пусть ЛрУ" обозначает размер данных в байтах,

передаваемых между фрагментом /, расположенном на узле q, и узлом я в обращении Лр внутри временного интервала р вплоть

до текущего времени t, где я = 1, 2, ..., 5 и р = 1, 2, ..., да. Также пусть ¥¡5 обозначает средний размер данных, переданных между фрагментом /, расположенном на узле q, и узлом я внутри временного интервала р вплоть до текущего времени t

v;St =

(I AV )/X n¡.

Шаг 3.3. Если общее количество обращений к фрагменту от узла внутри временного интервала р вплоть до текущего времени t больше, чем ограничение доступа а, то есть п/ >а, где у, я = 1, 2, ..., 5;

у ф я, и средний объем переданных между фрагментом / и узлом у данных в байтах внутри временного р вплоть до текущего времени t больше среднего объема пере-

данных между фрагментом i и всеми узлами, включая q, то есть V/t > V¡St, где j, s = 1, 2, ..., S,, то выполнить следующие подпункты.

Шаг 3.3.1. Если обращающийся узел j не удовлетворяет ограничениям шага 3.3, то ничего не делать.

Шаг 3.3.2. Если только один обращающийся узел j подходит под эти ограничения, то фрагмент i передислоцируется на узел j и удаляется из текущего узла q с попутным обновлением каталогов.

Шаг 3.3.3. Если более чем один обращающийся узел j удовлетворяет ограничениям, обозначенным на шаге 3.3 в ходе одновременного обращения, то необходимо вычислить расстояние между узлом q, где располагается фрагмент i, и узлами, удовлетворяющими ограничениям, обозначенным на шаге 3.3. Выбрать узел с максимальной дистанцией от узла q и перенести фрагмент на этот узел, удалив этот фрагмент из q и обновив каталоги.

Преимущество порогового алгоритма — возможность динамической настройки момента переноса данных между узлами относительно двух параметров: времени и интенсивности запросов. Это достигается корректировкой размера временного окна и значения порогов срабатывания алгоритма относительно интенсивности поступающих внешних запросов. Основной недостаток — сложность выбора пороговых значений при скачкообразных изменениях интенсивности, что может привести к серьезному повышению накладных расходов на передачу данных без видимого приращения эффективности функционирования системы в целом.

Концепция распределенных торгов Mariposa

Подход Mariposa поддерживает функционально полный набор операций с фрагментами данных распределенной базы данных. Фрагментами являются единицы хранения данных, которые «покупаются» и «продаются» узлами. Текущий владелец фрагмента может в любое время разделить его на два фрагмента или наоборот, соединить два фрагмента в один. Идея подхода состоит в

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

Каждый запрос Q имеет бюджет B(t), который может использоваться для выполнения запроса. Бюджет — это не увеличивающаяся функция во времени, являющаяся оценкой стоимости, которую пользователь дает для ответа на свой запрос в конкретный момент времени t.

Брокер, обрабатывающий запрос Q, получает план запросов, содержащий множество подзапросов {Q1; ...; Qn} и B(t). Каждый подзапрос представляет собой ограничение одной переменной на фрагменте F таблицы или соединение двух фрагментов из двух таблиц. Брокер пытается решить каждый подзапрос Qi, используя либо протокол дорогих ставок, либо более дешевый протокол выставления заказа. Решением является перечень узлов, которые будут выполнять подзапросы.

Протокол дорогих ставок. Реализация протокола дорогих ставок состоит из двух этапов. На первом этапе брокер отправляет запросы на участие в торгах. Запрос ставки включает в себя часть плана выполнения запроса, на который делается ставка. Участники торгов возвращают заявки, представленные в виде тройки C¡, Б, Ei, указывающей, что претендент разрешит подзапрос Q¡ для стоимости Ci в течение задержки Б- после получения подзапроса, и что эта ставка действительна только до истечения срока действия Е.

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

Протокол выставления заказа. Большинство запросов не требуют трудоемких вы-

числений. Чтобы оправдать такой уровень накладных расходов, они используют более дешевый и простой протокол выставления заказа, отправляющий каждый подзапрос на узел обработки, который несомненно выиграл бы процесс торгов, если бы в них участвовал. Этот узел получает запрос и обрабатывает его, возвращая ответ в форме «счета за услуги». Если узел отказывается от подзапроса, он может либо вернуть его брокеру, либо передать его на следующий по приоритету узел обработки. Если брокер использует более дешевый протокол заказа, существует некоторая опасность не найти решения для запроса в пределах выделенного бюджета. Брокер не всегда знает стоимость, которая будет «взиматься» с выбранного узла обработки, и временные задержки при передаче данных от этого узла. Однако риск компенсируется невысокими вычислительными затратами при реализации этого более быстрого протокола.

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

При использовании протокола ставок брокеры должны выбирать выигрышную ставку для каждого подзапроса с совокупной стоимостью С и суммарной задержкой Б так, чтобы суммарные затраты были меньше или равны затребованным затратам В(Б). Существует две проблемы, затрудняющие поиск наилучшего множества ставок: параллелизм подзапросов и комбинаторное пространство поиска. Так как общая задержка не является суммой задержек Д- каждого подзапроса Qi, поскольку в каждом шаге плана запроса есть параллелизм и с большой вероятностью Б < £ Б, (Б). Кроме того, количество возмож-

I

ных множеств ставок растет экспоненциально с количеством шагов в плане запроса.

Предполагаемая задержка для обработки множества подзапросов на каждом шаге

равна наибольшему времени ставки в множестве. Количество различных значений задержек может быть не более, чем общее количество ставок по подзапросам в множестве подзапросов. Для каждого значения задержки оптимальное множество ставок состоит из наиболее дешевых ставок для каждого подзапроса, который может обрабатываться в течение данной задержки. Объединяя множества заявок в шаге и рассматривая их как совокупную ставку, брокер может свести проблему принятия ставки к более простой проблеме выбора одной ставки из числа агрегированных ставок для каждого шага.

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

Протокол распределения ресурсов. Суть проблемы заключается в определении относительных количеств ресурсов времени и затрат, которые должны быть распределены для каждого подзапроса. В [6] для решения этих задач предложен эвристический алгоритм. Возможно, он не оптимален, но показывает хорошие результаты. Предложенный алгоритм является жадным. Он производит пробное распределение, в котором полная задержка является наименьшей из возможных, а затем делает обмены до тех пор, пока не перестанут появляться более выгодные решения. Таким образом, предлагается ряд решений с постоянно увеличивающимися значениями задержки для каждого этапа обработки. На любой итерации алгоритма

предлагаемое решение содержит набор ставок с определенной задержкой для каждого этапа обработки. Для каждого набора ставок с большей задержкой вычисляется градиент затрат — снижение затрат, которое будет иметь место для этапа обработки путем замены коллекции в решении рассматриваемой коллекцией, поделенной на увеличение времени, которое, в свою очередь, было бы результатом замены.

Алгоритм начинается с рассмотрения множества ставок с наименьшей задержкой для каждого этапа обработки и вычисления общей стоимости C и общей задержки D. Вычисляется градиент стоимости для каждой неиспользованной ставки. Затем выполняется шаг обработки, который содержит неиспользованную ставку с максимальным градиентом затрат, B. Если эта ставка заменяет текущую, используемую на этапе обработки, то стоимость станет C с задержкой D. Если результирующая разница больше в D', чем в D, то необходимо сделать замену ставки. То есть если B(D') — C' > B(D) — C, то нужно заменить B на B', пересчитать все градиенты затрат для этапа обработки, включающие B', продолжить делать замены до тех пор, пока разность не перестанет увеличиваться.

Используя либо протокол дорогой ставки, либо протокола заказа, брокер должен иметь возможность определить один или несколько узлов обработки каждого подзапроса для поиска участников торгов. В Mariposa это достигается через систему объявлений.

Протокол объявлений о выполняемых действиях. Узлы заявляют о своей готовности выполнять различные услуги, размещая рекламные объявления. Серверы имен сохраняют эти рекламные объявления в таблицу объявлений. Брокеры просматривают таблицу объявлений, чтобы узнать, какие узлы могут выполнять задачи, в которых они нуждаются. В табл. 2 показаны поля таблицы объявлений.

Для обработки запросов на фрагменти-рованных таблицах и поддержки купли, продажи, расщепления и объединения фрагментов алгоритмы подхода Mariposa делятся на три уровня, как показано на рис. 1.

Таблица 2

Обозначения, используемые в полях таблицы объявлений

Table 2

Symbols definitions in the fields of table notification

Поле таблицы Описание

query_template Описание предлагаемой услуги в виде запроса с пустыми параметрами

serverid ГО узла, предлагающего услугу

start_time Время начала исполнения предлагаемой услуги

expirationtime Время, до которого предложение действительно

price Цена, взимаемая узлом за услугу

delay Время, за которое узел планирует выполнить услугу

limit_quantity Максимальное количество выполнений услуги узлом по заданной цене и времени выполнения

bulk_quantity Количество заказов, необходимых для реализации предложенной цены и времени выполнения

to_whom Множество брокеров, которым доступно данное объявление

other_f ields Комментарии и другая информация, специфичная для данного объявления

Архитектура разделяется на клиентскую программу, инициирующую запросы системе Mariposa, дополняя инструкциями по ценам и ставкам; слой промежуточного программного обеспечения; локальный узел исполнения. Уровень промежуточного программного обеспечения состоит из нескольких модулей подготовки запроса и брокера запросов. Локальный узел состоит из покупателя, менеджера хранилища данных и локального механизма исполнения запросов.

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

Концепция одноранговых сетей в кластерной распределенной системе хранения

Концепт PeertoPeer сетей — потенциально наиболее эффективная архитектура для операций с данными. Алгоритм

Уровень

промежуточного

ПО

Компонент локального выполнения

Клиентское приложение

т

SQL парсер

Узловой оптимизатор

Фрагментатор запросов

V

Брокер

Координатор _i

юкупатель

Исполнитель

Менеджер хранилища

Рис. 1. Архитектура системы Mariposa Fig. 1. The architecture of the system Mariposa

используется в специфической кластеризованной архитектуре распределенных СУБД, названной Б1ех1Реег [3]. В этой архитектуре узлы кластеризованы по критериям приоритета локальности, каждый кластер управляется локальным администратором кластера (ЛАК), а вся архитектура администрируется глобальным администратором кластера (ГАК). Процесс кластеризации выполняется на основе количества узлов в регионе, которые заносятся в таблицу местоположения. В этой таблице имеется подробная информация о каждом узле: ГО узла, местоположение и регион, по которому выполняется кластеризация узлов. ЛАК соответственного кластера обрабатывает атрибуты: локальный ГО кластера (ЬСЛ_1С), ГО узла (з11е_1СС), регион кластера (с1ш1ег_ге&оп), местоположение узла (^Ие_1осаИоп) и тип данных, хранящихся на этом узле (^Ие_1уре). Глобальные атрибуты всех кластеров (6СЛ_/С, £СЛ_1С и с1ш1ег_^юп) обрабатывает ГАК. Кластеризация помогает, если данные по запросу не найдены в конкретном узле: запрос будет перенаправлен к соответствующему ЛАК для дальнейшей обработки. Этот процесс называется пересылкой неуспешных запросов. Возрастающее количество таких запросов влияет на время обработки транзакции. Несмотря на то, что очень трудно избежать подобной ситуации, можно создать почву для сокращения числа неуспешных запросов, например, с помощью стратегии перераспределения для узлов одного кластера.

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

определения перераспределения фрагментов по узлам определяется в соответствии с выражением:

min Z = С, х .

Применяя венгерский алгоритм оптимизации, можно получить оптимальное распределение фрагментов по узлам.

Достоинство предложенного алгоритма заключается в получении нового решения за полиномиальное время, однако алгоритм предполагает жесткую иерархическую структуру подчиненности кластеров и отсутствие явного критерия перераспределения данных между узлами.

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

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

1. Выполняется прогнозирование на к шагов вперед для оценки рабочих нагрузок в ближайшие часы.

2. Выполняется корректировка количества узлов, в ходе которой выясняется, что необходимо сделать (добавить дополнительные узлы или удалить лишние).

3. Выбираются фрагменты с низкой стоимостью миграции для необходимых миграций.

4. Выполняется миграция фрагментов для балансировки нагрузки.

1: For к = 1: ю Do

2:

YJVf ,,(к)/в, j=i

3

4

5

6

7

8 9

10 11 12

13

14

15

16

17

18

EndFor

If n < nt+1 Then

n ^ n,

t+i'

добавить nt+1 - n узлов ElseIf n > max1ik<ю (nt+k) Then

nd ^ maxi<k Юъ+k);

While n _d < n Do

Nr ^ [Nt: Nt e QN,$Nl e QN такого, что W ForAll Fj e QF таких, что a _{rj} = 1 Qm u[Fj};

arj ^ 0;

EndFor

n ^ n -1;

Qn ^QV -[Nr}; EndWhile EndIf.

N, ,t (1) > wVn, ,t (1)};

Листинг 1. Фаза корректировки количества узлов Listing 1. Node adjustment phase

Алгоритм корректировки числа узлов.

Корректировка количества узлов, выполняемая в фазе 2, описана в листинге 1. Сначала оценивается требуемое количество рабочих узлов для следующих ю единиц времени: nt+vnt+2,...,nt+m (шаги 1—3). Новые узлы добавляются, если количество существующих рабочих узлов недостаточно для следующего момента времени n < nt+l (шаги 4—6). Некоторые узлы удаляются, если есть лишние работающие узлы для всех ю единиц времени n > max1 <k<ю (nt+k) (шаг 7). В случае добавления узлов учитываются нагрузки в следующие моменты времени для обеспечения достаточного количества рабочих узлов в тот момент времени. Однако для удаления узлов учитываются все ю моменты времени для предотвращения появления ненужных трат на миграцию данных в течение следующих ю моментов времени.

В случае удаления нескольких узлов алгоритм итеративно выбирает узел для удаления с наименьшей нагрузкой в момент вре-

мени 1 + 1 (шаги 8—16). В [11] указано, что миграция фрагмента занимает от нескольких секунд до нескольких минут. Поскольку миграция любого фрагмента завершается за единицу времени (час), обозначим стоимость миграции фрагмента его нагрузкой в момент времени 1 + 1 и минимизируем общую стоимость миграции выбором узлов с низкой загрузкой в момент времени 1 + 1 с их последующим удалением.

Алгоритм оценки перегруженности узлов. После фазы корректировки количества узлов алгоритм проверяет, есть ли узлы, которые в следующий момент времени будут перегружены. Если это так, то некоторые фрагменты, принадлежащие этим узлам, выбираются в качестве перемещаемых. Фаза выбора таких фрагментов (фаза 3) изложена в листинге 2. Если узел работает со скоростью выше верхней границы 0И рабочей нагрузки узла в момент времени 1 + 1 — Ждг (1) >9И, алгоритм итеративно выбирает фрагмент для удаления из узла, пока нагрузка не упадет ниже 0И. По возможности

выбранные фрагменты должны удовлетворять «ограничению 1» модели ЛИМА [8] (шаги 3—5) для стабилизации узла после удаления из него фрагментов. Если таких фрагментов нет, то алгоритм использует основное правило выбора фрагментов с малой нагрузкой в момент времени / + 1 (шаг 7) для уменьшения стоимости миграции.

Алгоритм миграции фрагментов между узлами. На последнем шаге осуществляется этап миграции фрагментов. Фаза миграции фрагментов (фаза 4) описана в листинге 3. Фаза выполняется в случае, если некоторые фрагменты должны быть перенесены из своих начальных узлов. После сортировки фрагментов в порядке убывания нагрузок в момент времени / +1 (шаг 1), алгоритм итеративно ищет узел назначения для каждого фрагмента. Для того чтобы избежать возникновения ненужных миграционных затрат, выбранные узлы проверяются на неперегруженность после получения новых фрагментов, что эквивалентно соблюдению условия Ждг (1) >9И (шаг 4). По возможности выбранные фрагменты должны удовлетворять «ограничению 2» модели ЛИМА [8] (шаги 5—7), чтобы еще больше уменьшить вероятность ненужных затрат.

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

Эвристический подход к избыточному распределению фрагментов базы данных

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

1 2

3

4

5

6

7

8 9

10 11 12 13

ForAll Nl e QN Do While WNij (1) >e„ Do

Pr = {Fj : Fj e ПР,a9 = 1 так, тто | - GF.,, |<| G^j |}; If ф 0 Then Fr ^ {F: : Fj e QT, $Fl e QT, такого, что WF, t (1) > WF t (1);

J J j ? l ?

Else

Fr ^ {Fj : Fj eOF,at j = 1,$F, eOF, aa = 1 такого, что WFj,t(1) > WFi,t(1); EndIf

WNt ,t (1) ^ wNi ,t (1)-Wr ,t (1);

(GNi ,t ^ (GNi ,t - GFr t QM ^Qm ^ {Fr }

EndWhile EndFor.

Листинг 2. Фаза отбора фрагментов Listing 2. Fragment selection phase

1: Отсортировать F: e QM по убыванию WF, t

^ J'

2: While QM * 0 Do

3: ]Fr = Fj e QM с наименьшим Wf. t

J'

4: Q = [Fj : Fj eQF,ац = 1 так что I ,t - GPj,t !<! GNt,t I};

5: ]QT = [Nt: N j e QS так, что GN, t + GFrt < 0};

6: If Qt * 0 Then

7: Nd ^ [Ni: Ni e QT,$N, e QT такого, что WN,,t(1) > WNi,t(1)};

8: Else

9: Nd ^ [Nj: Nf e QS,$N, e QS такого, что WN,,t(1) > WNi,t(1)};

10: EndIf

11: qM ^qM -[Fr};

12: adr ^ 1;

13: Перенести F_r на Nd;

14: EndWhile

15: Удалить все пустые узлы.

Листинг 3. Фаза миграции фрагментов Listing 3. Fragment migration phase

Подход работает на модели, основанной на предположении о том, что имеется полносвязная сеть, состоящая из множества узлов Б = {£ь Б2, ..., Бт}, каждый и которых имеет объем С, лимит фрагментов FL и локальную БД, являющуюся частью распределенной базы данных. Ребро между двумя узлами Б1 и Бу имеет атрибут ССу, представлено натуральным числом, обозначающим стоимость передачи единицы данных от Б к Бу.

Каждый узел генерирует множество запросов 0 = {01, 0_2, ..., 0к}, рассматриваемых как наиболее часто выполняемые запросы, например 75 %, обрабатываемых в РБД. Каждый запрос (¿к может выполняться с любого узла с определенной частотой. Частоты выполнения к запросов на т узлах могут быть представлены как матрица mxk(QF¡J). Пусть Б содержит множество фрагментов F = {F1, F2, ..., Fn}, представляя собой разделение отношений в ходе фазы фрагментации РСБД.

Исходя из критерия оптимальности — минимальной стоимости записи каждого Fj на узел Бк и стоимости выполнения за-

проса Fi на Бк, и стоимости обновления Fi на всех узлах, где этот фрагмент записан, и стоимости передачи данных. Таким образом, решение проблемы оптимальности в соответствии с используемой моделью перераспределения может быть определено как минимизация стоимости связи в процессе переноса фрагмента F¡ на узел Бк.

Описание используемых обозначений приведено в табл. 3.

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

Таблица 3

Обозначения, используемые в эвристической модели

Table 3

Symbols denotations in the heuristic model

Обозначение Описание

М Количество узлов РСБД

St ]-й узел

N Количество фрагментов данных в РСБД

Ft г-й фрагмент данных

K Количество запросов в РСБД

RN Количество связей

Q Массив запросов

Qk к-й запрос

Q,- # Количество запросов узла ]

RFy Частота обращения запроса на выборку г узла ]

UF,j Частота обращения запроса на обновление г узла ]

QFjj Частота обращения к-го запроса узла ]

Ci Емкость узла ]

CCjj Стоимость передачи данных между узлами г и ]

FLj Максимальное количество фрагментов данных на узле ]

TC Общая стоимость

В модели подразумевается, что один и тот же запрос на разных узлах воспринимается как разные запросы с разными частотными характеристиками. Однако для достижения оптимального динамического перераспределения используются частоты запросов всех распределенных фрагментов в целях возможного применения при каждом их перераспределении. Чтобы инициировать начальную фазу распределения фрагментов, которая может содержать дублирующие фрагменты, в предлагаемой методике считается, что фрагменты уже распределены по сетевым узлам на основе матрицы поиска КМ и матрицы частот запросов QF, сохра-

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

Используемая методика неизбыточна и применяется с использованием матрицы частот запросов UM, т. к. запрос на обновление данных включает в себя затраты на передачу данных и стоит больше, чем запрос на выборку данных и обработка частотной матрицы. Матрицы UM и QF будут использоваться в качестве входных данных для построения новой матрицы частот обновления фрагментов (Fragment Update Frequency Matrix - FUEM). FUEM может быть определена значениями запросов на обновление на конкретных узлах для вовлеченных фрагментов.

FUEM используется для формирования кумулятивной частотной таблицы обновлений (Cumulative Update Frequency Table — CUFT). С помощью CUFT и DM получается матрица оплаты фрагментов (Fragment Pay Matrix — FUPM). С помощью FUMP определяется узел с максимальной стоимостью обновления для конкретного фрагмента — такой узел является кандидатом на хранение фрагмента. Если имеются какие-либо нарушения ограничений для узла-кандидата, то выбирается следующий по стоимости. Процедура приоретизации (Fragments Priority, FP procedure) будет работать на всех узлах для гарантирования единственности текущего фрагмента.

Процедура FP показывает количество обращений к фрагменту: как много раз запросы каждого узла QS обратились к предполагаемому фрагменту. Используется, если к одному фрагменту Fi осуществляются запросы более чем с одного узла с одинаковыми значениями стоимости обновления этого фрагмента. Для исключения копий FP рассчитывается для каждого узла и используется для принятия решения о перемещении фрагмента F на узел с наивысшим FP. Последовательность шагов для перераспределения данных приведена на рис. 2.

Рис. 2. Эвристический подход для перераспределения данных Fig. 2. Redistributing data: heuristic approach

FP(Sj,ф = х QSJ, 1 < ] < т;

н=1

QSh¿ = £ RM + £ ЦМ^-, 1 < Н < Н.

1=1 Ш 1=1

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

п т

СОТТ = х ^(/1));

1=11=1

БМ. = тт(ССу), 1 < I,. < т;

т

РИРМ = £ СЦРТ(^-) х БМ.,, 1 < .' < т;

.=1,. * 1

т

£тах^ИРМ.), 1 < I < п.

I=1

Процесс перераспределения может считаться оптимальным при достижении схемы распределения с минимальной стоимостью обновления. Поскольку эта проблема практически невычислима, предлагается эвристический алгоритм (листинг 4).

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

обновления данных локально, не заботясь о сохранении фрагмента в наилучшем узле, что обеспечивает разделение процессов локальной работы системы управления базой данных и средств сетевой синхронизации. Недостаток предложенного метода — сложность реализации распределенной транзакционной модели: откат транзакции потребует перезапуска процедуры перераспределения данных.

Концепция автоматов с памятью,

взаимодействующих с внешней средой

Цель применения обучающегося автомата в том, чтобы выбирать оптимальное действие с максимальной вероятностью вознаграждения за счет многократного взаимодействия с внешней средой. Если алгоритм обучения выбран правильно, то итеративно повторяющийся процесс может привести к выбору оптимального действия [13].

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

1: Input:

2: Для каждой связи {1, ..., K}

3: Q = {Q1, ..., Qn} множество запросов

4: F = {F1, ..., Fn} фрагменты данных в РБД

5: S = {S1, ..., Sm} множество сетевых узлов

6: матрицы RM, UM, QF и матрица стоимостей передачи данных

7: Output:

8: Схема перераспределения фрагментов

9: Code:

10: Начальное распределение данных с использованием RM, QF

11: Строится таблица FUPM с использованием UM и QF

12: Матрица стоимостей расстояний (Distance Cost Matrix, DM)=

тш

13: ForAllузел я е {1, ..., т) Do // в FUPM, для получения нового FUPM

14: ForAll фрагмент Fi е R; 1 < i < n 15: Вычислить запрос на обновление Fj

16: EndFor

17: ForAllузел я е {1, ..., т) Do 18: Вычислить FUPM

19: EndFor

20: Выбрать значение (и), так что Payv(Fi) = Maxm поиск узла с

максимальной стоимостью обновления фрагмента (S);

21: Перенос Fj на Sj(u);

22: If S_j.constraints (ограничения на узле Sj) были нарушены Then 23: Перейти на Fj на Sj+1 со второй по величине стоимостью

обновления

24: EndIf

25: If фрагмент Ft требуется нескольким узлам Then

26: Выполнить процедуру FP на всех узлах, где требуется Ft

27: Перенести фрагмент на Sj с максимальным FP

28: EndIf

29: EndFor.

Листинг 4. Эвристический алгоритм перераспределения фрагментов данных Listing 4. The data redistribution heuristic algorithm

Если РБД состоит из коллекции т узлов £ = |с1, с2,..., ст}, где каждый узел i характеризуется его объемом с и множество п фрагментов F = ^ •••, то каждый фрагмент ] характеризуется размером si. Каждый фрагмент востребован как минимум одним из узлов. Востребованность каждого фрагмента представляется в виде матрицы, где значения на пересечении узлов означают востребованность фрагмента i узлом ], которая обычно обозначается логическими нулем или единицей.

Стоимости передачи данных отражаются в матрице Т, где ^ обозначает стоимость до-

ступа узла i к фрагменту, расположенному на узле ]. Таким образом, проблема распределения в РБД сводится к задаче поиска оптимального размещения фрагментов на узлах, т. е. поиск размещения Р = {рьр2, • ..,р, • ..,рп}, где равенство р, = i означает, что фрагмент ] расположен на узле i для п фрагментов так, что объем каждого узла не переполнен. Общая стоимость передачи в этом случае

т п

составит ] х Р, где минимизировано

'=1 ]=1 ' ' '

п

Ет;  х < с V/11 < /< т. } 1 1

1=1

Ограничивая использование матрицы Я и имея нулевую стоимость передачи, проблема распределения данных в РБД сводится к задаче об упаковке в контейнеры, т. е. к КР-полной задаче [9].

В РБД с т узлами и п фрагментами количество решений в области поиска велико. Если использовать обучающийся автомат для решения проблемы распределения фрагментов данных, у автомата будет слишком много возможных действий, что уменьшит скорость нахождения решения в автомате. Для устранения этой проблемы можно применять обучающийся автомат с миграцией объектов [14, 15]. Для решения проблемы используется автомат миграции объектов, обозначаемый как <V, а, ф, р, F, О. В этом автомате а = {а1, а2, ..., ап} представляет собой множество из п возможных действий автомата, причем количество действий равно количеству фрагментов данных. V = {Уи У2, ..., ¥п} представляет собой множество объектов, которые являются номерами узлов, на которых можно расположить фрагменты данных, а объекты принимают значения 1, 2, ..., т. Объекты перемещаются по различным состояниям автомата и создают новые распределения, ф = = {ф1, ф2, .••, фпл) — множество состояний, N — глубина памяти автомата. Множество состояний автомата подразделяется на к подмножеств {фь ф2, .. фN}, {ф^+1, ф^+2,-, Ф2^},

{ф(к-1)#+1, ф(к-1)#+2,-, фкМ } TаK, что объекты

классифицируются в терминах их состояний. Если объект и расположен в множестве состояний {фа

-1)Ы+1, ф( 1 -1)Ы+2, •",

то в этом случае фрагмент данных ] будет включен в и-й узел. В множестве состояний действия ] состояния ф( и фjN

называются соответственно внутренним и граничным состояниями. Объекты, лежащие в ф( и ф^, называются более и менее определенными объектами. Множество входов автомата р = {0,1}, где единица и ноль означают отказ и успех

соответственно; F : ф х р ^ ф обозначает функцию отображения состояний, которая на основании текущего состояния и входов автомата производит следующее состояние, тем самым определяя движение объектов по состояниям автомата.

Функция F различна для различных автоматов. G: ф ^ а — выходная функция отображения, решающая, какое действие предпринять в ответ на любое состояние автомата. Если объект u в множестве состояний {ф(у

-1)N+1' Ф(j-1)N+2,-, ФjN Ь выбирается действие j и, следовательно, фрагмент j будет на u-м узле.

Задача распределения реализована в алгоритме, представленном в листинге 5.

Алгоритм начинает работу с создания фрагментов данных со случайным распределением на узлах, с учетом ограничений на емкость узлов для выравнивания нагрузки. Для начала берется несколько узлов, у которых объекты действий автомата находятся в граничном состоянии. Затем выбирается случайный объект и, соответственно, получается либо штраф, либо вознаграждение. Общая стоимость переноса фрагмента данных на заданный узел вычисляется соотношением

m

cost(data J-ragment) = g rhdata_fragment^Рёш ^ •

Затем пороговое значение вычисляется как средняя общая стоимость передачи фрагментов данных. Если стоимость передачи фрагментов данных меньше или равна пороговому значению, то объект получает вознаграждение, иначе — штраф. Затем эти действия продолжаются для другого случайного объекта. Алгоритм продолжает выполняться, пока не выполнится условие остановки. Под условием остановки понимается превышение числа итераций алгоритма выше порога итераций, или достижение оптимального распределения, или локализация всех объектов во внутренних состояниях.

1: n = количество фрагментов в системе; 2: m = количество узлов в системе;

3: Случайное начальное распределение ст с учетом балансировки

нагрузки на узлах; 4: Назначить узлы как объекты к граничным состояниям соответствующих действий автомата; EvalFitness(CT); // ст = начальное распределение 5: EvalFitness(CT) // начальное распределение 6: iteration = 1; 7: Do

8: For u Do//1 < u < n, u — случайный фрагмент 9: If cost

//здесь ограничение = (£ n=Дj * t,p.) / n

// cost(dataJragment) = Xhrjatajragment * ti,Parent

11: Else

12: penalize

13: EndIf

14: EndFor

15: Inc

16: EvalFitness

17: Until (iteration = Maxjterations или проход всех объектов в состояниях максимальной достоверности).

Листинг 5. Процедура распределения данных Listing 5. The data distribution procedure

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

Эволюционный подход к миграции данных для выполнения операций выборки

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

данных с последующей реорганизацией размещения.

В процессе оптимизации размещения рассматриваются две стратегии обработки запроса.

• Моуе8ша11: если бинарная операция для двух отношений, например, объединение, включает в себя два фрагмента данных, расположенных на двух разных узлах, то необходимо доставить меньший фрагмент данных на узел большего фрагмента данных;

• QuerySite: отправить все фрагменты данных на узел источника запроса и выполнить запрос.

Цель распределения данных — минимизация общей стоимости передачи данных для обработки всех запросов с использованием одной из перечисленных выше стратегий выполнения. Первая задача распределения данных — максимизация локаль-

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

Рассматривается мультимедийная РБД с т узлами, каждый из которых имеет собственные вычислительные мощности, память и локальную БД. Пусть £г- — название узла i, где 0 < i < т — 1. Связь между двумя узлами 5*г- и (если он существует) имеет

связанное с ней натуральное число с...,

обозначающее стоимость передачи единицы данных из узла 5*г- на узел Если два узла не связаны напрямую, то стоимость передачи единицы данных будет являться суммой стоимостей связей на выбранном пути от до узла (( = Ч1, • ••, Чп — 1} — рассматривается как множество наиболее выполняемых запросов — 80 % обработки в РБД. Каждый запрос чх может выполняться из любого узла £г- с определенной частотой ах. Частоты выполнения п запросов на т узлах могут быть показаны матрицей А(тхп). Рассмотрим к фрагментов данных (( = {2о, ?1, •, Чп — 1}.

Таблица 4

Обозначения, используемые в эволюционном алгоритме

Table 4

Symbols denotations in the evolutionary algorithm

Обозначение Описание

m Количество узлов РСБД

St й узел

к Количество фрагментов данных в РСБД

Oj ]-й фрагмент данных

n Количество запросов в РСБД

Q Множество запросов

qx х-й запрос

A Матрица частот доступа

aix Частота обращения х-го запроса к узлу i

C Матрица стоимостей передачи единицы данных

c - a Стоимость передачи единицы данных от узла i узлу /

l Вектор лимитов распределения по узлам

h Лимит распределения для узла i

R Матрица размеров передаваемых данных запросов

rxj Размер передаваемых данных фрагмента ] запроса х

U Матрица размеров передаваемых данных узлов

u - jj Размер передаваемых данных фрагмента ] узлу у

D Матрица зависимостей фрагментов данных

dj Размер передаваемых данных от узла фрагмента i узлу фрагмента у

t Общая стоимость передачи данных

Пусть гх, — размер фрагмента данных ), который необходимо передать на узел Б,, откуда был ах раз за единичный интервал времени инициирован запрос qx. Соответствующей матрицей является Я размера тхк, а матрица и размера тхк будет содержать в себе и,, отображающие размеры данных, которые необходимо перенести из узла расположения фрагмента О, на узел Б, откуда был инициирован запрос. Таким

n—1

образом, uv = g ab

.. r •.

ix xj

x=0

В матричном представлении, U = AxR.

В этом случае размер требуемого фрагмента зависит от распределения других фрагментов данных. Пусть dj, — размер фрагмента данных Oj,, который необходимо передать на узел, где располагается Oj,, для выполнения определенных бинарных операций. Соответствующая матрица размера кхк — D. Всё зависит от обрабатываемого запроса, поэтому для каждого запроса необходима информация о том, как много данных должно быть передано от узла, где располагается один фрагмента данных, на узел с другим фрагментом, с учетом того, что оба фрагмента требуются для выполнения запроса.

Пусть 8j — размер данных Oj, необходимых для передачи на узел, где расположен Oj,, для обработки qx, соответствующая матрица Дх. Количество данных для передачи из узла, на котором располагается Oj, на узел расположения Oj, задается

следующим образом:

n—1 m—1

j = g (gafe )S j.

x =0 i =0

В матричном представлении:

n—1 m—1

D = g (gax )Vx.

x=0 i=0

Пусть site(Oj) обозначает узел, где расположен Oj. Следовательно, общая стоимость передачи t задается как

n—1k—1

\,site(O:) Х Uij ,

i=0 j=0

k—1 k—1 t = g g

j=0 j '=0

Csite(O ) s;fe(O .,) х djj' + g, g Ci

site(Oj ), site(Oj.

где первое слагаемое обозначает стоимость передачи данных, требующейся для обработки бинарных операций между фрагментами разных узлов, а второе слагаемое — стоимость передачи данных для отправки результатов бинарных операций на узел, инициировавший запрос. Задача распределения данных минимизация t путем изменения функции site(Oj), сопоставляющей фрагмент данных с определенным узлом.

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

Генетический алгоритм поиска. Генетические методы поиска [16, 17] получены по аналогии с механизмами натуральной генетики, приводящей к выживанию наиболее приспособленных индивидов. ГА манипулируют популяцией потенциальных решений задачи оптимизации.

В предложенном ГА для решения проблемы распределения данных производится кодирование в бинарном представлении назначений каждого фрагмента данных узлам. Эти значения объединяются в одну двоичную строку. Каждая двоичная строка представляет потенциальное решение задачи распределения данных. «Пригодность» (fitness) строки — это стоимость распределения. Механизм селекции реализуется как простая схема пропорционального выбора: строке с пригодностью f выделяется потомство f / (f), где f — среднее значение пригодности популяции. Строке с пригодностью выше среднего значения выделяется более одного потомства, ниже — менее.

Скрещивание (Crossover) — тоже важная операция ГА. Пары строк берутся случайно из популяции и подвергаются скрещиванию. Пусть L — длина строки, тогда алгоритм

случайно выбирает точку скрещивания, принимающую значения в диапазоне от единицы до Ь — 1 с равной вероятностью. Части двух строк за пределами этой точки скрещивания меняются местами, образуя две новые строки. Существует параметр рс, характеризующий частоту скрещиваний.

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

Сложность распределения с помощью ГА сводится к 0(0Лр(к2 + кт)), где О — количество поколений, а N — размер популяции.

Алгоритм симулированной эволюции. Это

вариант традиционного ГА [18, 19]. Имитация отжига, ГА и эволюционные стратегии одинаковы в использовании вероятностных поисковых механизмов, направленных на уменьшение или увеличение целевой ценовой функции. Эти три метода имеют высокую вероятность нахождения оптимального общего решения, несмотря на то, что функция стоимостей мультимедиа имеет несколько локальных оптимальных решений. Однако каждый метод имеет суще-

ственную разницу в режимах работы: имитация отжига вероятностно генерирует последовательность состояний, чтобы в конечном итоге сойтись к глобальному оптимуму. Эволюционные стратегии используют мутации как поисковые механизмы и для выбора направления поиска в предполагаемых областях поискового пространства. ГА генерирует последовательность популяции с использованием механизмов селекции и использует скрещивание и мутацию в поисковых механизмах (листинг 6).

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

Количество генов в а равно общему лимиту распределения, а количество генов в Ь равно общему количеству фрагментов.

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

1: Инициализация популяции. Каждый индивид популяции является конкатенацией двоичных представлений случайного начального распределения каждого фрагмента данных;

2: Вычислить популяцию;

3: no_of_generation = 0;

4: While no_of_generations < MAX_GENERATION Do

5: Выбрать индивидов для следующей популяции;

6: Провести скрещивание и мутацию для этих индивидов;

7: Вычислить популяцию;

8: nojfjgenerations + +;

9: EndWhile

10: Определить конечное распределение путем выбора наиболее подходящего (приспособившегося) индивида. Если конечное распределение невозможно, то необходимо рассмотреть каждый перенаселенный узел и перенести фрагменты на другие узлы с минимальным приростом цены.

Листинг 6. Генетический алгоритм распределения данных Listing 6. The data distribution genetic algorithm

1: Построить первую хромосому на основе входных данных и заставить

хромосому сгенерировать начальную популяцию; 2: Использовать эвристики отображения для генерации решения по

каждой хромосоме; 3: Вычислить полученные решения; 4: no_of_generations = 0;

5: While no_of_generations <MAXGENERATION Do

6: Выбрать хромосомы для следующей популяции;

7: Выполнить скрещивание и мутации для этих наборов хромосом;

8: Использовать эвристики отображения для генерации решения по

каждой хромосоме; 9: Вычислить полученные решения; 10: no_of_generations + +; 11: EndWhile

12: Вывод лучшего найденного решения.

Листинг 7. Алгоритм симулированной эволюции для распределения данных Listing 7. The stimulated evolution algorithm of data distribution

Для Ь каждый ген — это целое число, означающее приоритет рассматриваемого фрагмента: чем больше значение, тем выше приоритет.

Используя матрицу стоимости сетевой передачи С частоты доступа Ь размеров передаваемых данных, мы можем вычислить матрицу стоимостей распределения фрагментов данных по узлам и', задаваемую как и' = Сх и. То есть каждый элемент и',

обозначаемый

uu,

ij '

представляет собой

стоимость распределения по узлам, возникшую при размещении фрагмента у на узле I.

В алгоритме симулируемой эволюции первая хромосома начальной популяции строится на основании информации ы^' из

таблицы. Для каждого фрагмента у вычис-

т

ляется X] = ^ •.

г=1

Идея в минимизации стоимости распределения путем задания высокого приоритета фрагменту с большей у. Большое значение у означает, что этот фрагмент затратит больше времени на передачу, т. е. будет больше стоить. Таким образом, просто назначается у в качестве генов для каждой позиции фрагментов в части Ь первой хромосомы в начальной популяции.

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

Эвристика отображения состоит в том, что для каждой хромосомы ищется решение, перенося фрагмент у с наивысшим приоритетом на узел /, таким образом, чтобы Ы]' был наименьшим для всех ы'.

1 < х < т. Если лимит распределения, включенный в гены части а хромосомы этого узла, превышен, т. е. узел переполнен, то этот фрагмент переносится на узел со следующим наименьшим значением ыу'

для всех Ы]', 1 < у < т, у ф х. Фрагмент гарантированно будет распределен на какой-нибудь узел, т. к. было проверено, что общий лимит распределения больше или равен общему количеству фрагментов для каждого поколения хромосомы.

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

фрагментами и размеры фрагментов, необходимые для каждого узла. Значение пригодности для хромосомы вычисляется как

(МахСс^Г - Сс^(/))т

^(MaxCost - Cost(O)т

i=1

где Np — размер популяции; MaxCost — максимальная стоимость среди хромосом в популяции; т — коэффициент сходимости, использующийся для контролирования скорости сходимости. Сложность алгорит-

2

ма составляет O(GP(k + km)).

Алгоритм отжига среднего поля. Техника отжига среднего поля (Mean Field Annealing — MFA) [3, 5] комбинирует свойство коллективного вычисления нейронной сети Хоп-филда (Hopfield Neural Network — HNN) с техникой имитации отжига. MFA первоначально была создана для решения задачи коммивояжера как альтернатива HNN, недостаточно масштабируемой для крупных задач. Доказано, что MFA является общим подходом [3, 4], который может быть применен к различным задачам комбинаторики.

Алгоритм MFA [3] получен из аналогии с моделью спинов Изинга, использующейся для оценки состояния системы частиц или спинов в тепловом равновесии. В этой модели энергия системы с S спинами имеет вид:

1 5 5

H (s ) = 2 EDWy ,

x=1 y Ф x x =1

где ß^ представляет собой уровень взаимодействия между спином х и y; sx е 1,0 — значение спина х. Предполагается, что ßxy = ßyx и ß„ = 0 для 1 < х, y < S. В тепловом равновесии среднее значение <sx > спина х может быть вычислено с помощью распределения Больцмана:

1

<** > =

1 + e

=о -<H (s)>

,-Фх /T '

где Фх = <Н(б)) \Бх=0 -{н (б)) \Бх= представляет собой среднее поле, действующее на спин х, где средняя энергия системы {Н(б)) :

{Н (5)) = £ { ) + £ {Бх )•

Сложность вычисления Фх с использованием этого уравнения экспоненциальная. Однако для большого числа спинов приближение среднего поля может использоваться для вычисления средней энергии:

{Н(Б)) =2 £ £Р^ {Бх ){б, ) + £ {Бх )•

х =1 у Ф х х =1

Следовательно, {Н(б)) линейна в {бх), среднее поле Фх может быть вычислено через

Фх = {Н(Б)Ях=0 -{Н(Б)) \БХ =1 =

Э{ Н (Б)) - - = -( £рху {Бу ) + ).

ö< Si >

y Ф x

Таким образом, сложность вычисления Фх сводится к 0(5).

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

Проблема распределения данных формулируется через МБА следующим способом (см. листинг 9). Вместо линейного массива спинов используется ххт матрица спинов Зу для кодирования распределения фрагментов данных по узлам (х фрагментов данных по т узлам). Единица в записи означает, что фрагмент расположен на соответствующем узле. Правильное распределение — такое, когда в каждой строке матрицы спинов есть только одна единица. Каждая переменная спина непрерывна в диапазоне [0,1]. Значения спинов сходятся к единице или нулю в фиксированной точке. Таким образом, функция энергии в интерпретации стоимости передачи данных для задачи распределения данных может быть формализована следующим образом:

к-1к-1 т-1 т-1 т-1к-1

Е (б)=££££,• Л' бчбч ' + ££Илбу •

x=1 y Фх

x =1

i=0 i'=0 j=0 j '=0

j=0i=0

1 2

3

4

5

6

7

8 9

10

Получить начальную температуру T0, задать T = T0; Инициализировать средние значения спина (s) = [<sj),..., (ss)]; While T в диапазоне охлаждения Do While система не стабилизирована на текущей температуре Do Выбрать случайный спин x; Вычислить x; Обновить (sx); EndWhile

Обновить T в соответствии с расписанием охлаждения; EndWhile.

Листинг 8. Общий алгоритм MFA Listing 8. General MFA algorithm

1: Получить начальную температуру T0, задать T = T0;

2:

3

4

5

6

Инициализировать средние значения спина s = [s0

каждый sp инициализирован как случайное число между 0 и 1; While температура T в диапазоне охлаждения Do While E уменьшается Do Выбрать случайный фрагмент данных i; Вычислить среднее поле спинов (Ф„ ,Vj) в строке i;

m-1

7: Вычислить сумму ^

Ф- /т

8: Вычислить новые значения спина в строке i;

9: Вычислить изменения энергии исходя из вышеуказанных вычислений;

10: EndWhile

11: Обновить температуру T в соответствии с расписанием

охлаждения; 12: EndWhile

13: Определить окончательное распределение, помещая каждый фрагмент данных на узел с максимальным значением спина.

Листинг 9. Алгоритм MFA распределения данных Listing 9. The MFA algorithm of data distribution

Используя приближение среднего поля, выражение для Фу, влияющего на спин s¡J, становится:

дЕ(^) к-1^1 л Ф.. =—— = -> > с..Л..^.,., -ы...

. <"ф<7'Ф/ Сумма спинов каждой строки должна быть равна единице, т. е. каждый фрагмент данных должен быть распределен исключительно на один узел. Этого можно достичь, нормализируя каждый спин 5^-:

л-/т

s;; =

j m-1

ф-/т

ъ

. '=0

Если окончательное распределение невозможно, то необходимо рассмотреть

каждый перегруженный узел, чтобы перенести фрагменты данных на другие узлы с наименьшим приростом стоимости. Общая сложность алгоритма МБЛ 0(БК(к2 + кт)).

Алгоритм случайного поиска. Используется не сложная, но эффективная оптимизационная техника, называемая поиском случайной окрестности (см листинг 10). Основная идея этого алгоритма — сгенерировать начальное решение среднего качества. Затем, с учетом предопределенной окрестности, алгоритм вероятностно выбирает и тестирует соседнее решение в области поиска на предмет того, лучше оно или нет. Если лучше, то алгоритм принимает его и начинает поиск в новых окрестностях, если нет, выбирается другое решение.

1: Используется раздельная кластеризация [19] для поиска начального

распределения InitialAlloc; 2: BestAlloc = InitialAlloc; 3: New_Alloc = BestAlloc; iteration = 0; 4: Do

5: searchstep = 0; counter = 0; 6: Do

7: Выбрать случайно два узла из NewAlloc; 8: Выбрать случайно два фрагмента данных из каждого узла; 9: Поменять их местами; 10: If стоимость уменьшилась Then

11: принять изменения, counter = 0; 12: Else

13: отменить их, counter + +;

14: EndIf

15: Until + + searchstep > MAX_STEP || counter > MARGIN; 16: If cost (NewAlloc) < cost (BestAlloc) Then

17: Best Alloc = New Alloc;

18: EndIf

19: Случайно обменять два фрагмента данных из двух отдельных

случайных узлов из NewAlloc; /* Вероятностный прыжок*/ 20: Until iteration > MAX ITERATION.

Листинг 10. Алгоритм случайного поиска (Random Search (RS)) Listing 10. The random search algorithm

Алгоритм останавливается после определенного количества шагов или после фиксированного количества шагов, в ходе которых решение не улучшалось. Качество решения этой техники в значительной степени зависит от выбора и построения окрестностей.

Заключение

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

сто используемых и длительно выполняемых запросов.

Рассмотренные подходы реализуют различные технологические приемы к решению задачи оптимизации относительно двух критериев: времени доступа к данным и объема хранимых данных на каждом узле. К ним относятся задача минимизации суммарного времени доступа ко всем фрагментам, как в подходе с пороговой оценкой, концепция локальной оценки и минимизации путем выполнения распределенных «торгов» по технологии Mariposa, формирование иерархии кластеров для реализации распределения данных между кластерами в венгерском алгоритме, применение методов прогнозирования будущей нагрузки методами авторегрессии и скользящего среднего для распределения на основе прогнозирования, применение эвристики для оценки стоимости пути на полносвязном графе с выделением путей максимальной стоимости, автоматные подходы, состоящие в изменении состояния автомата для получения наиболее выгодного состояния системы, эволюционные алгоритмы, реализующие эффективные модификации генетических алгоритмов.

Таблица 5

Сравнительная характеристика подходов и алгоритмов к перераспределению данных

в распределенных базах данных

Table 5

The comparison of approaches and algorithms for the redistribution of data in distributed databases

Подход Ретроспектива Прогноз Анализируемые операции Наличие централизованного брокера Алгоритм оценки перераспределения

Пороговой оценки Да, плавающим окном по времени Нет Выборка, добавление Нет Оригинальный

Распределенных торгов Да, локальная на основе данных узла Нет Выборка добавление Да, выборы победителя торгов Оригинальный

Одноранговых сетей Нет Нет Выборка Да, требует иерархии брокетов Венгерский

Прогнозирования состояния Нет Да, ARIMA Выборка Да, обеспечивает изменение числа узлов Оригинальный

Избыточное распределение Нет Нет Выборка Да Оригинальный

Автоматный подход Да, на основе автоматов с памятью Нет Выборка, добавление Да Оригинальный

Эволюционный подход Нет Нет Выборка Да Генетические алгоритмы: поиска, симулированной эволюции, среднего поля, случайного поиска

Результаты анализа подходов и применяемых в них алгоритмов приведены в табл. 5.

Предложенный обзор алгоритмов может использоваться для реализации эффективных методов распределения данных в системах управления распределенными базами данных.

Работа подготовлена в ходе реализации комплексного проекта в рамках Постановления Правительства РФ от 09.04.2010 № 218 при финансовой поддержке Министерства образования и науки РФ. Договор № 03.G25.31.0259 от 28.04.2017.

СПИСОК ЛИТЕРАТУРЫ

1. Kumar R., Gupta N. An extended approach to non-replicated dynamic fragment allocation in distributed database systems // IEEE Internat. Conf. on Issues and Challenges in Intelligent Computing Techniques. 2014. Pp. 861—865.

2. Nilarun Mukharjee Non-replicated dynamic fragment allocation in distributed database systems // CCSIT 20 II, Part I. Berlin Heidelberg: Springer-Verlag, 2011. CCIS 131. Pp. 560—569.

3. Ceri S., Pelagatti G. Distributed databases: principles systems. McGraw-Hili Internat. Editions, 1985.

4. Horea-Adrian Grebla, Anca Gog Redesign based optimization for distributed databases // Studia univ. Babe._bolyai, informatica. 2005. Vol. 1. No. 1.

5. Agrawal S., Narasayya V., Yang B. Integrating vertical and horizontal partitioning into automated physical database design // Proc. 2004 ACM

SIGMOD Internat. Conf. Management of Data. 2004. Pp. 359-370.

6. Chu W.W. Optimal file allocation in multiple computer systems // IEEE Transaction on Computers. 1969. Vol. C-18. No. IO.

7. Ozsu M., Valduriez P. Principles of distributed database systems. 2nd ed. Prentice Hall, 1999.

8. Raju Kumar, Neena Gupta Non-redundant dynamic data allocation in distributed database systems // Special Issue of Internat. J. of Computer Applications, on Issues and Challenges in Networking, Intelligence and Computing Technologies. 2012. Pp. 6—10.

9. Singh A., Kahlon K.S. Non-replicated dynamic data allocation in distributed database systems // Internat. J. of Computer Science and Network Security. 2009. Vol. 9. No. 9.

10. Kumar R., Gupta N. Dynamic data allocation in distributed database systems: A systematic survey // Internat. Review on Computers and Softwares. 2013. Vol. 8. No. 2. Pp. 660—667.

11. Brunstroml A., Leutenegger S.T., Simhal R. Experimental evaluation of dynamic data allocation strategies in a distributed database with changing workload // ACM Trans. Database Systems. 1995.

12. Eswaran K.P. Placement of records in a file and file allocation in a computer network // Proc. IFIP Congr. North-Holland, 1974.

13. Ulus T., Uysal M. Heuristic approach to dynamic data allocation in distributed database systems // Pakistan J. of Information and Technology 2003. No. 2(3). Pp. 231—239.

14. Sarathy R., Shetty B., Sen A. A constrained nonlinear 0-1 program for data allocation // European J. Operational Research. 1997. Vol. 102. Pp. 626—647.

15. Hababeh I.O., Ramachandran M., Bowring N. A high-performance computing method for data

Статья поступила в редакцию 27.11.2018.

allocation in distributed database systems // J. Su-percomput. Springer, 2007. No. 39. Pp. 3—18.

16. Chiu G., Raghavendra C. A model for optimal database allocation in distributed computing systems // Proc. IEEE INFOCOM 1990. Vol. 3. Pp. 827—833.

17. Ram S., Narasimhan S. Database allocation in a distributed environment: Incorporating a concurrency control mechanism and queuing costs // Management Science. 1994. Vol. 40. No. 8. Pp. 969—983.

18. Huang Y., Chen J. Fragment allocation in distributed database design // J. Information Science and Eng. 2001. Vol. 17. Pp. 491—506.

19. Tamhankar A., Ram S. Database fragmentation and allocation: A integrated methodology and case study // IEEE Trans. Systems, Man and Cybernetics. 1998. Part A. Vol. 28. No. 3.

20. Wolfson O., Jajodia S., Huang Y. An adaptive data replication algorithm // ACM Trans. Database Systems. 1997. Vol. 22. No. 2. Pp. 255—314.

21. Zou L., Peng P. A survey of distributed RDF data management // Jisuanji Yanjiu Yu Fazhan/Computer Research and Development. 2017. No. 54(6). Pp. 1213—1224.

22. Eldawy A., Mokbel M.F. The era of big spatial data // 31st IEEE Internat. Conf. on Data Engineering Workshops. Seoul, 2015. Pp. 42—49.

23. Papastavrou Stavros, Chrysanthis Panos, Samaras George, Pitoura Evaggelia. An evaluation of the JAVA-BASED approaches to web database access // Internat. J. of Cooperative Information Systems. 2000. No. 10.

24. Jun-Lin Lin, Dunham M.H. A survey of distributed database check pointing // Distrib. Parallel Databases. 1997. Vol. 5. No. 3. Pp. 289—319.

REFERENCES

1. Kumar R., Gupta N. An extended approach to non-replicated dynamic fragment allocation in distributed database systems. IEEE International Conference on Issues and Challenges in Intelligent Computing Techniques, 2014, Pp. 861—865.

2. Nilarun Mukharjee Non-replicated dynamic fragment allocation in distributed database systems. CCSIT 20 II, Part I, Berlin Heidelberg: SpringerVerlag, 2011, CCIS 131, Pp. 560—569.

3. Ceri S., Pelagatti G. Distributed databases: principles systems. McGraw-Hili International Editions, 1985.

4. Horea-Adrian Grebla, Anca Gog Redesign based optimization for distributed databases.

Studia univ. Babe.bolyai, informatica. 2005, Vol. 1, No. 1.

5. Agrawal S., Narasayya V., Yang B. Integrating vertical and horizontal partitioning into automated physical database design. Proc. 2004 ACM SIGMOD International Conf. Management of Data, 2004, Pp. 359-370.

6. Chu W.W. Optimal file allocation in multiple computer systems. IEEE Transaction on Computers, 1969, Vol. C-18, No. IO.

7. Ozsu M., Valduriez P. Principles of distributed database systems. 2nd ed. Prentice Hall, 1999.

8. Raju Kumar, Neena Gupta Non-redundant dynamic data allocation in distributed database sys-

tems. Special Issue of International Journal of Computer Applications, on Issues and Challenges in Networking, Intelligence and Computing Technologies, Nov. 2012, Pp. 6-10.

9. Singh A., Kahlon K.S. Non-replicated dynamic data allocation in distributed database systems. International Journal of Computer Science and Network Security, 2009, Vol. 9, No. 9.

10. Kumar R., Gupta N. Dynamic data allocation in distributed database systems: A systematic survey. International Review on Computers and Softwares, 2013, Vol. 8, No. 2, Pp. 660-667.

11. Brunstroml A., Leutenegger S.T., Simhal R. Experimental evaluation of dynamic data allocation strategies in a distributed database with changing workload. ACM Trans. Database Systems, 1995.

12. Eswaran K.P. Placement of records in a file and file allocation in a computer network. Proc. IFIP Congr. North-Holland, 1974.

13. Ulus T., Uysal M. Heuristic approach to dynamic data allocation in distributed database systems. Pakistan Journal of Information and Technology, 2003, No. 2(3), Pp. 231-239.

14. Sarathy R., Shetty B., Sen A. A constrained nonlinear 0-1 program for data allocation. European J. Operational Research, 1997, Vol. 102, Pp. 626-647.

15. Hababeh I.O., Ramachandran M., Bowring N. A high-performance computing method for data allocation in distributed database systems. J. Super-comput. Springer, 2007, No. 39. Pp. 3-18.

16. Chiu G., Raghavendra C. A model for optimal database allocation in distributed computing

Received 27.11.2018.

systems. Proc. IEEE INFOCOM 1990, Vol. 3, Pp. 827—833.

17. Ram S., Narasimhan S. Database allocation in a distributed environment: Incorporating a concurrency control mechanism and queuing costs. Management Science, 1994, Vol. 40, No. 8, Pp. 969—983.

18. Huang Y., Chen J. Fragment allocation in distributed database design. J. Information Science and Eng., 2001, Vol. 17, Pp. 491—506.

19. Tamhankar A., Ram S. Database fragmentation and allocation: A integrated methodology and case study. IEEE Trans. Systems, Man and Cybernetics, 1998, Part A, Vol. 28, No. 3.

20. Wolfson O., Jajodia S., Huang Y. An adaptive data replication algorithm. ACM Trans. Database Systems, 1997, Vol. 22, No. 2, Pp. 255—314.

21. Zou L., Peng P. A survey of distributed RDF data management. Jisuanji Yanjiu Yu Fazhan/Computer Research and Development, 2017, No. 54(6), Pp. 1213—1224.

22. Eldawy A., Mokbel M.F. The era of big spatial data. 31st IEEE International Conference on Data Engineering Workshops, Seoul, 2015, Pp. 42—49.

23. Papastavrou Stavros, Chrysanthis Panos, Samaras George, Pitoura Evaggelia. An evaluation of the JAVA-BASED approaches to web database access. International Journal of Cooperative Information Systems, 2000, No. 10.

24. Jun-Lin Lin, Dunham M.H. A survey of distributed database check pointing. Distrib. Parallel Databases, 1997, Vol. 5, No. 3, Pp. 289—319.

СВЕДЕНИЯ ОБ АВТОРАХ / THE AUTHORS

ПОПОВ Сергей Геннадьевич POPOV Sergey G.

E-mail: popovserge@spbstu.ru

ФРИДМАН Виктор Сергеевич FRIDMAN Viktor S.

E-mail: esselllesse@gmail.

© Санкт-Петербургский политехнический университет Петра Великого, 2018