Pull to refresh

Facebook извинился за 2,5 часа простоя

Reading time2 min
Views695
Директор программных разработок Facebook Роберт Джонсон принёс официальные извинения за то, что этой ночью им пришлось на 2,5 часа отключить Facebook от интернета. Но другого выхода не оставалось.

Не только веб-интерфейс был недоступен, но не работал API и отключились кнопки Like на 350 000 сайтах по всему интернету. Падение Facebook — большое дело. По словам Джонсона, это крупнейший даунтайм «Фейсбука» за четыре с половиной года его существования.

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

Работа этой системы заключается в поиске ошибочных настроек в кэше и замене их на новые настройки из базы (persistent store). Проблема в том, что как только в базу были внесены изменения, которые автоматическая система восприняла как неправильные — повсюду началась массовое «исправление ошибок», в результате чего кластер баз данных оказался перегружен сотнями тысяч запросов в секунду.

Даже после замены значения в persistent store поток запросов не остановился, потому что автоматическая система уже успела поудалять «неправильные» значения в кэше. Поскольку сервера не справлялись с обработкой всех запросов, то возникали всё новые «неправильные» значения в кэше, которые порождали очередные запросы. Процесс зациклился: “We had entered a feedback loop that didn’t allow the databases to recover”, — говорит Роберт Джонсон.

Чтобы разорвать круг запросов, пришлось прибегнуть к болезненной процедуре: блокировать весь трафик к кластеру баз данных, то есть полностью отключить Facebook от интернета. Юзеры вместо сайта видели “DNS error”.

Когда базы данных были восстановлены и первоначальная причина сбоя устранена, тогда начали постепенно подключать пользователей.

Сейчас автоматическая система проверки настроек полностью отключена. Программисты размышляют над её новым дизайном, чтобы избежать возможных зацикливаний.
Tags:
Hubs:
Total votes 72: ↑59 and ↓13+46
Comments46

Articles