Научная статья на тему 'Задача оптимизации размещения данных в распределённых системах'

Задача оптимизации размещения данных в распределённых системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
475
70
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФРАГМЕНТАЦИЯ / FRAGMENTATION / РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / DISTRIBUTED SYSTEMS / NP-ПОЛНЫЕ ЗАДАЧИ / NP-COMPLETE PROBLEMS / ЗАДАЧА ОБ УПАКОВКЕ В КОНТЕЙНЕРЫ / ЛОКАЛЬНОСТЬ ХРАНЕНИЯ ДАННЫХ / DATA STORAGE LOCALITY / BIN-PACKING PROBLEMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Жипа А.В.

Эффективность работы распределённых вычислительных систем основывается на способе распределения потоков вычислительных задач и данных относительно ограниченного количества вычислительных ресурсов. Из-за постоянного увеличения объёма данных таким системам необходимо решать вопрос их хранения и обработки наиболее эффективным образом. Между тем современные распределённые вычислительные системы уделяют все больше внимания таким своим характеристикам, как распределение вычислительной нагрузки, построение эффективной структуры хранилища данных, а также оптимальное использование вычислительных мощностей. Оптимальное управление имеющимися у вычислительной системы ресурсами вынуждено балансировать между использованием ресурсов каждого отдельно взятого узла и потерей локальности хранения данных, связанной с их неизбежной фрагментацией. В данной статье мы сформируем задачу оптимизации размещения данных путём максимизации локальности их хранения, а также покажем, что данная задача является NP-полной. Далее мы рассмотрим полиномиальный по времени алгоритм, дающий результат, отличающийся от оптимального на фиксированную константу. Для доказательства эффективности предложенного алгоритма нами будет доказан ряд вспомогательных утверждений, а также подробно описана основная операция в работе алгоритма, за свою схожесть с процессом обмена участками хромосом в клетках названная кроссинговером.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Жипа А.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The Problem of Data Placement in Distributed Systems

Distributed system effectiveness depends dramatically on the way it manages incoming tasks and data against limited computational resources that are at its disposal. Due to ever-inreasing amount of incoming data distributed systems are required to efficiently manage the way its storage and processing are being made. Nowadays the distributed system design is significantly flounced by the manner it leverages high load scenarios, provides data storage functionality and uses the underlying resources. An effective distributed system’s resource management has to balance trade-offs between single node resource consumption and the overall loss of data locality, that is inevitable due to data fragmentation. In this article we will formalize the problem of data placement by maximizing data storage locality in distributed data systems, which as it turns out is a NP-complete task. We will later describe a polynomial-time algorithm that is capable of providing us a solution that is within an additive constant from the optimal one.

Текст научной работы на тему «Задача оптимизации размещения данных в распределённых системах»

УДК 004.75

Задача оптимизации размещения данных в распределённых

системах

А. В. Жипа

Кафедра информационных технологий Российский университет дружбы народов ул. Миклухо-Маклая, д. 6, Москва, Россия, 117198

Эффективность работы распределённых вычислительных систем основывается на способе распределения потоков вычислительных задач и данных относительно ограниченного количества вычислительных ресурсов. Из-за постоянного увеличения объёма данных таким системам необходимо решать вопрос их хранения и обработки наиболее эффективным образом.

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

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

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

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

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

Введение

За последние годы область исследований распределённых вычислительных систем глобального масштаба заметно увеличилась. Например, такие децентрализованные системы хранения данных, как OceanStore [1], CFS [2], PAST [3] и IVY [4], предоставляют возможность постоянного хранения данных, используя распределённые, гетерогенные системы хранения данных.

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

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

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

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

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

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

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

Как уже было отмечено, проблема потери локальности влияет как на системы хранения данных, так и на распределённые вычислительные системы. Так что, без потери общности, в данной статье мы рассмотрим задачу максимизации локальности хранения данных. Будет показано, что определение оптимального решения для данной проблемы — МР-полная задача. Далее мы рассмотрим алгоритм, который за полиномиальное время позволяет найти решение данной задачи, которое отличается от оптимального на константу 2. С другими вариантами постановки задач о размещениях можно ознакомиться в [5-8].

1. Постановка задачи максимизации локальности

хранения данных

Рассмотрим набор файлов Р = ^,... Рт) и набор узлов хранения данных N = (И 1, N2,... Nk) в некоторой распределённой вычислительной системе.

Введём следующую метрику |^|, обозначающую размер г-го файла, а также метрику |Nj|, обозначающую ёмкость j-го узла. Без потери общности предположим, что суммарный размер файлов равен общей ёмкости всех узлов распределённой вычислительной системы, т.е. ^= ^1.

