Tracker Lab
Tracker Lab
@tracker_lab

Sharding трекера: как не уронить сбор конверсий, когда объём упирается в один сервер

Sharding трекера: как не уронить сбор конверсий, когда объём упирается в один сервер

Когда один инстанс начинает тянуть и клики, и конверсии, и отчёты, узкое место обычно не в CPU. Чаще ломается связка: база, очереди, запись логов и внешние callback'и.

Рабочая схема — разделить контур по функции:
— write-path: приём клика, postback, запись в БД
— read-path: отчёты, фильтры, API-выгрузки
— async-path: тяжёлые события, дедуп, отправка наружу

Не смешивай всё в одной базе без лимитов. Для hot tables держи короткие индексы, отдельно выносишь агрегации и чистку мусора. Если отчёты начинают тормозить запись, значит read-path уже съедает write-path.

На практике sharding лучше делать не “по красоте”, а по предсказуемому ключу: GEO, project_id, offer_id или hash от click_id. Главное — чтобы один запрос всегда попадал в один shard, а не прыгал между ними. Иначе получишь дорогую маршрутизацию и сложную отладку.

Перед переносом обязательно проверь: где хранятся дедуп-ключи, как идут S2S retry, есть ли idempotency на postback, и что будет при partial failure. Если shard недоступен, система должна деградировать в read-only или буферизацию, а не терять конверсию.
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.