Как поменять ссылку у миллиона баннеров и не сломать сервис

Базы данных и системы хранения

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

backend-разработчики архитекторы все, кто сталкивался с массовыми изменениями пользовательских объектов

Тезисы

В интерфейсах рекламных систем пользователи часто хотят выполнять массовые операции: заменить домен в ссылках у всех баннеров, поменять UTM-метки, обновить параметры кампаний, отключить группу объектов. На уровне UX это выглядит как одна простая операция. На уровне backend и базы данных — это потенциально изменение тысяч или миллионов объектов, длительная транзакция, бизнес-валидация каждого объекта, конфликты с параллельными изменениями и риск упасть на середине.

В докладе расскажем, почему классический UPDATE ... WHERE ... плохо подходит для таких сценариев, почему простая асинхронная загрузка тоже не всегда решает проблему, и как мы пришли к модели «резиновых транзакций»: сохраняем не результат изменения, а описание операции — множество объектов, преобразование и правила применения. Дальше система выполняет операцию небольшими батчами, умеет переживать падение любого узла, вызывает существующую бизнес-логику для валидации и разрешает конфликты через снапшотинг и пропуск измененных объектов.

Доклад будет полезен тем, кто проектирует системы с массовыми пользовательскими операциями, сложной доменной валидацией и требованиями к надежности без долгих блокирующих транзакций.

Булат Гайфуллин

Яндекс.Технологии

В разработке с 2006 года.
Имеет широкий опыт в разработке и эксплуатации высоконагруженных сервисов.
Сейчас отвечает за ядро стриминговых процессингов в Рекламных технологиях Яндекса.

Видео

Другие доклады секции

Базы данных и системы хранения