г 3

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

Для любой компоновки К определим следующую функцию (Рг) = £(Рг), которая показывает количество узлов, в которых находятся фрагменты файла Аналогичным образом определим (Рг и ^), как количество узлов, в которых находятся фрагменты файлов Fi и ^.

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

ОРТ(Р,К) = шш тах (Рк),

где К — любая из всех возможных компоновок файлов Р и узлов N.

Утверждение 1. ОРТ(Р,М) — МР-полная задача.

Доказательство. Для доказательства данного утверждения рассмотрим одну из известных МР-полных задач об упаковке в контейнеры (УК) (см. [9], а также [10, С. 223]). А именно: имеется множество 5 положительных чисел 8\, 82,..., 8п с общей суммой равной 2а. Требуется выяснить существует ли подмножество 5 с суммой элементов, равной а?

Воспользуемся сводимостью по Карпу, которая формулируется следующим образом: задача разрешения Р\ полиномиально сводится (по Карпу) к задаче разрешения Р2, если существует полиномиально вычислимая функция f, перерабатывающая массивы входных данных С\ для задачи Р\ в массивы входных данных С2 = /(С) для задачи Р2 таким образом, что для любого С ответ в задаче Р\ совпадает с ответом задачи Р2 для входных данных / (С).

Следовательно, если мы сведём более узкую формулировку нашей задачи максимизации локальности хранения данных к указанной задаче об упаковке в контейнеры УК, мы тем самым докажем её МР-полноту.

Пусть нам требуется выяснить, верно ли выражение ОРТ(Р) = 1. Таким образом, при Р = {Р1,..., Рп], где | = 8к, 1 < к < п, и N = {Щ,М2}, где = |N21 = а, получаем, что ОРТ(Р) = 1 тогда и только тогда, когда ответ на УК утвердительный. □

1.1. Основные утверждения

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

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

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

> 1 > ... > |^го|, > > ... > К|.

Далее канонической будем называть такую компоновку К, для которой отсортированному набору узлов ставятся в соответствие отсортированный набор файлов. К примеру, на рис. 1, фрагменты файла Р\ находятся в узлах Ы\, Ы2. При этом, ёмкость узла N1 исчерпана полностью, тогда как остаток в узле N2 используется для хранения фрагмента файла Р2 и так далее.

Таким образом, файл Р\ «попадает» в узлы и Ы2 и, следовательно, ^(Р\) равно 2. Так как файлы Р\ и Р2 на двоих попадают в узлы N1, N2 и N3, то получаем, что £,(Р1 и Р2) равно 3.

* Ь Ь рт

I-1-1-1 ... I—I

14, N2 N3 N4 1Мк

)-1-1-1-1 ... н

Рис. 1. Каноническая компоновка

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

Определим величину ^(к) := Г^и Р2 и ... и ^)], где 1 < к < т, а также ^ := шахк ^(к), где £ = £к, а К — каноническая компоновка. Например, для рис. 1, получаем следующие значения: £(Р1) = 2, = 2, = 2, ^(1) = 2,

М2) = Г11 = 2, ^(3) = Г31 = 2.

Утверждение 2. ОРТ(Р, N) >

Доказательство. Докажем данное утверждение от противного, а именно, покажем, что ОРТ(Р,М) не может быть меньше ^, что в свою очередь делает ^ нижней границей решения поставленной задачи.

Предположим, что

ОРТ(Р,К) < р. (1)

Выберем такое к, что ^(к) = Г1 (^1 и ... и Рк)1 = Ц. Следовательно, к соответствует максимальному значению ¡1(1), которое равно ц.

Пусть £ = (Р1 и ... и Рк). Из определения ^ следует, что существует Fi, г ^ к, для которого

№) > V. (2)

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

Если мы изменим порядок узлов для первых к файлов, тем самым получив новую компоновку, неравенство (2) все ещё будет выполнятся, так как значение величины £(^1 и.. .и^) останется неизменным. Значит для новой компоновки нам необходимо разместить фрагменты первых к файлов по тем узлам канонической компоновки, где их фрагменты ещё не находятся. Но, так как N1,..., N^1 — Н — 1 узлов с самой большой ёмкостью, а, следовательно, никакой другой набор из Н — 1 узлов не в состоянии поместить данный набор файлов и ... и Рк.

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

Утверждение 3. Для канонической компоновки К

и (Л) +... + ы (Рк) < ы № и... и ^) + к — 1,

для 1 < к < т.

Доказательство. Между файлами ^ и 1 ^ г ^ к — 1 существует к — 1

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

