МИНОГИН Андрей Владимирович ПОСТРОЕНИЕ АДАПТИВНОЙ МАТЕМАТИЧЕСКОЙ МОДЕЛИ

advertisement
На правах рукописи
МИНОГИН Андрей Владимирович
ПОСТРОЕНИЕ АДАПТИВНОЙ
МАТЕМАТИЧЕСКОЙ МОДЕЛИ
ВОССТАНОВЛЕНИЯ РАСПРЕДЕЛЕННЫХ
ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Специальность 05.13.18 - Математическое моделирование,
численные методы и комплексы программ
АВТОРЕФЕРАТ
диссертации на соискание ученой степени
кандидата физико-математических наук
Москва – 2009
Работа выполнена на кафедре информатики Московского
технического института (государственного университета).
физико-
Научный руководитель:
доктор физико-математических наук, профессор
ПЕТРОВ Игорь Борисович
Официальные оппоненты:
доктор физико-математических наук, профессор
ЖДАНОВ Александр Аркадьевич
кандидат физико-математических наук, доцент
СОШНИКОВ Дмитрий Валерьевич
Ведущая организация:
Межведомственный суперкомпьютерный центр РАН
Защита состоится « 15 » октября 2009 года в 11.30 час. на заседании
диссертационного совета Д 212.156.05 при Московском физико-техническом
институте (государственном университете) по адресу: 141700, г. Долгопрудный
Московской обл., Институтский пер. д.9, ауд. 903 КПМ.
С диссертацией можно ознакомиться в библиотеке МФТИ (ГУ).
Автореферат разослан « 14 » сентября 2009 г.
Ученый секретарь
диссертационного совета
Федько О.С.
2
Общая характеристика работы
Актуальность работы
Распределенные вычислительные системы играют значительную роль в
современном мире. Распределенные вычисления используются в науке, на
производстве, в энергетике, в военном деле, в корпоративном программном
обеспечении
и
во
множестве
других
областей.
Область
применения
распределенных систем быстро расширяется с развитием интернета.
В
силу
высокой
сложности
распределенных
систем
практически
невозможно спроектировать и разработать надежную систему, не содержащую
ошибок. Вероятность возникновения программного или аппаратного сбоя при
эксплуатации распределенной системы довольно высока и может иметь очень
серьезные негативные последствия. Таким образом, актуальной является задача
повышения надежности эксплуатации или задача построения отказоустойчивых
распределенных систем, которые могут самостоятельно устранять последствия
сбоев без прекращения работы системы. Неотъемлемой частью отказоустойчивой
системы является система мониторинга, обнаруживающая сбои в целевой системе
и передающая сведения о сбоях системе восстановления.
Существует
значительное
количество
методик
построения
отказоустойчивых систем. Одним из наиболее перспективных направлений
является возвратное восстановление, заключающееся в восстановлении системы к
некоторому ранее сохраненному стабильному состоянию в случае сбоя. Стоит
отметить,
что
в
некоторых
случаях
применение
системы
возвратного
восстановления может быть более дешевым решением, чем устранение причин
отказа.
Построение модели отказоустойчивой системы с применением методики
возвратного восстановления является достаточно сложной задачей, имеющей
значительное количество особенностей. Создание модели восстановления требует
решения
следующих
проблем:
обеспечение
3
целостности
взаимодействия
элементов системы, обеспечение целостности взаимодействия системы и внешних
устройств, обеспечение надежного сохранения и восстановления информации о
состояниях
системы,
обеспечение
высокой
производительности
процесса
восстановления.
Для многих современных работ в области возвратного восстановления
характерны следующие недостатки:
1. Сильные предположения относительно характера возможных сбоев. В
частности, в большинстве работ рассматриваются только фатальные
(например, аппаратные) сбои, приводящие к немедленной остановке
процессов, хотя для многих реальных систем более характерны
распространяющиеся программные сбои.
2. Сильные предположения относительно возможностей детектирования
сбоев. Как правило, считается, что система мониторинга является
централизованной, обладает полными сведениями об ошибках и
минимальным временем реакции.
В настоящей работе рассматривается построение модели возвратного
восстановления с учетом следующих предположений относительно целевой
системы и системы мониторинга:
1. возможность программных распространяющихся сбоев;
2. невозможность определения истинных причин сбоя;
3. возможность распределенного характера системы мониторинга;
4. максимальная прозрачность системы восстановления для разработчика
и конечного пользователя.
Актуальность данных предположений обусловлена тем, что одной из
важнейших проблем современных распределенных систем являются ошибки
синхронизации процессов, приводящие к распространяющимся сбоям. В случае
ошибок синхронизации или ошибок, связанных с переполнением буфера, как
правило, сложно установить истинную причину ошибки. Использование
централизованной системы мониторинга в высоко распределенных системах,
4
состоящих из большого количества узлов, может быть крайне неэффективным.
Важной
особенностью
распределенной
системы
мониторинга
является
вероятностный характер сообщений об ошибках в связи с конечным временем
синхронизации сведений, получаемых из разных узлов системы.
Для практической реализации построенной модели и исследования
особенностей
ее
поведения
Направление
многоагентных
был
выбран
систем
класс
является
многоагентных
актуальным
систем.
и
быстро
развивающимся, так как парадигма агентного программирования предлагает
новые возможности для построения распределенных программных комплексов и
интернет-ориентированных
приложений.
Основная
идея
парадигмы
многоагентного программирования – использование автономных мобильных
программных объектов, называемых агентами. Агенты взаимодействуют между
собой и с внешней средой посредством отправки и получения сообщений.
Цели диссертационной работы
1. Построение
адаптивной
распределенной
математической
вычислительной
модели
системы
восстановления
в
условиях
распространяющихся ошибок.
2. Построение
адаптивной
вычислительной
системы
модели
в
восстановления
условиях
распределенной
вероятностного
характера
информации о детектируемых ошибках.
3. Реализация модели восстановления распределенных систем на классе
многоагентных систем с использованием многоагентной платформы
JADE.
Методы исследования
В процессе научных исследований в работе использовались методы теории
алгоритмов, математического моделирования, теории графов, теории множеств и
теории конечных автоматов. Предложенные модели реализованы в виде
5
комплекса программ, на основе которых проведён ряд вычислительных
экспериментов.
Научная новизна работы
В работе предлагается модель возвратного восстановления распределенной
системы в условиях распространяющихся сбоев. Впервые для повышения
эффективности процесса восстановления в условиях недостатка знаний о целевой
системе применяются адаптивные методики, а также предложенная методика
определения консистентных состояний системы. Формулируется и реализуется
требование
наблюдаемой
консистентности
для
расширения
области
применимости модели. Строится модель взаимодействия системы восстановления
с распределенной системой мониторинга.
Практическая значимость работы
Основным практическим результатом работы является построение модели
восстановления распределенных систем в условиях распространяющихся сбоев.
Данная модель может быть использована для повышения надежности широкого
класса распределенных систем.
В работе приведено описание реализации предложенной модели на классе
многоагентных систем в рамках многоагентной платформы JADE. Предложенная
реализация
может
быть
использована
для
создания
отказоустойчивых
многоагентных приложений.
Апробация и реализация результатов работы
По теме диссертации опубликовано 9 работ, в том числе одна [9] – в
издании из списка, рекомендованного ВАК РФ.
Результаты работы докладывались на XLVIII научной конференция МФТИ
(Долгопрудный-Москва,
2005
г.),
международной
научной
конференции
«Технологии Microsoft в теории и практике программирования» (Москва, 2006 г.),
XVI международном научно-техническом семинаре «Современные технологии в
6
задачах управления, автоматики и обработки информации» (Алушта, 2007 г.),
международной конференции AIS/CAD (Дивноморск, 2007 г.), международной
конференции «Компьютерные науки и технологии» (Белгород, 2009 г).
Предложенная модель восстановления используется в программном
комплексе автоматизированного абонентского обслуживания Mangoss.
Положения, выносимые на защиту
На защиту выносятся следующие основные положения:
1. Адаптивная математическая модель восстановления распределенной
вычислительной системы в условиях распространяющихся сбоев.
2. Адаптивная математическая модель восстановления распределенной
вычислительной
системы
в
условиях
вероятностного
характера
информации о детектируемых ошибках.
3. Методика реализации адаптивной модели восстановления на классе
многоагентных систем.
Структура и объем работы
Диссертация состоит из введения, трех глав, заключения, списка
использованных источников и одного приложения. Работа изложена на 108
страницах, список использованных источников содержит 59 наименований.
Содержание работы
Во введении обосновываются цели и задачи данной работы, её
актуальность, научная новизна и практическая значимость. Приводится краткий
обзор работы.
Глава 1 посвящена обзору современного состояния предметной области.
В
параграфе
вычислительных
1.1
рассматривается
понятие
распределенных
систем и роли, которую они играют в современных
информационных технологиях. Вводится понятие высокораспределенных систем
7
как ресурсоемких систем, которые плохо поддаются тестированию и отладке на
малом количестве узлов сети.
Параграф
1.2
посвящен
вопросу
надежности
распределенных
вычислительных систем. Отмечается высокая стоимость отказов распределенных
систем, обусловленная высокой стоимостью владения такими системами и
важностью решаемых с их помощью задач. В качестве причины отказов
распределенных систем рассматриваются ошибки, допускаемые на этапах
проектирования, разработки и эксплуатации. Для этапов проектирования и
разработки существует значительное количество методик устранения ошибок, как
правило,
сводящихся
к
автоматизации
процесса
разработки.
На
этапе
эксплуатации помимо сбоев в результате ошибок, допущенных при разработке,
существует возможность аппаратных сбоев, таких как отказ узла сети или
нарушения связи между узлами. Основным выводом данного параграфа является
вывод о необходимости построения отказоустойчивых систем, то есть систем,
способных ликвидировать последствия сбоя без прекращения работы.
Существует две базовые методики построения отказоустойчивых систем –
репликация и восстановление. Рассмотрению этих двух подходов посвящен
параграф 1.3. Отмечается высокая стоимость и ограниченная применимость
механизмов репликации, особенно для высоко распределенных систем.
Во многих случаях существенно более выгодной альтернативой является
возвратное восстановление, которое рассматривается в параграфе 1.4. В основе
методик возвратного восстановления лежат две базовые идеи – фиксация
контрольных точек (checkpointing) и журналирование событий (event logging).
Данные методики эффективно дополняют друг друга. Метод контрольных точек
заключается в периодическом сохранении состояний процессов с возможностью
возврата процесса в ранее сохраненное состояние. Метод журналирования
событий
заключается
в
последовательном
сохранении
информации
(детерминантов) обо всех недетерминированных событиях процесса,
с
возможностью последующего воспроизведения сохраненных событий в случае
8
восстановления. Оба метода требуют наличия в системе так называемого
надежного хранилища (stable storage) для хранения точек восстановления и логов.
Одна из важных проблем возвратного восстановления – корректное
взаимодействие системы с внешним миром после восстановления. Под внешним
миром понимается любое устройство, которое не может быть восстановлено к
предыдущему состоянию вместе с процессами целевой системы, например вывод
на экран или принтер, выдача денег банкоматом или управление манипулятором
робота. Проблема взаимодействия с внешним миром обычно решается путем
фиксации вывода (output commit) – созданием глобальной контрольной точки
восстановления.
Параграф 1.5 содержит сведения о методе фиксации контрольных точек –
основной методике возвратного восстановления. Основная проблема применения
метода контрольных точек – необходимость восстановления системы к
консистентному
состоянию,
то
есть
состоянию,
в
котором
каждому
зафиксированному факту получения сообщения соответствует фиксация факта
его отправки. Восстановление к неконсистентному состоянию приводит к
некорректной работе системы. Примеры консистентного и неконсистентного
множества состояний системы процессов показаны на рис. 1.
Рис. 1. Консистентное (а) и неконсистентное (б) множества состояний.
Недостатки метода контрольных точек, такие как сложность построения
глобального
консистентного
необходимости
разработки
состояния
метода
и
фиксации
журналирования
вывода,
привели
событий,
к
который
описывается в параграфе 1.6. Использование этого метода основывается на
9
модели кусочной-детерминированности процессов. Метод журналирования
событий заключается в последовательной записи детерминантов (описаний) всех
недетерминированных событий процесса в надежном хранилище и последующем
воспроизведении их в процессе восстановления.
Большинство методик восстановления ограничиваются рассмотрением
фатальных сбоев (stop-failure), то есть сбоев, приводящих к немедленной
остановке процесса без распространения последствий ошибки. К фатальным
сбоям относятся многие аппаратные сбои или сбои операционной системы, после
которых дальнейшее выполнение программы невозможно. Для реальных систем
существенную
проблему
представляет
класс
распространяющихся
сбоев
(propagation failures), рассматриваемых в параграфе 1.7, которые, как правило,
происходят в результате программных ошибок. Данные сбои не обнаруживаются
сразу, но вводят процесс в ошибочную ветку исполнения, которая, в итоге,
приводит
к
некоторому
детектируемому
сбою.
Главная
опасность
распространяющихся сбоев заключается в том, что процесс, находящийся в
ошибочной ветке исполнения взаимодействует с другими процессами, изменяя их
состояние некорректным образом. Характерный пример таких сбоев – ошибки
синхронизации процессов.
Понятие прозрачности реализации модели разбирается в параграфе 1.8.
Рассматривается влияние процесса восстановления на производительность
системы и на сохранность данных пользователя, а также вопрос прозрачности
реализации модели с точки зрения разработчика.
Глава 2 посвящена построению модели адаптивного восстановления
распределенных систем.
В параграфе 2.1 указаны предпосылки для создания модели. Основной
предпосылкой является существование распространяющихся сбоев.
Параграф 2.2 содержит формальное определение основных терминов и
постановку задачи. В качестве модели целевой распределенной системы
используется
NCFSM
–
система
 Q, q 0 , M,  
