УДК 004.7
АКТУАЛИЗАЦИЯ МЕЖМОДУЛЬНЫХ ВЗАИМОДЕЙСТВИЙ НА ОСНОВЕ ОБРАБОТКИ МУЛЬТИВЕРСИОННЫХ ЭЛЕМЕНТОВ ДАННЫХ
О.Я. Кравец, Г.И. Шахворостов, А.В. Ачкасов
Создано аналитическое представление метода кэширования на основе использованием временных меток, обеспечивающее своевременную актуализацию кэшированных данных при клиент-серверной обработке путем вычисления минимальных временных меток. Разработаны алгоритмы обработки операций с данными клиент-серверных приложений, обеспечивающие обработку мультиверсионных элементов данных
Ключевые слова: кэширование, временные метки, мультиверсионные элементы, база данных
Введение
Разработка и последующее использование специализированных информационных и корпоративных систем сталкиваются с множеством проблем, среди которых: повышение производительности; оптимизация обработки данных между клиентской и серверной частями; обеспечение оптимальной обработки и управления транзакциями.
Не все проблемы данной области являются изученными и решенными в полной мере [1, 2]. В частности, недостаточно исследованы вопросы разрешения конфликтов между операциями; применения кэшированных данных в историях транзакций; сериализуемости транзакций в рамках применения кэшированных данных.
1. Формальное описание объектно-ориентированного метода, реализующего процесс использования кэшированных данных
Предложено формальное описание процесса работы метода кэширования 8 . Для этого метод кэширования 8 был представлен как некоторый метод сервиса, реализующий вызов операций чтения и записи. Также был определен вызов соответствующего метода 8й (2)
(где 2 представляет некоторую совокупность аргументов, а й - номер соответствующего метода). При необходимости осуществить вызов метода 8й (2) реализуется проверка наличия ключа кэша (8, й, г) в хранилище.
Для эффективной работы метода кэширования в составе планировщика были определены основные элементы взаимодействия:
- уникальные идентификаторы (/, к) для кэшированных вызовов метода 8;
Кравец Олег Яковлевич - ВГТУ, д-р техн. наук, профессор, e-mail: [email protected]
Шахворостов Георгий Ильич - РАНХиГС, канд. техн. наук, доцент, e-mail: [email protected]
Ачкасов Александр Владимирович - ВГТУ, канд. техн. наук, докторант, e-mail: [email protected]
- списки Ь{ , S^;
- таблица М для поддержки согласованного выполнения и упорядочивания транзакций для постоянного обновления кэширо-ванных данных.
С использованием теории транзакций было описано и разработано транзакционное представление метода кэширования. Был определен инструмент применения кэшированных данных в последовательности транзакций. В качестве такого инструмента был использован метод операций / , который является методом некоторых операций чтения или записи, которые используются методом для получения кэ-шированных данных. Данный метод / отражает порядок использования кэшированных результатов метода 8 в рамках формального описания истории транзакций.
Предложено [3, 4] описание метода операций в некоторой последовательности операций, представляющей историю транзакций:
Д = Г4[ ж4[ х\1щ[ х]1/ Гз5[х]1з, (1)
где г[х] - операция чтения; м>[х] - операция записи; х,у - элементы данных; 1 - параметр, характеризующий выполненную транзакцию.
В составе истории Д операция гз4[х] является операцией чтения. Индекс 4 представляет собой идентификатор вызова метода, от имени которого была сделана операция чтения. Вызов метода разъясняет, что для двух элементов данных существует ряд операций чтения с
тем же индексом, а именно гз4[у] и гз4[х]. После вызова метода с индексом 4 транзакцией Тз считываются только данные, а результат может быть кэширован.
История Д содержит метод (рис. 1). Метод операции 4 отражает доступ к кэши-рованным результатам метода в транзакции Т3.
,1,4
Индекс 3 указывает, что метод Щ принадлежит транзакции Т3. Кроме того, индекс транзакции Т3 определяет результат кэширования метода, к которому он относится. Следовательно, результат был произведен по операциям г14 [у] и
Г4 [х], транзакции Т1. Таким образом, число 1
,1,4
верхнего индекса ¡1 относится к транзакции Т1 , а число 4 определяет вызов метода с индексом 4.
Рис. 1. Связь метода операций в истории транзакций Д
В контексте истории транзакций и метода операций проведено описание возникновения возможных конфликтов. Две операции и,V. е Д
конфликтуют друг с другом щ С V ., если
й(и1))фл(т фт] а(а(щ) = ^а(у]) = м>))
v (а(щ) = w а a(yj) = ¡¡) v (а(щ) = ¡1 а a(yj) = w)
Очевидно, что элементы данных, которые
1 к I
вызывают конфликты в отношении 1' , являются операциями вида г1к [...]. Рассмотрим историю метода кэширования Д (рис. 2). Предположим, что история Д содержит следующие
конфликты: г14 [х] С w2 [х], w2 [х] С г35 [х],
1 С W2[x].
Исходя из определения ^ [х])=d(wl[х])={х)Л) = {х| $1[х]еД}, (3) которое утверждает, что конфликты внутри одной транзакции Т возможны, если одна из
конфликтующих операций является операцией записи, а другая - методом операции. На рис. 2
представлена история Д2 = r1l[x']11w2[x]¡;í 12, отражающая конфликты.
Рис. 2. Графическое представление конфликтующих операций в истории транзакций
Дг
Запись конфликта w2[x] С ¡¡г можно объ-
1,1
яснить тем, что ¡12 относится к значению элемента х, которое было прочтено перед выполне-
нием w2[x].
Получено определение истории метода кэширования. История метода кэширования Д является историей, если выполняется условие
"р, д е Д: р С Ч ^ Р < Ч V д < р. (4) Данное условие гласит, что между любыми операциями р и д принадлежащими некоторой истории Д, могут возникать конфликты.
Определена сериализуемость мультивер-сионных историй метода кэширования с помощью функции М¥. Пусть функция М¥ создает множество мультиверсионных историй Д1,Д2,Д3,...,Дп, а также отражает все конфликты, которые существуют для некоторой истории Д .
В качестве примера рассмотрим историю Д1 , которая переходит в следующую мульти-версионную историю с применением метода операций:
МЩ) =rl4[Уo]rl4[Xo]1lw2[x2]12¡1l4rз1[y0>ъ1[x0]rз5[x2]/1. (5)
Рис. 3. Графическое представление муль-тиверсионной истории МУ(Д1) и метода операций ¡
Метод операции ¡,4 отображается на операции чтения г3: [ х0 ] г31 [ у0 ], так как он, по существу, обращается к той же версии х и у, как операция чтения, к которой относится история
Д (а именно г14[ х] г14[ у]).
Так определяется история кэш метода Д , которая может быть сериализуема тогда и только тогда, когда граф мультиверсионной сериализуемости МУ(Д) ацикличен для версии записи.
Предложено и проведено описание процесса использования кэшированных результатов метода, основанного на временных метках времени, заключающегося в ликвидации образования обратных дуг в мультиверсионном се-риализованном графе. Для этого необходимо компенсировать обратные дуги нормальными дугами графа. В результате чего будет образован обычный сериализуемый ориентированный граф. Однако в процессе сериализуемости графа часто возникают ситуации, направленные на образование обратных дуг, что является пре-
пятствием для компонента программного обеспечения, который отвечает за планирование операций. В результате чего компонент программного обеспечения должен отказаться от значения метода / и незамедлительно прервать транзакцию Т.
Для того, чтобы избавиться от вышеуказанного недостатка, была определена новая функция т * (Т). Основное ее назначение заключается в вычислении минимальных меток времени для тех транзакций, которые могут быть образованы от транзакции Т, пути которых состоят из обратных дуг. Нахождение таких минимальных временных меток основано на порядке выполнения операций метода / и может быть выполнено некоторым компонентом специального программного обеспечения, реализованного в виде планировщика транзакций. Таким образом, вычисление функции т * (Т ) позволит реализовать сериализован-ный граф.
Вычисление функции т * (Ti) реализуется следующим образом:
т*(Т) = шт({т(Т)} и
{т*(Т) | ''Г [х] е Д: (6)
(г' [х] < ^[х] Л т(Т.) < т(Т) л1 е Д}).
Таким образом, осуществлены:
- формализация описания сериализуе-мости транзакций, обеспечивающая унифицированное представление процесса управления транзакциями, отличающаяся использованием ациклического для версии записи графа муль-тиверсионной сериализуемости;
- аналитическое представление метода кэширования, отличающееся использованием временных меток, обеспечивающее своевременную актуализацию кэшированных данных при клиент-серверной обработке путем вычисления минимальных временных меток.
2. Алгоритмизация процесса функционирования компонентного состава специального математического обеспечения управления транзакциями
Особенностью специального программного обеспечения является [4, 5] организация обмена данными и взаимодействия между компонентами, представленными в виде планировщика и менеджера транзакций. Используя последовательность версий, планировщик обязан знать, какую версию ему необходимо использовать. В результате возникает необходимость в планировании операций чтения и записи.
Следовательно, возникает необходимость в мультиверсионном плане, который представляет определенную совокупность частично упорядоченного множества операций чтения и записи.
Особенность алгоритма компонентного управления транзакциями заключается в том, что инициированные транзакции Тз, Т2, Т3,..., Тп
обрабатываются менеджером транзакций, который выполняет предварительную обработку и преобразование транзакций. В процессе обработки происходит преобразование основных команд транзакций в запросы к планировщику. После получения запроса от менеджера транзакций планировщик реализует упорядочивание транзакций в соответствии с заложенными алгоритмами обработки транзакционных операций. В таком порядке происходит обработка и выполнение транзакции, которая представляет последовательность действий по обработке данных в СУБД.
В составе планировщика использован созданный алгоритм планирования управления транзакциями, использующий временные метки. Используя временные метки, планировщик реализует сериализуемую последовательность операций в транзакции Т. В результате выполнения в составе специального программного обеспечения управления транзакциями минимизируется количество прерванных транзакций.
Разработан и применен алгоритм кэширования соединений с СУБД на основе технологии Б1Б и драйвера ГОБС (рис. 4). Процесс управления пулом соединений с СУБД имеет следующие этапы и особенности.
На первом этапе (блок 1) компонент приложения устанавливает соединение с СУБД, когда это реально необходимо. Например, установка соединения реализуется тогда, когда происходят вызов и обращение к методу getConnection (), который принадлежит к унифицированному интерфейсу Ба1а8оигсе драйвера ГОБС. Интерфейс DataSource позволяет обеспечить соединение с СУБД.
На втором этапе (блок 2) после того как произошел вызов метода getConnection (), осуществляются синхронизация и сопоставление транзакции и соединения. То есть каждой транзакции принадлежит и соответствует определенное соединение с СУБД. Если же опять происходит вызов метода getConnection () в рамках одной и той же выполняемой транзакции, то компонент приложения использует первоначальное соединение.
Рис. 4. Структура алгоритма кэширования соединений с СУБД
На третьем этапе компонент реализует вызов метода commit () (блок 3).
На четвертом инициируется проверка, принадлежит ли выполняемый метод commit () к соединению (блок 4), которое ранее использовалось. Если вызванный метод commit () принадлежит к такому соединению, то оно используется (блок 5). В противном случае создается новое соединение (блок 6). После чего происходит его кэширование (блок 7).
На пятом этапе происходит завершение транзакций (блок 8).
Когда инициируется новая транзакция, которая использует соединения с аналогичными параметрами, то компонент специального программного обеспечения использует кэширо-ванные соединения из пула.
Таким образом, разработаны:
- алгоритмы обработки операций с данными клиент-серверных приложений, обеспечивающие обработку мультиверсионных элемен-
тов данных, отличающиеся взаимодействием СУБД с планировщиком с использованием временных меток;
- алгоритмы межинтерфейсного взаимодействия между компонентами специального программного обеспечения, отличающиеся обменом специальными сообщениями для поддержки пула соединений и обеспечивающие повышение производительности при соединении с СУБД.
3. Экспериментальная оценка производительности специального программного обеспечения, обеспечивающая управление кэшированными данными на основе временных меток транзакций
После программного проектирования [6, 7] была проведена экспериментальная оценка производительности специального программного обеспечения, обеспечивающая управление кэшированными данными на основе временных меток транзакций [8].
Тестирование выполнялось в три этапа:
- в рамках первого теста производилась фиксация успешно выполненных транзакций (рис. 5);
- в рамках второго теста фиксировалась продолжительность среднего времени выполнения транзакции при выполнении 10 потоков с запросами (рис. 6);
- в контексте третьего теста осуществлялась фиксация количества прерванных транзакций (рис. 7).
Таким образом, экспериментальная оценка свидетельствует о том, что с ростом нагрузки производительность алгоритма на основе временных меток становится наилучшей.
О 10 20 30 40 50 60 70 80 90 100 110
Рис. 5. График зависимости совершенных транзакций от количества одновременных потоков, исходящих от клиентов
10 20 30 40 50 60 70 80 90 100 110
Рис. 6. График средней продолжительности выполнения транзакции
Рис. 7. График зависимости количества прерванных транзакций относительно инициированных
Заключение
1. Проведена формализация описания сериализуемости транзакций, обеспечивающая унифицированное представление процесса управления транзакциями, отличающаяся использованием ациклического для версии записи графа мультиверсионной сериализуемости.
2. Создано аналитическое представление метода кэширования, отличающееся использованием временных меток, обеспечивающее своевременную актуализацию кэшированных данных при клиент-серверной обработке путем вычисления минимальных временных меток.
3. Разработаны алгоритмы обработки
операции с данными клиент-серверных приложений, обеспечивающие обработку мультивер-сионных элементов данных, отличающиеся взаимодействием СУБД с планировщиком с использованием временных меток.
Литература
1. Bernstein P.A., Goodman N. Multiversion concurrency control - theory and algorithms// ACM Transactions on Database Systems, Vol. 8, No. 4, 1983, p. 465-483.
2. Theory and practice of transactional method caching. - http://arxiv.org/pdf/cs/0503022.pdf.
3. Shakhvorostov G.I., Kravets O.Ja. Features of the data caching protocol development on the basis of temporal tags for the special transaction processor// Modern informatization problems in the technological and telecommunication systems analysis and synthesis: Proc. of the XVIII-th Int. Open Science Conf. - Lorman, MS, USA: Science Book Publishing House. 2013. № 18. P. 330-335.
4. Шахворостов Г.И., Кравец О.Я. Особенности математического обеспечения кэширования данных на основе специального обработчика транзакций// Системы управления и информационные технологии: научно-технический журнал. 2012. № 4.1(50). С. 200-204.
5. Shakhvorostov G.I., Kravets O.Ja. Transaction theory features application as tool for the data caching special protocol implementation// Modern informatization problems in economics and safety: Proc. of the XVIII-th Int. Open Science Conf. - Lorman, MS, USA: Science Book Publishing House. 2013. № 18. P. 44-49.
6. Шахворостов, Г.И. Особенности управления разработкой программного обеспечения для специального класса информационных систем [Текст] / Г. И. Шахворостов, О. Я. Кравец // Экономика и менеджмент систем управления. - 2012. - № 4.1(6).- С. 181-191.
7. Кравец О. Я. Особенности разработки методов управления базами данных в составе специализированных информационных систем реального времени [Текст] / О. Я. Кравец, Г. И. Шахворостов // Системы управления и информационные технологии: научно-технический журнал. - 2012. - № 3.1(49).- С. 147-151.
8. Shakhvorostov G.I., Kravets O.Ja. Special transaction processor application for the productivity of transaction processing increase and optimization in a specialized information system// Modern informatization problems in simulation and social technologies: Proc. of the XVIII-th Int. Open Science Conf. - Lorman, MS, USA: Science Book Publishing House. 2013. № 18. P. 283-289.
Воронежский государственный технический университет
Российская академия народного хозяйства и государственной службы при Президенте Российской Федерации (Воронежский филиал)
UPDATING OF INTERMODULAR INTERACTIONS ON THE MULTIVERSION DATA ITEMS
PROCESSING BASIS
O.Ja. Kravets, G.I. Shakhvorostov, A.V. Achkasov
Analytical representation of a method of caching on a basis by use of the temporal tags, providing timely updating of cached data in case of client server processing by computation of the minimum temporal tags is created. Algorithms of processing of dataful operations of the client server applications, providing processing of multiversion data items are developed
Key words: cashing, time points, multiversion elements, database