Стендбай в бою: масштабируем приложение в топ-2 мировом классифайдеБазы данных
Главный архитектор X5 FoodTech.
EX DBA Unit Leader Avito.
Активно участвует в жизни PostgreSQL community.
В данном докладе я хочу поделиться опытом Авито, полученным за годы эксплуатации бинарной репликации и стендбаев. Мы многое переосмыслили, разработали свои подходы и техники, планы восстановления после аварий в распределенных системах.
Первая часть о подходе для горизонтального масштабирования с помощью репликации. Это может быть очень эффективно и не требует больших трудозатрат, но есть нюансы и вызовы, требующие решения. Для некоторых приложений возникновение stale reads допустимо и это ок, я же хочу рассказать о паттерне для систем, где stale reads недопустимы, и нашей имплементации.
Вторая часть выступления — о подводных камнях, о которых многие даже не подозревает, а другие принимают все риски. Речь пойдет о различных кейсах, которые могут привести к деградации вашего приложения и способах решения, а именно:
* высокий уровень TPS;
* применение DDL;
* отправка большого кол-ва WAL-файлов в архив и восстановление из архива;
* и др.
Расскажу про использование пула стендбаев и переключения запросов между ними. Также о планах восстановления после аварий для приведения в согласованное состояние мастера, стендбаев и архива.