Для произвольной компоновки К определим понятие отклонения йг для файла Fi таким образом, что ^ = £к(^¿) — 1^. Обозначим последовательность таких отклонений Р = (д,1,..., д>т).

Утверждение 4. Для канонической компоновки К, где 1 ^ к ^ т выполняется неравенство:

к

^ & < к — 1. (3)

Доказательство.

к

У^ ^ = ^^ №) — кц < (^1 и ... и ^) + к — 1 — кц (из Утверждения 3) =

г=1 г^к

) + к — 1 < ^ 1 ^ и ... и ^) — ^ + к — 1 <

= к[ 1 ^К ^ и ... и Рк) — И + к — 1 < к

< к — 1 (из определения ц).

Утверждение 5. Допустим, что для любой компоновки К, Р = ..., dm) удовлетворяет (3). Пусть Б' = (й1,й2,..., ..., йт) = (с^,..., с1'т-1) по-

лучается из Р путём удаления элемента ^ ^ 1. Тогда Р)' удовлетворяет (3).

Доказательство. Для к ^ у — 1 имеем ^ = ^ ^ ^ к — 1 из предположе-

г^к г^к

ния о Р.

Для к ^ ] имеем

^ ^ = ^ ^ + ^ ^ = ^ ^ + ^ ^ — Лз = ^ — Лз ^

< к — < к — 1

из предположения о Р. □

2. Пример решения задачи максимизации локальности

данных

Теперь мы перейдём к рассмотрению алгоритма, который даёт решение поставленной нами задачи, такое что для каждого файла Fi требуется не более ^ + 2 узла. Для этого нам понадобится описать процедуру, которую мы далее будем называть кроссинговер. Название выбрано из-за сходства операции с одноимённым биологическим процессом обмена хромосом у клеток.

Будем называть последовательность отклонений Р уменьшенной, если V ^ {1, 2}. Предположим, что для некоторых % < '}

= V — а, № ) = V + Ь, (4)

где а ^ 0,Ь ^ 3. Расположим ^ под Fi, как показано на рис. 2, и введём ось координат. Определим следующую функцию:

5(х) := аъ,х) — ,х),

где ^(Fj ,х) — количество узлов, в которых содержатся фрагменты файла Fj на (0, х] . При этом ¿(0) = 0.

Отметим, что функция 5(х) носит ступенчатый характер и изменяет своё значение ровно на 1 и только на границе между узлами. Так, если у файлов Fi и ^ есть общая граница в некоторой точке хо, то значение 5(х) не изменяется при прохождении точки хо.

Рис. 2. Определение функции 5(х)

Обратим также внимание на то, что S(|Fj|) ^ а + Ь. Это неравенство вытекает из первоначальных утверждений о том, что % < а значит, и ^ |Fj|. Таким образом, |^|) < ^ — а.

Пусть для некоторого значения с, 0 < с ^ а + Ь х0 — граница первого узла, для которого 5(х0) = с. Тогда кроссинговером будем называть следующую операцию: фрагменты файлов Fi и ^, заключённые в отрезке 0 ^ х ^ Жо, взаимозаменяются, как показано на рис. 3. В данном примере с = 2, а первым узлом, для которого Хо = 2 является . Следовательно участки от до заменятся на N1 и N2, вместе с частью узла N3, который теперь поделим между файлами Fi и ^.

14,

N.

N1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

[Мл N г

N |

1-г 1М1! N'2 N3 1 N4 1 N5 N6 N'7 -1-1 N'8 N'9

1 1 1 1 1 Хо 1 I

1М1! N'2 N3 N4 N3 N4 N5 N6

N1 1-г N2 N3 1 N'5 м6 1 N'7 -1—1

Рис. 3. Кроссинговер

Очевидно, что в результате выполнения операции кроссинговера изменяются значения и ). Зачастую Хо не является граничной точкой для а

значит,

№) = т) + с+1, №) = ) — с.

Однако если хо все же является граничной точкой для F^, то имеем

еш = №)+с, е(р3) = т)—с.

