Не только веб-интерфейс был недоступен, но не работал 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”.
Когда базы данных были восстановлены и первоначальная причина сбоя устранена, тогда начали постепенно подключать пользователей.
Сейчас автоматическая система проверки настроек полностью отключена. Программисты размышляют над её новым дизайном, чтобы избежать возможных зацикливаний.

