Відмовостійкість

Відмовостійкість або поступо́ва деґрада́ція (англ. graceful degradation), або поступо́ве скоро́чення можли́востей, або поступо́вий ви́хід із робо́ти, або пла́вне зни́жування ефекти́вності це властивість системи (часто комп'ютерної), що дозволяє їй продовжувати правильно діяти у випадку помилки або декількох помилок в деяких її частинах. Якщо при цьому падає якість експлуатації, то це відбувається пропорціонально до серйозності помилки, на відміну від наївно спроектованих систем, в яких навіть маленька помилка спричиняє загальну відмову. Відмовостійкість особливо популярна у високо доступних та життєво критичних системах.

Відмовостійкість не є лиш особливістю окремих машин; вона також характеризує правила взаємодії між ними. Наприклад, TCP розроблений для уможливлення надійного двобічного зв'язку в мережах з комутацією пакетів, навіть за сучасного ненайкращого і перевантаженого стану ліній зв'язку. Він робить це через вимогу до кінцевих точек комунікацій очікувати втрату пакетів, повторення, невірний порядок і пошкодження, таким чином ці умови не шкодять цілістності даних, а лише зменшують пропускну спроможність на пропорційну величину.

Приклад поступової деградації у створенні зображення з прозорістю. Два зображення вгорі є результатами в оглядачі, який підтримує прозорість. Нижні два в такому, який не підтримує. Через те, що маска прозорості (центр низ) відмінена, залишається лише малюнок (орнаментальний шар); зображення ліворуч було розроблено для поступової деградації, тож воно залишається змістовним навіть без інформації про прозорість.

Формати даних також можуть бути розроблені для поступової деградації. Наприклад, HTML розроблений щоби бути вперед сумісним, дозволяє Вебоглядачу пропускати незрозумілі сутності, не спричиняючи непридатність документа.

Відновлення після помилок в відмовостійких системах можна характеризувати як прогін (англ. roll-forward) або відкіт (англ. roll-back). Коли система визначила, що сталася помилка, відновлення прогоном виправляє поточний стан системи до можливості продовження роботи. Відкочування повертає стан системи до деякої попередньої, вірної версії, наприклад, із використанням контрольних точок, і продовжує виконання звідти. Відкочування вимагає, щоб операції між контрольними точками і станом із виявленою помилкою могли бути зроблені ідемпотентними. Деякі системи використовують обидва підходи для різних помилок або для різних частин однієї помилки.

В межах окремої системи, відмовостійкість може бути досягнута очікуванням виняткових умов і побудовою системи, що могла б упоратись із ними, і, загалом, метою для самостабілізації є система, що сходиться в напрямку до стану без помилок. Однак, якщо наслідки збоїв системи є катастрофічними, або ціна побудови достатньо надійної системи занадто висока, найкращим рішенням може бути деяка форма дублювання. В будь-якому випадку, якщо наслідки збою катастрофічні, система має бути спроможною використати реверсію, щоб повернутися до безпечного стану. Це подібно до відкочування, але може бути зроблене людиною, якщо вона присутня в процесі.

Вимоги до відмовостійкості[ред. | ред. код]

Відмовостійка система має:

  1. Мати більш ніж одну точку відновлення (наприклад, перехоплення керування при відмові може бути виконано одним з двох серверів)
  2. Локалізація пошкоджень у пошкодженому компоненті
  3. Обмеження розповсюдження несправності
  4. Доступність режимів реверсії

Додатково, відмовостійка система характеризується в термінах планових і позапланових перерв в роботі служби. Зазвичай ця величина вимірюється саме на застосунковому рівні, а не на рівні апаратного забезпечення. Ця характеристика зветься доступністю і виражається у відсотках. Наприклад, система п'яти дев'яток статистично забезпечує доступність на рівні 99.999%. Відмовостійкі системи зазвичай базуються на концепції надлишковості.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]