Так, в указанном примере Fi изначально попадает в 6 узлов, а ^ — в 9. После кроссинговера Fi и ^ попали в 8 узлов. Тем самым множество Р изменяется с (<1\,(12,... ... ,(1^,..., dm) на (с!\, (12,..., Лг + с + 1,... ,dj — с,.. .,йт).

Теперь вернёмся к описанию самого алгоритма. Для этого вновь рассмотрим некоторую каноническую компоновку К, для которой множество отклонений Р представляется как ..., ёт). Без потери общности допустим, что для Р выполняется условие (3), и оно также является уменьшенным.

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

Подставим к = 1 в неравенство (3), в результате чего получаем, что ^ 0. Следовательно, ] ^ 2, и мы имеем двух кандидатов, Fi и ^, для операции крос-синговера.

Используя те же обозначения, что ив (4), имеем й\ = —а, й^ = Ь,а ^ 0,Ь ^ 3. Рассмотрим два случая.

Случай I, Ь > а. Применяем операцию кроссинговера для и Р^, используя с = а+1 < а + Ь. Это приводит к Р' = (2,... ,Ь — а — 1,... йт), т.е. Л1 = 2, а ^ = Ь — а — 1. Исключая из Р' элемент Л1 = 2, получаем Р" = (й2,й3,..., ,<1^+1,..., которое является уменьшенным.

Случай II, Ь ^ а. Применяем операцию кроссинговера для Р\ и Р^, используя с = Ь — 2 < а + Ь. Это приводит к Р' = (Ь — а — 1,..., 2,... йт), которое удалением элемента ^ = 2 преобразуем к Р" = (Ь — а — 1,й2,й3,..., ..., <!т), также

являющимся уменьшенным.

Утверждение 6. Полученное множество Р" удовлетворяет (3).

Доказательство. Докажем данное утверждение сначала для случая I, когда

1 < к < з — 2, Р" = {<3ъ,..., Ь — а — 1,^+и...) = «, 4',...).

Так как по условию, ] — наименьший индекс, такой что й^ > 2, то ё2 ^ 0,... ,dj-l ^ 0. Из определения уменьшенной последовательности отклонений Р'' его элементы не могут быть равными 1 и 2, следовательно, ^ ^ 0 ^ к — 1.

Для к ^ у — 1 из (3) имеем:

