ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

Модель производительности подсистемы системы электронного документооборота (СЭДО) ЕВФРАТ

 

Королева Ирина Юрьевна,

доцент, кандидат технических наук,

Додонов Алексей Владимирович,

студент.

Волгоградский государственный технический университет.

 

1.                  Введение

 

Существует множество способов увеличения производительности СЭДО, один из наиболее эффективных – это многопотоковая обработка данных [2]. Многопоточность дает возможность увеличить количество операций работы с данными за определенное время. Причем лучших результатов можно достичь, если применяемое приложение работает на многоядерном процессоре, распараллеливая выполнение задач.

Распределенная система – это совокупность взаимодействующих объектов, имеющих определенное состояние [1]. В такой системе в самом начале транзакций чаще всего неизвестно, какое количество объектов, состояние которых следует обрабатывать, принимают в данной транзакции участие. Клиент, направляющий запрос серверному объекту, не представляет, какую цепочку вызовов к каким объектам, породит данный уникальный запрос.

Система ЕВФРАТ позволяет повысить эффективность деятельности организации, отдела, департамента, улучшить исполнительскую дисциплину, сэкономить время на всех этапах деятельности сотрудников, создать единое информационное и управленческое пространство на предприятии [5].

Для установки и эксплуатации системы ЕВФРАТ не требуется наличия дополнительного программного обеспечения. В отличие от аналогичных программ, предлагаемых на рынке, система функционирует на собственной встроенной СУБД «Ника», которая входит в комплект поставки.

Система соответствует нормативным требованиям российского делопроизводства, а также требованиям стандарта ISO 9000, разработана в полном соответствии с рекомендациями WfMC (Workflow Management Coalition) [3].

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

 

2.                  Предлагаемая модель производительности подсистемы

 

Допустим, имеется система с многоядерным процессором с числом ядер равным n. Также имеется определенный набор из N операций, которые должны быть выполнены. S операций из данного набора обязаны работать строго последовательно, в это же время оставшиеся P операций программно автономны друг от друга и имеют все шансы выполняться одновременно на всех процессорных ядрах. Допустим s = S/N – часть операций, последовательно выполняемых, а p (которое равно 1 – s) – это доля операций, которые выполняются параллельно. В случае использования процессора с одним ядром время, запрашиваемое с целью выполнения установленного набора операций будет составлять:

                                                                                                                   (1)

Где IPS (Instructions Per Second) – число операций, выполняемых в секунду. В случае, когда применяется n-ядерный процессор затрачиваемое время на выполнение всего комплекта операций, составит:

          (2)

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

                                                                                                  (3)

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

 

3.                  Модель управления транзакциями

 

Последовательность действий выглядит таким образом: определяется класс – сервер окружения, базовым классом у которого является EnvironmentServer, в созданном классе переопределяется конструктор, принимающий на вход строку соединения и количество потоков, определяется вся необходимая дополнительная функциональность. Затем создается и сохраняется экземпляр класса сервера окружения, которому передается в конструктор строка соединения с MS SQL Server и количество потоков, которое как правило эквивалентно числу процессоров, использующихся в системе [4].

 

Рис. 1. Алгоритм работы подсистемы.

 

База данных, указываемая в строке подключения, создается с помощью утилиты «Создание серверного хранилища» в составе ЕВФРАТ-Хранилище на сервере БД. Последующая работа по созданию транзакций и останов сервера осуществляется через этот объект сервера окружения. Пример на языке C#:

//Инициализация сервера с четырьмя потоками

env server = new env("server=DBS\\SQLEXPRESS; database=edo15; Integrated Security=SSPI", 4);

//…

//Создание транзакции

Transaction t = server.OpenTransaction();

//…

//Останов сервера

server.Stop();

Все другие операции, связанные с транзакцией, вызываются как методы объекта транзакции:

//Создание транзакционного файла

TransactionFile f1 = t.CreateFile("C:\\1.txt");

//...

//Получение транзакционного файла по его идентификатору (свойство id)

TransactionFile f2 = t.GetFile(f1.id);

//...

//Получение файлового потока транзакционного файла f2 для работы с ним

//(в данном примере - для чтения)

System.IO.FileStream fs = f2.GetStream(System.IO.FileAccess.Read);

//...

//Свойство transaction позволяет получить транзакцию-владельца

//транзакционного файла

Transaction t2 = f2.transaction;

//...

//Внесение блокировки с идентификатором "src123"

t.EnterLock("src123");

//...

//Подписка на событие фиксации; аналогично осуществляется подписка

//на события отката и завершения

t.OnCommit += new TransactionEventHandler(t_OnCommit);

//...

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

//выполнение асинхронное

t.InvokeAsync(new Func<int>(() =>

{

                        //Список операторов

}));

// выполнение синхронное

t.Invoke(new Func<int>(() =>

{

                        //Список операторов

}));

Откат или фиксация транзакции затем осуществляется вызовом соответствующих методов: Rollback() или Commit().

 

4.                  Практическое исследование производительности подсистемы

 

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

 

Таблица 1.

Конфигурация примененных стендов.

Процессор

Частота процессора

Объем ОП

Тип ОП

ОС

1

Intel Core 2 Quad Q9350

2.66 ГГц

2 ГБ

DDR2

Windows Professional XP

2

Intel Core 2 Duo E8210

2.66 ГГц

2ГБ

DDR2

Windows Professional XP

3

Intel Pentium 4 T

2.4 ГГц

2 ГБ

DDR2

Windows Professional XP

 

Был взят фиксированный интервал времени – одна минута и посчитано количество выполненных тестов. На каждой из представленных машин подсистема по управлению транзакциями инициализировалась с численностью используемых рабочих потоков от 1 до 8, замеры проводились для каждого значения. Помимо этого, на каждом стенде произведен замер количества тестов процедур для старой версии. В итоге были получены следующие результаты (рис. 2-4). На диаграммах для каждого отдельного случая приведены по три значения – максимальное, среднее и минимальное число завершенных тестов с использованием нашей подсистемы, результаты старой же версии – отмечены на диаграмме уровнем затеняющего экрана.

 

Рис. 2. Результаты выполненных тестов на 3 стенде.

 

Рис. 3. Результаты выполненных тестов на 2 стенде.

 

Рис. 4. Результаты выполненных тестов на 1 стенде.

 

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

 

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

Исследованию подверглись показатели производительности систем с применением разработанной подсистемы по управлению транзакциями и произведен сравнительный анализ с прежними результатами – в итоге система достигла лучшие показатели. Заметнее всего производительность алгоритмов оказалась при проведении тестов на архитектуре с 2-ядерным процессором и существенно превышает показатели на архитектуре с 4-ядерным процессором.

 

Литература

 

1.                  Бронштейн О.И., Духовный И.М. Модели приоритетного обслуживания в информационно-вычислительных системах. М.: Наука, 2000. 220 с.

2.                  Григорьев Ю.А., Остапенко А.А., Плутенко А.Д. Модели анализа процессов передачи данных в компьютерных сетях. М.: Изд-во МГТУ им. Н.Э. Баумана, 2000. 106 с.160

3.                  Возможности СЭД ЕВФРАТ. http://www.evfrat.ru/about/opportunities/.

4.                  Системный взгляд на документооборот http://www.docflow.ru/news/analytics/detail.php?ID=20343.

5.                  Внедрение системы электронного документооборота в госучреждении – проблемы и решения http://journal.itmane.ru/node/326.

 

Поступила в редакцию 26.05.2015 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.