10
взаимодействующих
недетерминированных конечных автоматов, где Q – конечное непустое
множество
состояний,
q0
–
начальное
состояние,
M
–
множество
неупорядоченных наборов сообщений вида  , n, C  , где  – конечный алфавит
набора, причем
 i   , n – максимальный размер набора, C – неупорядоченный
набор символов из  . Функция  задает правила переходов, сопровождающихся
чтением символа из некоторой очереди или записью символа в некоторую
очередь. Возможны  -переходы – переходы без чтения символа.
Будем называть трассой последовательность T  t1 , t 2 ,...  мировых
состояний, соединённых допустимыми последовательными переходами NCFSM.
Будем говорить, что q  TA , если автомат A достигает состояния q хотя бы в
одном элементе T. Если же автомат A достигает состояния q в элементе t i трассы
T, то будем говорить, что q  t iA .
Введем понятие консистентного состояния. Без ограничения общности
можно считать, что все символы, отправляемые автоматами в рамках одной
трассы, различны. Свяжем с каждым символом m, отправляемым автоматом A
автомату B, индекс i TAB (m)  N 0 . Пусть индекс символа i TAB (m) равен числу
символов, отправленных ранее автоматом A автомату B в трассе T. Зафиксируем
трассу T. Пусть q  TA . Обозначим множество индексов символов, отправленных
автоматом B и прочтённых автоматом A, через R TAB (q) . Множество индексов
символов, отправленных автоматом A автомату B, обозначим как STAB (q) .
О1: Пусть T – трасса. Состояния q  TA и p  TB автоматов A и B
консистентны, если в данных состояниях совпадают множества индексов
отправленных и прочитанных символов:
R TAB (q)  STBA (p) и R TBA (p)  STAB (q)
О2: Пусть Т – трасса. Состояния q1  TA1 ,...,q n  TAn автоматов A1 ,..., A n
консистентны, если все состояния q1 ,..., q n попарно консистентны.
11
Мы исходим из предположения, что информация об исходной причине
ошибки
отсутствует.
Из
этого
следует,
что
единственным
источником
информации об ошибке является точка детектируемого сбоя, соответствующая
моменту обнаружения ошибки системой мониторинга. Введем множество
ошибочных переходов F автомата, соответствующих детектируемым сбоям.
NCFSM-система дополняется восстанавливающими переходами автомата
A к одной из множества точек восстановления t cA трассы T. При этом qA  t cA и
M A   . Пусть  t1A ,..., t cA1 , t cA ,..., t fA , t rA , t rA1...  – трасса автомата A, прошедшего
восстановление к состоянию t cA  t rA в точке f. Тогда
 t 1A ,..., t cA1 , t rA , t rA1 ,...  –