j-l к j к+1 к+1 ^ < = ^ & + Ъ — а — 1 + ^ < = ^ к — 1+ ^ & = ^ (к — 1 < к — 1.

г^к 2 г=j г= 1 г=j+1 г= 1

Теперь, если Ь — а — 1 £ {1, 2}, то мы удаляем элемент й"—1 из Р" , получая при этом новую последовательность Р''', которая по Утверждению 5 также удовлетворяет (3).

Докажем теперь верность указанного утверждения для случая II.

Имеем Р" = (Ь — а — 1,d2,... ,dj-1 = (с1'{ ,$£,...). Так как Ь < а,

аналогично получаем д!{ ^ 0,..., dj-1 ^ 0, значит, для любого к ^ ] — 1

^ (!'( < 0 < к — 1.

г^к

Если к ^ ], то из (3) имеем

к -1 к+1 к+1

^ < = ^ А'! + ^ < = Ь — а — 1 + ^ & + ^ (к = ^ (к — 1 < к — 1.

г^к í^j-1 j г=2 г=j+1 г=1

Отметим, что из (3) ^ <11 ^ 0, а значит, предложенный алгоритм может продолжить свою работу, используя Р'', Р''', и так далее. На каждом своём новом шаге алгоритм будет уменьшать количество отклонений йг £ {1, 2}.

Таким образом, за не более чем т — 1 шаг данный алгоритм получит последовательность Р*, которая будет либо пустой, либо все её элементы ёг ^ 0. После чего алгоритм прекратит свою работу.

2.1. Оценка времени работы рассмотренного решения

Рассматриваемый в данной статье алгоритм состоит из двух частей. В первой части происходит сортировка множества файлов Р и узлов хранения данных распределённой вычислительной системы N для получения канонической компоновки К, которая занимает 0(п \og(n)) времени.

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

кроссинговера занимает не более т шагов, тогда как подсчёт разниц на границах узлов хранения данных занимает О(п).

Следовательно итоговое время работы рассмотренного алгоритма составляет

0(п(т + ^(п))).

3. Заключение

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

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

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

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

Литература

1. Oceanstore: An Architecture for Global-Scale Persistent Storage / J. Kubiatowicz, D. Bindel, Y. Chen et al. // ASPLOS-IX / ASPLOS. — New York, USA: ACM, 2000. — Pp. 190-201.

2. Wide-Area Cooperative Storage with CFS / F. Dabek, M. Kaashoek, D. Karger et al. // SOSP. — 2001. — Pp. 202-215.

3. Rowstron A., Druschel P. Storage Management and Caching in PAST, A Large-scale, Persistent Peer-to-peer Storage Utility // SOSP. — 2001. — Pp. 188-201.

4. Ivy: A Read/Write Peer-to-Peer File System / A. Muthitacharoen, R. Morris, T. M. Gil, B. Chen // SOSDI / Ed. by D. E. Culler, P. Druschel. — USENIX Association, 2002.

5. Coffman E. G. J., Garey M. R., Johnson D. S. Approximation Algorithms for NP-hard Problems. — Boston, USA: PWS Publications, 1996. — Pp. 46-96.

6. Coffman E. G. J., Lueker G. Approximation Algorithms for Extensible Bin-Packing // Journal of Scheduling. — Vol. 9. — Hingham, MA, USA: Kluwer Academic Publishers, 2006. — Pp. 63-69.

7. Perfect Packing Theorems and the Average-Case Behavior of Optimal and Online Bin Packing / E. G. J. Coffman, C. Courcoubetis, M. R. Garey et al. // J. Discrete Math. — 2000. — Vol. 13, No 3. — Pp. 384-402.

8. Seiden S. S. On the Online Bin Packing Problem // Journal of the ACM. — 2002. — Vol. 49, No 5. — Pp. 640-671.

9. Karp R. M. Reducibility Among Combinatorial Problems // SOSP. — The IBM Research Symposia Series. — Plenum Press, New York, 1972. — Pp. 85-103.

10. Garey M. R., Johnson D. S. Complexity Results for Multiprocessor Scheduling under Resource Constraints // SIAM Journal on Computing. — 1975. — Vol. 4, No 4. — Pp. 397-411.

UDC 004.75

The Problem of Data Placement in Distributed Systems

A. V. Zhipa

Department of Information Technology Peoples' Friendship University of Russia 6, Miklukho-Maklaya str., Moscow, Russia, 117198

Distributed system effectiveness depends dramatically on the way it manages incoming tasks and data against limited computational resources that are at its disposal. Due to ever-inreasing amount of incoming data distributed systems are required to efficiently manage the way its storage and processing are being made.

Nowadays the distributed system design is significantly flounced by the manner it leverages high load scenarios, provides data storage functionality and uses the underlying resources.

An effective distributed system's resource management has to balance trade-offs between single node resource consumption and the overall loss of data locality, that is inevitable due to data fragmentation.

In this article we will formalize the problem of data placement by maximizing data storage locality in distributed data systems, which as it turns out is a NP-complete task. We will later describe a polynomial-time algorithm that is capable of providing us a solution that is within an additive constant from the optimal one.

Key words and phrases: fragmentation, distributed systems, NP-complete problems, bin-packing problems, data storage locality.

References

1. J. Kubiatowicz, D. Bindel, Y. Chen, P. Eaton, D. Geels, R. Gummadi, S. Rhea, H. Weatherspoon, W. Weimer, C. Wells, B. Zhao, Oceanstore: An Architecture for Global-Scale Persistent Storage, in: ASPLOS-IX, ASPLOS, ACM, New York, USA, 2000, pp. 190-201.

2. F. Dabek, M. Kaashoek, D. Karger, R. Morris, I. Stoica, Wide-Area Cooperative Storage with CFS, in: SOSP, 2001, pp. 202-215.

3. A. Rowstron, P. Druschel, Storage Management and Caching in PAST, A Large-scale, Persistent Peer-to-peer Storage Utility, in: SOSP, 2001, pp. 188-201.

4. A. Muthitacharoen, R. Morris, T. M. Gil, B. Chen, Ivy: A Read/Write Peer-to-Peer File System, in: D. E. Culler, P. Druschel (Eds.), SOSDI, USENIX Association, 2002.

5. E. G. J. Coffman, M. R. Garey, D. S. Johnson, Approximation Algorithms for NP-hard Problems, PWS Publications, Boston, USA, 1996, Ch. Approximation algorithms for bin packing — a survey, pp. 46-96.

6. E. G. J. Coffman, G. Lueker, Approximation Algorithms for Extensible Bin-Packing, in: Journal of Scheduling, Vol. 9, Kluwer Academic Publishers, Hingham, MA, USA, 2006, pp. 63-69.

7. E. G. J. Coffman, C. Courcoubetis, M. R. Garey, D. S. Johnson, P. W. Shor, R. R. Weber, M. Yannakakis, Perfect Packing Theorems and the Average-Case Behavior of Optimal and Online Bin Packing, J. Discrete Math. 13 (3) (2000) 384-402.

8. S. S. Seiden, On the Online Bin Packing Problem, Journal of the ACM 49 (5) (2002) 640-671.

9. R. M. Karp, Reducibility Among Combinatorial Problems, in: SOSP, The IBM Research Symposia Series, Plenum Press, New York, 1972, pp. 85-103.

10. M. R. Garey, D. S. Johnson, Complexity Results for Multiprocessor Scheduling under Resource Constraints, SIAM Journal on Computing 4 (4) (1975) 397-411.

i Надоели баннеры? Вы всегда можете отключить рекламу.