Der CollabDocdenburg: Постмортем одного инцидента в Fibery

ЭТО ВОВА В ЧЕТВЕРГ
  • Коллаб — сервис коллаборативных документов в Fibery
  • Вова — разработчик Коллаба
  • Андрей — друг Вовы (тоже разработчик, но ядра)
  • Балансер — неизвестно как устроенный кусок чего-то

БЕСПЕЧНЫЙ ВТОРНИК

ПЫЛАЮЩАЯ СРЕДА

  • в балансере коллаба застряло порядка 1.5 миллиона записей
  • очистка обработанных записей в базе балансера занимает порядка минуты на батч из 100

ЧУДОВИЩНЫЙ ЧЕТВЕРГ

Причины пиздеца

  • накопление коллабом + балансером миллиона сообщений для разгребания. Почему так произошло непонятно. По логам видно, что в 3:30 ночи 27 апреля база балансера встала колом. Причём произошло это скачкообразно и по логам не связано с пиками нагрузки на коллаб сервис. Нужна экспертиза Ильи.. возможно инфраструктурная проблема, сбой автовакуума.
  • пухнущая очередь у C2F. Тут гипотеза следующая — в результате, секуризации fibery типов (fibery/view, …) кол-во ентитей типа fibery/access-group возросло примерно на 100. Это могло повлиять на окончательное проседание производительности запроса за доступом в ядро, выполняющимся в обработчике сообщений C2F, что окончательно убило скорость разгребания сообщений.

Проблемы

  • дублирующиеся нотификации. Сделать ничего уже нельзя.. репутационный импакт. Надеемся на дипломатические навыки Полины и Миши.
  • дублирующиеся бэкрефы — Вова сделает реиндексацию, должны исчезнуть. Пока дипломатично обещаем жалующимся.
  • баг в ядре, приводящий к неэффективному плану выполнения запроса, отправленного C2F. В итоге, запрос обваливался по таймауту, и C2F наивно начинал его ретраить с надеждой на опционы лучшее будущее. В результате, забуксовала логика обработки сообщений от всех акков.

Action Points

  • изучить гарантии, предоставляемые балансером!!!
  • дублирующиеся нотификации → идемпотентность операции отправки нотификации
  • дублирующиеся бэкрефы → миграция-убийца дубликатов + upsert бэкрефа?
  • пофиксить баг в ядре + не ретраить в C2F на таймаут + очертить логику работы в C2F с ошибками для сужения их импакта

--

--

--

Fibery founder https://fibery.io. I write about systems, software development and products.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Michael Dubakov

Michael Dubakov

Fibery founder https://fibery.io. I write about systems, software development and products.

More from Medium

Patr vs Vercel — A Comparison

5 best practices for building cloud-native permissions

IBM Cloud DevSecOps ToolChains

Deployment Methodologies with GitLab — Blue/Green