восстановленная трасса автомата A. Если трасса не содержит точки
восстановления, то восстановленной трассой называется сама трасса.
Будем называть вычислением некоторый конечный отрезок трассы
автомата C  t iA ,..., t iAn  . Пусть автомат O моделирует внешний мир, то есть
набор всех необратимых устройств системы. Отправка сообщения автомату O
моделирует некоторое необратимое событие целевой системы. Пусть C –
вычисление,
тогда
результатом
V(C)
вычисления
C
будем
обозначать
последовательность исходящих символов
V(C)  v1,...,vn , где v  m( t iA , t iA1 ) : t iA , t iA1  C, v  O
К системе предъявляется требование устойчивости к ошибкам:
если  t iA , t iA1  F , то m( t iA , t iA1 )   0
Сформулируем задачу моделирования: построить модель процесса
восстановления
системы
взаимодействующих
конечных
автоматов,
удовлетворяющую следующим свойствам:
1. Корректность. Если T – восстановленная трасса автомата A, то:
C(T)  t iA ,..., t iAn 1 : k,0  k  n : t iAk , t iAk 1  F
2. Консистентность взаимодействия. Пусть автомат A восстановлен в
состояние t rA , тогда: B  A, R TAB ( t rA )  STBA ( t rB ), STAB ( t rA )  R TBA ( t rB )
12
3. Наблюдаемая консистентность. Пусть C1  t iA ,..., t iAn  – вычисление
автомата A до момента восстановления, C 2  t Aj ,..., t Ajm  – вычисление
автомата A после восстановления, тогда:
C : V(C)  V(C1 )  V(C 2 )
C  s aA ,...,s aAb1 : k,0  k  b : s aAk , s aAk 1  F
4. Результативность
восстановления.
Пусть
 t fA ,..., t rA1 ,..., t rAn ,... 
