Эволюция PostgreSQL-хранилища размещений в Авито
Что делать, если сервис, который вырос из транзакции в монолите, за несколько лет стал входной точкой во все размещения на Авито? Когда через PostgreSQL проходят миллионы объявлений в день, привычные приёмы вроде «подождём, пока освободится блокировка» перестают помогать справляться с нагрузкой. А DELETE FROM больше не удерживает рост таблицы на диске.
Эта статья — ретроспектива развития продукта Listing Fee. В ней Евгений Константинов, backend-инженер Авито, рассказывает, как вместе с командой справлялся с ростом нагрузки и объёма данных без шардирования, а ещё про инциденты, дедлоки и «аварии первого числа», из-за которых критичные бизнес-сценарии оказывались недоступны. Материал подготовлен по мотивам выступления на Saint HighLoad++ 2025 — с разбором проектных ошибок, технических решений и приёмов, которые иногда спасали буквально одним запросом.
Читать далее