УДК 519.6
О МЕТОДЕ ПОСТРОЕНИЯ АДАПТИВНОГО АГРЕГИРОВАННОГО АЛГОРИТМА КЭШИРОВАНИЯ
А.В. Бурилин, ст. преподаватель; Н.А. Шефова, к.ф.-м.н., ст. преподаватель;
Р.Н. Гордеев, к.ф.-м.н., доцент (Тверской государственный университет, ул. Желябова, 33, г. Тверь, 170100, Россия, [email protected], [email protected])
Рассматриваются проблемы построения алгоритмов кэширования данных применительно к архитектуре клиент-сервер. На сегодняшний день проблема построения алгоритмов кэширования весьма актуальна, предложено достаточно много их реализаций, однако поле для исследований остается. Особенно актуальным является построение адаптивных алгоритмов кэширования. Авторы предлагают адаптировать алгоритмы путем ввода в агрегированную модель алгоритма кэширования дополнительного управляющего параметра, отвечающего за степень влияния агрегируемых алгоритмов.
Ключевые слова: архитектура клиент-сервер, кэширование, агрегирование, свертка, кэш-память.
A METHOD OF CONSTRUCTING AN AGGREGATE ADAPTIVE CACHING ALGORITHM Burilin A. V., Senior Lecturer; Shefova N.A., Ph.D., Senior Lecturer; Gordeev R.N., Ph.D., Associate Professor (Tver State University, 33, Zhelyabova St., Tver, 170100, Russia, [email protected], [email protected])
Abstract. The paper is focused on the problem of data caching in the client-server architecture. Today the problem of constructing caching algorithms is very relevant and a lot of implementations are proposed, but there is a field for further research. The construction of adaptive caching algorithms is especially important. In this paper we generalize adaptive algorithms by adding a control parameter in an aggregate model of the caching algorithm that is responsible for the degree of influence of aggregation algorithms.
Keywords: client-server architecture, caching, aggregation, convolution, the cache memory.
Построение распределенных информационных систем, работающих с БД, обусловливает необходимость широкого использования архитектуры клиент-сервер. Ее основу составляют принципы организации взаимодействия клиента и сервера при управлении БД.
Согласно эталонной модели архитектуры открытых систем OSI функция управления БД относится к прикладному уровню.
СУБД как программа, поддерживающая интерфейс с пользователем, реализует следующие основные функции: управление данными, находящимися в базе, обработка информации с помощью прикладных программ, представление информации в удобном для пользователя виде.
При размещении СУБД в сети возможны различные варианты распределения функций по узлам сети. В зависимости от числа узлов сети, между которыми выполняется распределение функций СУБД, можно выделить двухзвенные и трехзвенные модели. Место разрыва функций соединяется коммуникационными элементами (средой передачи информации в сети).
Двухзвенные модели соответствуют распределению функций СУБД между двумя узлами сети. Компьютер (узел сети), на котором обязательно присутствует функция управления данными, называют компьютером-сервером. Компьютер, близкий к пользователю и обязательно представляющий информациию, называют компьютером-клиентом [1].
Наиболее типичными вариантами разделения функций между компьютером-сервером и компьютером-клиентом являются следующие:
1) распределенное представление: компьютер-сервер - управление данными, обработка, представление; компьютер-клиент - представление;
2) удаленное представление: компьютер-сервер - управление данными, обработка; компьютер-клиент - представление;
3) распределенная функция: компьютер-сервер - управление данными, обработка; компьютер-клиент - обработка, представление;
4) удаленный доступ к данным: компьютер-сервер - управление данными; компьютер-клиент - обработка, представление;
5) распределенная БД: компьютер-сервер -управление данными; компьютер-клиент - управление данными, обработка, представление.
Перечисленные способы распределения функций в системах с архитектурой клиент-сервер иллюстрируют различные варианты: от мощного сервера, когда практически вся работа производится на нем, до мощного клиента, когда большая часть функций выполняется на рабочей станции, а сервер обрабатывает поступившие к нему по сети SQL-вызовы. В отношении использования систем кэширования рассмотренные пять вариантов реализации двухзвенной модели архитектуры клиент-сервер далеко не равноценны. Первые две реализации практически полностью моделируются файл-серверной архитектурой в сочетании с терминальной системой. Отличительной особенностью клиент-серверных реализаций является поддержка многопользовательского режима внутри одного экземпляра СУБД на сервере, а не репликация полной СУБД на сервере для каждого кли-
ента, как это делается с помощью терминальной системы. Следствием этого являются более рациональное использование ресурсов сервера и, следовательно, повышение эффективности кэш-систем.
В следующих трех вариантах реализации двух-звенной модели клиент-сервер частично или полностью обработка выполняется на клиенте. В этом случае можно установить кэш-систему и на клиенте. Перенос обработки на сторону клиента повышает параллелизм в обработке информации, разделяя обработку между клиентом и сервером. Это приводит к сокращению времени обработки. Увеличение роли компьютера-клиента в обработке информации (четвертый и пятый варианты реализации двухзвенной модели) может привести и к увеличению сетевого трафика, что является фактором, уменьшающим общую скорость работы системы обработки и хранения информации. В этом случае эффективным решением, повышающим скорость обработки, является установка кэш-системы на клиенте, что приводит к распределенной БД. Недостатком такого решения, кроме усложнения клиентского приложения, является усложнение системы синхронизации центральной БД с репликациями на клиентах.
Таким образом, проблемы кэширования весьма актуальны и их решения находят свое практическое применение в архитектуре современных информационных систем.
Математическая модель алгоритма кэширования
Следуя [2], сформулируем математическую модель алгоритма кэширования. Для этого введем следующие понятия:
- множество объектов системы N={1, 2, ...,
- множество адресов кэш-памяти М={1, 2, ...,
т};
- поток запросов (трасса) на доступ к объектам ю=(гь г2, ..., г, ..., гТ), где г(ЕЫ - объект, запрошенный от кэш-системы в момент времени
- множество подмножеств множества объектов Ы, которые могут быть расположены в кэшпамяти М: От={£ | л | £ |<т}.
Большинство алгоритмов кэширования для объектов, находящихся в кэш-памяти М, явно или неявно поддерживают некоторый рейтинг объектов. Данный рейтинг служит основанием для принятия решения об исключении некоторого объекта из кэш-памяти при кэш-промахе. В процессе работы кэш-системы по некоторым законам изменяется и рейтинг объектов в кэше. Упорядоченную последовательность рейтингов в совокупности с некоторой дополнительной информацией об объектах из кэша будем называть вектором состояния управления алгоритма кэш-памяти, или просто со-
стоянием управления (control state). Примером рейтинга объектов из кэша может быть частота появления в запросах соответствующего объекта. Чтобы алгоритм кэширования начал работу, вектор состояния управления должен быть проини-циализирован.
Обозначим через q0 начальное значение вектора состояния управления, через Q - множество состояний управления (set of control states).
Определение 1. Алгоритмом кэширования будем называть упорядоченную тройку A=(Q, q0, g), где Q - множество состояний управления; q0eQ -начальное состояние управления; g - отображение перехода, обеспечивающее по состоянию кэшпамяти, состоянию управления и запрошенному объекту получение нового состояния кэш-памяти, содержащего запрошенный объект, и нового состояния управления. В этом случае g - есть отображение вида
g: QmxQxN^QmxQ;
(S, q), x e S;
(S u {x}, q), x g Sл | S |< m;
g(S, q, x) = -j ((S u{x})\{y}, q),
(x g S) л (| S |= m) л (y e S) л л( y = d (S, q)),
d: QmxQ^N.
Пара (S, q) в модели алгоритма кэширования называется конфигурацией алгоритма. Тогда d -отображение из конфигурации во множество объектов, позволяющее однозначно найти удаляемый из кэш-памяти объект (жертву) в случае кэш-промаха и заполненной кэш-памяти.
Агрегированный алгоритм кэширования
Рассмотрим построение математической модели агрегированного алгоритма на примере агрегирования двух базовых алгоритмов. Использование в модели только двух базовых алгоритмов не уменьшает общности решаемой задачи, и получить агрегированную модель более чем двух базовых алгоритмов несложно.
Пусть имеется информационная система, объекты которой образуют множество N: N={1, 2, ..., n). В системе имеется кэш-система с множеством М адресов кэш-памяти: М={1, 2, ..., m).
Кэш-система находится под воздействием потока запросов к объектам: ю=(гь r2, ..., rt, ..., rT), где rt - объект, запрошенный у кэш-системы в момент времени t.
Обозначим через Qm множество подмножеств множества N объектов системы, которые могут быть расположены в кэш-памяти М: Qm={S | SQN л | S |<m}.
Пусть кэш-система при решении задачи о выборе жертвы может использовать два базовых алгоритма кэширования А1 и А2: ^1=(Q1, q10, g1),
А2=(02, ?2о, £г), где Q1, 02 - множества состояний управления алгоритмов А1 и А2; q10, q20 - начальные состояния управления алгоритмов А1 и А2; g1, g2 - отображения перехода алгоритмов А] и А2, которые по состоянию кэш-памяти и соответствующим состояниям управления q1 и q2 позволяют получить новое состояние кэш-памяти и новое состояние управления qп и q21 соответственно для алгоритмов А1 иА2:
- отображение выбора жертвы по А1:
(5, <п), х е 5;
(5и{х},<п), х £ 5л | 5 |< т;
ё (5, ъ, х) = | ((5 и {х})\{у}, <п), (1)
(х £ 5) л (| 5 |= т) л (у е 5) л л( у = 4(5, <21)),
- отображение выбора жертвы по А2:
g2: ОтХе2ХЖ^ОтХе2,
(5, <21), х е 5;
(5 и{х},<21), х £ 5л 15 |< т;
ё (5, <2, х) = | ((5 и{х})\{у}, <21), (2)
(х £ 5) л (| 5 |= т) л (у е 5) л л( у = ^(5, <2)),
Агрегированным алгоритмом А базовых алгоритмов А1 и А2 будем называть упорядоченное множество А=(0Ь 02, q10, q20, g), где g - отображение перехода агрегированного алгоритма; g1: ОтХе1Х02ХЖ^ОтХе1хе2.
При этом (Я q11, q2l)=g(S, q1, q2, х);
(5, <11, <21), х е 5;
(5и{х},<п,), х £ 5л 151< т;
ё(5,<1,<2,х) =<! ((5и{х})\{у},^ц,<21),
(х £ 5) л (| 51= т) л (у е 5) л л( у = Я(5, <1, <2)), где х - объект, запрошенный у кэш-системы в момент /; £ - состояние кэш-памяти в момент /; 51 -состояние кэш-памяти в момент времени 1; qi -состояние управления алгоритма А, в момент /; qI■1 - состояние управления алгоритма А, в момент + 1; Я - отображение выбора жертвы: Я: О^^х
Отображение Я по состоянию кэш-памяти и состояниям управления q1 и q2 алгоритмов А1 и А2 позволяет выбрать объект-жертву у из состояния кэш-памяти 5.
Из данной модели видно, что основная проблема агрегирования заключается в выборе отображения Я, которое обеспечивает выбор жертвы, опираясь на состояния управления q1 и q2 базовых алгоритмов А 1 и А 2.
Понятно, что аналогичным образом можно получить свертки трех и более базовых алгоритмов.
Адаптивный агрегированный алгоритм кэширования
Рассмотрим проблему управления степенью влияния каждого из алгоритмов, участвующих в формировании свертки. Для этого введем понятие нормированного управления степенью влияния алгоритмов А1 и А2.
Пусть безразмерная переменная Xe[0, 1] отображает степень влияния алгоритмов A1 и A2 на принятие решения о выборе жертвы отображением R. Переменную X будем называть параметром управления степенью влияния алгоритмов А1 и А2.
Если единичный отрезок [0, 1] обозначить через I, I=[0, 1], тогда R примет вид R: Q,mxQ1x xß2xI—N, y=R(S, q1, q2, X).
Пусть при этом R обладает следующими свойствами: R(S, q1, q2, 0)=d2(S, q2), R(S, q1, q2, l)=di(S, qi), где d1 и d2 - отображения (1) и (2).
В этом случае отображение перехода для свертки A базовых алгоритмов A l и A 2 имеет вид gi: QmXQiX Q2xIxN—QmxQixQ2.
Тогда (S1, q11, q21)=g(S, q1, q2, X, x), где X - значение параметра управления степенью влияния алгоритмов A1 и A2 в момент времени t: (S,qn,q21), x e S; (Su{x},qu,g21), x £ Sл | S |< да;
g(S,<i,<2,k,x) = j ((Su{x})\{y},qn,q2i),
(x £ S) л (| S |= да) л (y e S) л л( y = R(S, <i, <2, k)).
Очевидно, что свертка A с функцией перехода g(S, q1, q1, X, x) обобщает такие известные алгоритмы кэширования, как LRFU и ARC [3-5].
В работе предложены модели агрегированного алгоритма и адаптивного агрегированного алгоритма, которые позволяют получать свертки любого количества произвольных алгоритмов кэширования.
Разработанная математическая модель, полученная методом стохастического агрегирования, является формализованной основой для создания новых алгоритмов кэширования и изучения их свойств. Так, остается вопрос дальнейшего исследования влияния параметра X на полученные виды алгоритмов кэширования и их свойства. Предметом дальнейших исследований может стать и проблема рандомизации свертки путем введения функции распределения значений параметра X и изучения свойств полученных в результате агрегатов.
Литература
1. Подвальный С.Л., Сергеева Т.И., Гранков М.В. Базы данных: модели данных, SQL, проектирование: Учеб. пособие. Р-н-Д: Издат. центр ДГТУ, 2007. 202 с.
2. Aho A.V., Denning P.J. and Ullman J.D., J. ACM, 1971, Vol. 18, no. 1.
3. Lee D., Choi D., Kim J.-H., Noh S.H., Min S.L., Cho Y., Kim C.S., IEEE Trans. Computers, 2001, Vol. 50, no. 12.
4. Megiddo N., Modha D.S., IEEE Computer, 2004, Vol. 37, no. 4, pp. 58-65.
5. Megiddo N. and Modha D.S., Simple Adaptive Cache Outperforms LRU, 2003, IBM Research Report, Computer Science.
References
1. Podvalny S.L., Sergeeva T.I., Grankov M.V., Databases, Data Models, SQL, Design, Rostov-on-Don, Donetsk State Tech. Univ., 2007, 202 p.
2. Aho A.V., Denning P.J. and Ullman J.D., J. ACM, 1971, Vol. 18, no. 1.
3. Lee D., Choi D., Kim J.-H., Noh S.H., Min S.L., Cho Y., Kim C.S., IEEE Trans. Computers, 2001, Vol. 50, no. 12.
4. Megiddo N., Modha D.S., IEEE Computer, 2004, Vol. 37, no. 4, pp. 58-65.
5. Megiddo N. and Modha D.S., Simple Adaptive Cache Outperforms LRU, 2003, IBM Research Report, Computer Science.
УДК 621.311:658
АЛГОРИТМ КОМПЛЕКСНОЙ ОПТИМИЗАЦИИ РЕЖИМОВ ЭЛЕКТРОЭНЕРГЕТИЧЕСКОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ ОБОБЩЕННЫХ КРИТЕРИЕВ ПОДОБИЯ
В.П. Кавченков, д.т.н., профессор; Р.В. Солопов, ст. преподаватель (Смоленский филиал Национального исследовательского университета МЭИ, Энергетический проезд, 1, г. Смоленск, 214013, Россия, [email protected], [email protected])
Предлагается алгоритм комплексной оптимизации режимов электроэнергетической системы с использованием метода критериального программирования. Разработанная методика основана на методах теории подобия, критериального анализа и геометрического программирования, она позволяет оптимизировать целевую функцию, представленную в виде миксиномов, степенью сложности больше единицы, с учетом ограничений, представленных в виде равенств и неравенств. Указанные достоинства дают возможность производить комплексную оптимизацию системы по всем параметрам режима: напряжению, активной и реактивной мощности, потерям электроэнергии - одновременно с учетом всех электротехнических законов. Предложенная методика критериального программирования использовалась для оптимизации перетоков реактивной мощности в сетях 110 кВ ОАО «МРСК Центра» - «Смоленск-энерго» с целью уменьшения потерь активной мощности, а также для комплексной оптимизации режимов неоднородной сложнозамкнутой электрической сети 110/330 кВ.
Ключевые слова: оптимизация, критериальное программирование, электроэнергетические системы, потери электроэнергии, технико-экономические задачи.
AN ALGORITHM OF COMPLEX POWER SYSTEM OPTIMIZATION WITH THE USE OF GENERALIZED SIMILARITY CRITERIA Kavchenkov V.P., Ph.D., Professor; Solopov R V., Senior Lecturer (Smolensk Branch of the Moscow Power Engineering Institute, 1, Energeticheskyproezd, Smolensk, 214013, Russia, [email protected], [email protected])
Abstract. In this article we propose an algorithm of power system optimization using criteria-based programming. This method is based on the theory of similarity, criteria-based analysis and geometric programming. It makes possible to optimize the efficiency function (consists of arbitrary polynomials with the degree of complexity more than one) with the limitations in the form of equations and inequalities. These advantages allow to optimize the power system modes by different characteristics (voltage, active and reactive power, power loss) with the account of all electrical laws. This method of the criteria-based programming was used for optimization of reactive power flows in the 110 kV power system of «IDGC of Center» - «Smolenskenergo» to reduce active power losses and for optimization of complex heterogeneous 110/330 kV power system.
Keywords: optimization, criteria-based programming, power systems, power losses, technical and economic problems.
В современных рыночных условиях для обеспечения надежности и эффективности функционирования электроэнергетической системы России необходимо оптимальное управление режимами ее работы.
Особенность электроэнергетической отрасли -большое количество оптимизируемых параметров, которые значительно усложняют решение задачи технико-экономической оптимизации на стадиях проектирования, реконструкции и эксплуатации: выбор структуры, параметров и схем электрических соединений электростанций, расчет устано-
вившихся режимов, переходных процессов и устойчивости электроэнергетических систем, разработка методов контроля и анализа качества электроэнергии и мер по его обеспечению.
Для решения таких задач предлагается использовать методику критериального программирования, разработанную на кафедре электроэнергетических систем филиала МЭИ в г. Смоленске [1].
В критериальном программировании критерии подобия [2] играют роль особых переменных, с помощью которых исходная задача оптимизации решается в два основных этапа: