stringtranslate.com

Детектор неисправностей

В распределенной вычислительной системе детектор отказов — это компьютерное приложение или подсистема , которая отвечает за обнаружение отказов или сбоев узлов . [1] Детекторы отказов были впервые представлены в 1996 году Чандрой и Тоуэгом в их книге «Ненадежные детекторы отказов для надежных распределенных систем» . В книге детектор отказов описывается как инструмент для улучшения консенсуса (достижения надежности) и атомарной трансляции (той же последовательности сообщений) в распределенной системе. Другими словами, детекторы отказов ищут ошибки в процессе , и система будет поддерживать уровень надежности . На практике, после того как детекторы отказов обнаруживают сбои, система запрещает процессы, которые совершают ошибки, чтобы предотвратить дальнейшие серьезные сбои или ошибки. [2] [3]

В 21 веке детекторы отказов широко используются в распределенных вычислительных системах для обнаружения ошибок приложений , таких как прекращение корректной работы программного обеспечения . Поскольку распределенные вычислительные проекты (см. Список распределенных вычислительных проектов ) становятся все более популярными, использование детекторов отказов также становится важным и критически важным. [4] [5]

Источник

Ненадежный детектор отказов

Чандра и Туег, соавторы книги «Ненадежные детекторы отказов для надежных распределенных систем » (1996), подошли к концепции обнаружения узлов отказов, введя детектор ненадежных отказов. [6] Они описывают поведение детектора ненадежных отказов в распределенной вычислительной системе следующим образом: после того, как каждый процесс в системе вошел в компонент локального детектора отказов, каждый локальный компонент будет проверять часть всех процессов в системе. [5] Кроме того, каждый процесс должен также содержать программы , которые в настоящее время подозреваются детекторами отказов. [5]

Детектор неисправностей

На этом рисунке показано поведение типичного детектора неисправностей (FD).

Чандра и Туэг утверждали, что ненадежный детектор отказов все еще может быть надежным в обнаружении ошибок, допущенных системой. [6] Они обобщают ненадежные детекторы отказов на все формы детекторов отказов, поскольку ненадежные детекторы отказов и детекторы отказов имеют одни и те же свойства. Кроме того, Чандра и Туэг указывают на важный факт, что детектор отказов не предотвращает никаких сбоев в системе, даже если ранее подозревали аварийную программу. Построение детектора отказов является существенной, но очень сложной проблемой, которая возникла при разработке отказоустойчивого компонента в распределенной компьютерной системе. В результате детектор отказов был изобретен из-за необходимости обнаружения ошибок в массивной информационной транзакции в распределенных вычислительных системах. [1] [3] [5]

Характеристики

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

Степени полноты

Степень полноты зависит от количества аварийных процессов, обнаруженных детектором сбоев за определенный период. [5]

Степени точности

Степень точности зависит от количества ошибок, которые детектор неисправностей допустил за определенный период. [5]

Классификация

Детекторы неисправностей можно разделить на следующие восемь типов: [1] [7]

  1. Идеальный детектор отказов ( P)
  2. В конечном итоге идеальные детекторы отказов ( ♦P )
  3. Сильные детекторы отказов ( S )
  4. В конечном итоге, сильные детекторы отказов ( ♦S )
  5. Слабые детекторы отказов ( W )
  6. В конечном итоге слабые детекторы отказов ( ♦W )
  7. Квази-идеальные детекторы отказов ( Q )
  8. В конечном итоге квазиидеальные детекторы отказов ( ♦Q )

Свойства этих детекторов неисправностей описаны ниже: [1]

В двух словах, свойства детекторов отказов зависят от того, насколько быстро детектор отказов обнаруживает реальные отказы и насколько хорошо он избегает ложных срабатываний. Идеальный детектор отказов обнаружит все ошибки без ошибок, тогда как слабый детектор отказов не обнаружит никаких ошибок и совершит множество ошибок. [3] [8]

Приложения

Различные типы детекторов отказов могут быть получены путем изменения свойств детекторов отказов. [3] [6] Первые примеры показывают, как повысить полноту детектора отказов, а второй пример показывает, как изменить один тип детектора отказов на другой.

Повышение полноты

Ниже приведен пример, взятый из Департамента компьютерных наук Йельского университета. Он функционирует, повышая полноту детектора отказов. [6]

изначально подозреваемые = ∅делать вечно: для каждого процесса p: если мой слабый детектор подозревает p, то отправить p всем процессампри получении p от некоторого процесса q: подозреваемые := подозреваемые + p - q

Из приведенного выше примера, если p падает, то слабый детектор в конечном итоге заподозрит это. Все детекторы отказов в системе в конечном итоге заподозрят p из-за бесконечного цикла, созданного детекторами отказов. Этот пример также показывает, что слабый детектор отказов полноты также может в конечном итоге заподозрить все сбои. [6] Проверка аварийных программ не зависит от полноты. [5]

Уменьшение детектора отказовВтк детектору неисправностейС

Ниже приведены аргументы корректности для удовлетворения алгоритма замены детектора отказов W на детектор отказов S. [1] Детектор отказов W слаб по полноте, а детектор отказов S силен по полноте. Они оба слабы по точности. [6]

  1. Он преобразует слабую полноту в сильную полноту. [1]
  2. Он сохраняет постоянную точность. [1]
  3. Это сохраняет конечную точность. [1]

Если все приведенные выше аргументы удовлетворены, то сведение слабого детектора отказов W к сильному детектору отказов S будет согласовываться с алгоритмом в распределенной вычислительной системе. [1]

Смотрите также

Ссылки

  1. ^ abcdefghi D., Kshemkalyani, Ajay (2008). Распределенные вычисления: принципы, алгоритмы и системы . Singhal, Mukesh. Кембридж: Cambridge University Press. ISBN 9780521189842. OCLC  175284075.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ Агилера, Маркос Кавазое; Чен, Вэй; Туег, Сэм (2000-04-01). «Обнаружение сбоев и консенсус в модели восстановления после сбоев». Распределенные вычисления . 13 (2): 99–125. doi :10.1007/s004460050070. hdl : 1813/7330 . ISSN  0178-2770.
  3. ^ abcd Фишер, Майкл Дж.; Линч, Нэнси А.; Патерсон, Майкл С. (апрель 1985 г.). «Невозможность распределенного консенсуса с одним ошибочным процессом». J. ACM . 32 (2): 374–382. CiteSeerX 10.1.1.13.6760 . doi :10.1145/3149.214121. ISSN  0004-5411. 
  4. ^ Холохан, Энн; Гарг, Анураг (2005-07-01). «Сотрудничество онлайн: пример распределенных вычислений». Журнал компьютерно-опосредованной коммуникации . 10 (4): 00. doi :10.1111/j.1083-6101.2005.tb00279.x. ISSN  1083-6101.
  5. ^ abcdefgh Чандра, Тушар Дипак; Туег, Сэм (1996). «Ненадежные детекторы отказов для надежных распределенных систем». Журнал ACM . Том 43, выпуск 2. 43 (2). Нью-Йорк, США: ACM: 225–267. doi : 10.1145/226643.226647. hdl : 1813/7192. ISBN 978-0897914390.
  6. ^ abcdefghijkl "FailureDetectors". www.cs.yale.edu . Получено 2017-10-23 .
  7. ^ Агилера, Маркос Кавазое; Туег, Сэм (1996-10-09). "Рандомизация и обнаружение сбоев: гибридный подход к решению проблемы консенсуса". Распределенные алгоритмы . Конспект лекций по информатике. Том 1151. Springer, Берлин, Гейдельберг. С. 29–39. CiteSeerX 10.1.1.88.1597 . doi :10.1007/3-540-61769-8_3. ISBN  978-3540617693.
  8. ^ Чен, Вэй; Туэг, С.; Агилера, МК (январь 2002 г.). «О качестве обслуживания детекторов отказов». IEEE Transactions on Computers . 51 (1): 13–32. CiteSeerX 10.1.1.461.5630 . doi :10.1109/12.980014. ISSN  0018-9340. 

Внешние ссылки