–
вычисление автомата A,  t fA , t fA1  – ошибочный переход,  t rAi , t rAi 1  –
восстанавливающие переходы, тогда:
k : k  f  1, m( t kA , t kA1 )   0 или  t kA , t kA1  F, t kA  t fA
Параграф 2.3 посвящен решению поставленной задачи. Для обеспечения
корректности восстановления после любого ошибочного перехода должен
осуществляться восстанавливающий переход. При этом для соблюдения
наблюдаемой консистентности потребуем, чтобы восстанавливающий переход
непосредственно следовал за ошибочным. Для обеспечения консистентности
взаимодействия предлагается использовать следующую методику определения
~
консистентных состояний. Пусть A  {A1 ,..., A n } – множество всех автоматов
целевой NCFSM-системы. Расширим целевую систему следующим образом.
~
A  A введем набор параметров, связанных с состоянием q автомата A:
~
s AB (q)  N 0 , rAB (q)  N 0 , WA (q)  N 0 , B  A, B  A
(1)
К расширенной системе предъявляются следующие требования.
В начальном состоянии: s AB (q 0 )  0, rAB (q 0 )  0, WAB (q 0 )  
(2)
Пусть автомат A перешел из состояния q в состояние q’ с отправкой
сообщения m, тогда сообщение m содержит значение s AB (q )
s AB (q ' )  s AB (q )  1
13
(3)
(4)
Пусть автомат A получил от автомата B сообщение m, содержащее s BA (p) ,
где p – соответствующее состояние автомата B, и перешел из состояния q в
состояние q’, тогда
если s BA (p)  rAB (q) , то rAB (q' )  s BA (p)  1 ;
(5)
если s BA (p)  rAB (q) , то WA (q' )  WA (q){rAB (q),...,s BA (p)  1}
(6)
здесь «…» означает перечисление целых чисел;
если s BA (p)  rAB (q) , то WA (q' )  WA (q) \ {s BA (p)} .
(7)
Нами доказана следующая теорема: пусть T – трасса. Набор состояний
q1  TA1 ,...,q n  TAn автоматов A1 ,..., A n , удовлетворяющих требованиям (1) – (7),
является консистентным тогда и только тогда, когда выполнен критерий:
i, j, i  j : WATi (q i )  WATj (q j )  , rATiA j (q i )  s TA jAi (q j ), rATjAi (q j )  s TAiA j (q i )
(8)
Из вышесказанного следует, что если существующую NCFSM систему привести в
соответствии с требованиями (1) – (7), то для определения консистентного
состояния
можно
использовать
критерий
(8).
Данный
метод
является
эффективным с точки зрения реализации модели, так как не требует хранения
полной истории сообщений.
Недетерминированным переходом трассы TA будем называть переход,
индуцированный входящим сообщением или  -переход из состояния, имеющего
минимум два исходящих  -перехода.
Предлагается следующий алгоритм (1). Пусть автомат A на трассе T
совершил ошибочный переход  t fA , t fA1  .
1. Выбирается недетерминированный переход
 t eA , t eA1 : e  f . Ниже
представлен алгоритм выбора этого перехода.
2. Сохраняется результат VAe,f вычисления  t eA ,..., t fA  .
3. Выполняется восстанавливающий переход A к точке t eA .
14
4. С помощью методики определения консистентных состояний для
каждого автомата B  A выбирается такая точка трассы rB , что:
R TAB ( t eA )  STBA ( t rBB ), STAB ( t eA )  R TBA ( t rBB )
5. Сохраняются результаты VBrB ,f вычислений  t rBB ,...,t fB  .
6. Проверяется следующее условие на восстановленной трассе S:
n : V( s eA ,...,s nA )  VAe,f , B  A : V( s rBB ,...,s nB )  VBrB ,f
При
этом
отправка
m( s iA , s iA1 ), e  i  n и
сообщений
m( s iB , s iB1 ), rB  i  n не производится.
При невозможности получения результата п.4 или при невыполнении п.6
работа системы прекращается. Прекращение работы системы фактически
означает невозможность устранить ошибку в силу особенностей алгоритма или
некорректного выбора недетерминированного перехода в п.1.
Как видно из описания алгоритма, данная методика позволяет устранить
детектируемую
ошибку
в
случае,
если
она
инициирована
некоторым
недетерминированным событием (причина ошибки) и это событие правильно
определено алгоритмом. Для определения точки восстановления в общем случае
должна применяться стратегия все более глубоких откатов.
Предлагается следующий базовый эвристический алгоритм (2). Пусть
автомат
A
совершил
переход  t fA , t fA1  .
ошибочный
Положим
E1f  , C1f  0, m1f  0, n  N . Рассмотрим i-ю итерацию восстановления для
данного ошибочного перехода.
1. Пусть
 h1f ,...,h fk  последовательность
недетерминированных
переходов, удовлетворяющая п.1 алгоритма (1).
2. Если Cif  n , то выбирается h fk mf . При этом Cif1  Cif  1, mif1  mif .
i
3. Если Cif  n , то выбирается h fk mf 1 , если существует. При этом
i
Cif1  0, mif1  mif  1.
15
Для различения повторов одного и того же ошибочного перехода на
разных циклах исполнения используется дополнительный параметр s  N . Пусть
 t fA1 , t fA1 1 ,  t fA2 , t fA2 1  – два ошибочных перехода, причем t fA1  t fA2 , тогда переходы
считаются
различными
в
рамках
алгоритма
(2),
f 2  f1  s .
если
При
невозможности выбора подходящего недетерминированного состояния работа
системы прекращается. Отметим, что частые отказы или низкая эффективность
системы могут быть связаны с неверным выбором параметра n. Заметим, что п.2
алгоритма (2) существенен для устранения фиксированных, в частности,
аппаратных,
сбоев.
П.3
алгоритма
(2)
необходим
для
устранения
распространяющихся программных сбоев.
Показано, что данная модель удовлетворяет перечисленным в предыдущем
параграфе требованиям. Рис. 2 иллюстрирует основные элементы модели.
Рис. 2. Элементы модели восстановления.
Возможны другие эвристические модификации алгоритма (2), например, с
использованием геометрической прогрессии.
В параграфе 2.4 рассматривается возможность применения адаптивных
методов для повышения эффективности предлагаемой модели восстановления.
Формализуем
понятие
эффективности
 t iA ,..., t cA1 , t cA ,..., t fA , t rA , t rA1..., t Aj 
–
системы
некоторое
восстановления.
вычисление
Пусть
автомата
A,
прошедшего восстановление к состоянию t cA  t rA в точке f. Характеристикой
эффективности процесса восстановления может служить следующая величина:
k
rc
ji
16
Она
представляет
собой
отношение
потерянного
в
результате
восстановления вычислительного времени к общему времени вычисления (рис. 3).
Данную величину можно распространить на случай нескольких этапов
восстановления и нескольких автоматов.
Как было сказано выше, повысить эффективность восстановления можно с
помощью правильного выбора точки восстановления и количества повторов для
данной точки. Желательно выбирать точку восстановления таким образом, чтобы
она предшествовала истинной причине ошибки, то есть недетерминированному
переходу, вводящему автоматы в такие ветки исполнения, которые заканчиваются
детектируемым
сбоем.
Основная
проблема
восстановления
в
условиях
распространяющихся ошибок является невозможность определения исходной
причины ошибки. При этом необходимо учитывать условие наблюдаемой
консистентности, так как слишком глубокие «превентивные» возвраты могут
привести
к
отказу
системы
восстановления
ввиду
невозможности
воспроизведения видимых переходов.
Рис 3. Вычислительное время, потерянное в результате восстановления.
Мы
предлагаем
использовать
адаптивную
методику
для
более
эффективного определения точки восстановления. В качестве адаптивно
накапливаемых
знаний
автомата
A рассматривается
следующий
объект:
K  h fA , h eA , n, m , n, m  N , h fA – ошибочный переход, h eA – недетерминированный
переход.
Предлагается следующий алгоритм (3) накопления и использования
знаний в процессе восстановления: a 1 , a 2 , a 3 , a 4 , a 5 , a 6  R , b  [0,1] – параметры.
1. Пусть автомат A совершил ошибочный переход h fA  t fA , t fA1  .
17
2. Выберем ближайший к точке сбоя недетерминированный переход h eA0 ,
удовлетворяющий п.1 алгоритма (1). Если такого элемента нет, то
завершим работу системы. Если в базе знаний нет элемента
K : h fA (K)  h fA , h eA (K)  h eA0 , то добавим в базу знаний элемент:
K  h fA , h eA0 ,1,1 
3. Выберем из базы знаний все элементы K: e : h fA (K)  h fA , e eA (K)  e ,
e – недетерминированный переход, удовлетворяющий п.1 алгоритма
(1).
Обозначим
e K  max( e) .
Рассчитаем
веса
элементов:
a 1n aK2
1
, d K  f  eK .
w (e ) 

a4
a 3 m K a 5 d aK6
K
Выберем e r с вероятностью p r 
w (e r )
 w (e K )
K
4. Пусть следующий достигнутый ошибочный переход h gA  t gA , t gA1 
a. Если h gA  h fA , то n (K r ) : n (K r )  1 .
b. Если h gA  h fA , то m(K r ) : m(K r )  1 . Выбирается случайное число
p  [0,1] .
i. Если p  b , то вновь используется точка восстановления e r .
ii. Если p  b , то в качестве точки восстановления выбирается
недетерминированный переход, предшествующий e r . При его
отсутствии система сообщает об отказе.
Данный алгоритм предсказывает точку исходной ошибки, основываясь на
знаниях, накопленных в ходе предыдущих восстановлений для данной
детектируемой ошибки. Значения параметров алгоритма подбираются для
конкретной реализации модели. Показано, что благодаря более точному
определению точки восстановления данный алгоритм имеет большую суммарную
эффективность, чем стандартные эвристические алгоритмы. Отметим, что при
18
практической
реализации
модели
возможна
модификация
алгоритма
с
использованием дополнительных знаний о целевой системе. Более подробно этот
вопрос рассматривается в главе 3.
В параграфе 2.5 рассматривается модель системы восстановления в
условиях вероятностного характера сведений о детектируемой ошибке. Такая
ситуация возникает при использовании распределенной системы мониторинга.
Мы исходим из следующей модели. Пусть
T  t1 ,..., t f  – трасса. При
детектировании сбоя в точке f система мониторинга предоставляет сведения вида:
{d1 ,...,d n }, d i  N , такие что i : j  f  d i : t Aj i , t Aji1  F
Основное отличие от случая точного детектирования ошибки заключается
в невозможности прямого сравнения детектируемых сбоев. Для построения
адаптивной модели восстановления необходимо построить критерий сравнения
детектируемых
множеств
вида
{d1 ,...,d n } .
Мы
предлагаем
использовать
следующий критерий. Для множества {d1 ,...,d n } :
1. Найдем k : d k  max d i .
2. Выберем недетерминированный переход  t eAk , t eAk1 : e  f  d k .
3. Подберем подходящие консистентные точки восстановления t cAi i для
автоматов A i , i  k (см. алгоритм 1).
4. Если i : c i  f  d i , то выполним п.2 – 4 для k  i .
Для двух построенных консистентных глобальных состояний вычислим
меру удаленности:
r
 c i  ci
n
Можно использовать следующий критерий равенства детектируемых
множеств: r  r  R , где R устанавливается эмпирически, исходя из особенностей
системы. Далее алгоритм (3) последовательно применяется к системе автоматов
19
со следующим изменением: при построении новой точки восстановления на шаге
(3) она должна соответствовать условию  t eAk , t eAk1 : e  f  d k .
Глава 3 посвящена анализу практической реализации предложенной
методики на классе многоагентных систем в рамках многоагентной платформы
JADE.
В параграфе 3.1 рассматриваются общие понятия агента, агентной
парадигмы, многоагентной системы и многоагентной платформы. Отмечается
особая роль многоагентных систем в исследовании распределенных систем и
преимущества реализации системы восстановления на классе многоагентных
систем.
Параграф 3.2 посвящен описанию основных спецификаций многоагентных
систем: MASIF и FIPA. Приводится описание многоагентной платформы JADE,
которая используется для реализации системы восстановления.
Ключевая задача реализации модели возвратного восстановления –
определение множества недетерминированных переходов (недетерминированных
событий). Исследованию этого вопроса на классе многоагентных систем
посвящен параграф 3.3. Основная категория недетерминированных событий –
получение сообщений от других агентов. Журналирование, идентификация и
повторное воспроизведение данных событий могут быть реализованы полностью
прозрачным для разработчика способом. Также нетрудно идентифицировать
исходящие сообщения и исключить их дублирование при восстановлении. В
результате исследования классов недетерминированных событий агента вводится
еще один класс событий, которые необходимо журналировать и которые могут
быть использованы в процессе восстановления – это неидемпотентные системные
вызовы,
такие
как
получение
системного
времени
или
генерация
псевдослучайного числа. Для точной идентификации подобных вызовов
требуется участие разработчика, что снижает прозрачность применения методики.
Одна из решаемых задач – применение специальных языковых конструкций для
максимального
упрощения
идентификации
20
вызовов.
Также
существует
возможность
увеличить
прозрачность
внедрения
методики,
используя
специализированные библиотеки системных вызовов, что является вполне
естественным при разработке на JADE.
Рис. 4. Сравнение эффективности эвристических и адаптивной моделей.
Реализация адаптивного алгоритма восстановления рассматривается в
параграфе 3.4. Основные практические вопросы, решаемые в данном параграфе –
реализация адаптивного алгоритма выбора логической контрольной точки
восстановления, корректный откат зависимых агентов в процессе восстановления
и проверка воспроизводимости наблюдаемых событий. Отдельный вопрос
представляет описание детектируемой ошибки с целью построения критерия
сравнения ошибок. Для описания контекста ошибки используются, в частности,
следующие сведения: параметры исключения, идентификатор агента, текущее
поведение агента (текущий цикл исполнения). Особое внимание уделяется
ошибкам синхронизации и примерам их устранения. Показано, что обработка
ошибок синхронизации упрощается путем включения в контекст ошибки
дополнительных сведений о разделяемом объекте. На рис. 4 приводятся
интегральные
характеристики
эффективности
21
для
трех
типов
моделей
восстановления
целевой
системы,
содержащей
высоковероятную
ошибку
синхронизации.
Параграф 3.5 посвящен вопросам построения надежного хранилища и
возможности освобождения ресурсов. Задача создания надежного хранилища, как
правило,
сводится
надежностью.
многоагентных
к
Нами
выбору
было
систем
между
высокой
реализовано
представление
производительностью
естественное
надежного
с
точки
хранилища
и
зрения
в
виде
распределенной системы специализированных агентов.
В заключении приведены основные результаты исследования и намечены
направления дальнейшей работы.
В
приложении
приведены
основные
компоненты
реализованного
программного комплекса.
Основные результаты и выводы диссертации
1. Разработана
адаптивная
распределенной
математическая
вычислительной
распространяющихся
сбоев.
модель
системы
Предложена
восстановления
в
эффективная
условиях
методика
определения консистентных состояний системы.
2. Разработана
адаптивная
математическая
модель
восстановления
распределенной вычислительной системы в условиях вероятностного
характера информации о детектируемых ошибках.
3. Предложенные модели реализованы на классе многоагентных систем в
рамках многоагентной платформы JADE.
Список публикаций по теме диссертации
1. Бородин М.В., Миногин А.В., Устюжанин А.Е. Верифицируемая
многоагентная платформа // Современные проблемы фундаментальных и
прикладных наук. Часть VII. Управление и прикладная математика: Труды
XLVIII научной конференции – М. – Долгопрудный: МФТИ, 2005. – С. 6869.
22
2. Миногин А.В., Дубовик Г.А. Верифицируемая многоагентная платформа
LiveNAP // Технологии Microsoft в теории и практике программирования:
Труды Всероссийской конференции студентов, аспирантов и молодых
ученых – М.: МГТУ им. Н.Э. Баумана, 2006. – С. 23-24.
3. Миногин А.В., Устюжанин А.Е. Реализация субъективного подхода к
тестированию распределенных систем на примере многоагентной
платформы LiveNAP // Процессы и методы обработки информации:
Сборник научных трудов – М.: МФТИ, 2006. – С. 208-217.
4. Дубовик Г.А., Миногин А.В., Тодосьев В.В., Устюжанин А.Е.
Использование
контролирующих
моделей
для
мониторинга
распределенных многоагентных систем // Моделирование процессов
обработки информации: Сборник научных трудов – М.: МФТИ, 2007. – С.
147-162.
5. Дубовик Г.А., Миногин А.В., Тодосьев В.В., Устюжанин А.Е. Разработка
языка описания контролирующих моделей // Труды VII Международной
научно-технической конференции «Интеллектуальные системы» и XXII
Международной научно-технической конференции «Интеллектуальные
САПР» – М.: Физматлит, 2007. – Т.3 – С. 51-57.
6. Дубовик Г.А., Миногин А.В., Устюжанин А.Е. Методика мониторинга
распределенных многоагентных систем // Современные технологии в
задачах управления, автоматики и обработки информации: труды XVI
Международного научно-технический семинара. – Тула: ТулГУ, 2007. – С.
17.
7. Миногин А.В. Методика возвратного восстановления высоко
распределенной системы с ненадежными каналами коммуникации //
Компьютерные науки и технологии: Труды Международной научнотехнической конференции – Белгород: БелГУ, 2009. – С. 34-38.
8. Дубовик Г.А., Миногин А.В., Устюжанин А.Е. Устранение аномалий
взаимодействия автоматов в системах с перестановкой символов. //
Модели и методы обработки информации: Сборник статей. – М.: МФТИ,
2009. – С. 223-230.
9. Миногин А.В. Методика определения консистентного состояния в высоко
распределенных системах с перестановкой, задержкой и потерей
сообщений // Системы управления и информационные технологии – 2009 –
№2.1(36) – С.162-166.
В работах с соавторами лично соискателем выполнено следующее: [1], [2], [3] –
разработка адаптивной математической модели восстановления распределенной
вычислительной системы и построение методики определения консистентного
состояния, [4], [5], [6], [8] – построение модели восстановления в условиях
вероятностного характера сведений об ошибках и ее практическая реализация.
23
МИНОГИН Андрей Владимирович
ПОСТРОЕНИЕ АДАПТИВНОЙ
МАТЕМАТИЧЕСКОЙ МОДЕЛИ
ВОССТАНОВЛЕНИЯ РАСПРЕДЕЛЕННЫХ
ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Автореферат
Подписано в печать 07.09.2009. Формат 60х90 1/16.
Усл. печ. л. 1,0. Тираж 80 экз. Заказ №
Московский физико-технический институт
(государственный университет)
Печать на аппарате Rex-Rotary Copy Printer 1280. НИЧ МФТИ.
141700, г Долгопрудный Московской обл., Институтский пер., 9
тел.: (495) 4088430, факс (495) 5766582
24
Download