Комментарии 6
сто миллисекунд
А откуда это ограничение? от ssp?
А кэшей там никаких нельзя прикрутить? Или смысла нет если в 100 мс все равно укладываешься...
Насколько я понимаю, кэши все таки хранят не полные данные, а только самые горячие. Поэтому в DSP в кэшах хранится либо то, что маленькое и постоянно обновляется (типа счетчиков кампаний), либо то, что можно хранить только частично – типа всяких айдишников пользователей и сегментов дата-таргетинга, которые можно себе позволить какие-то пропускать. А вот со списком рекламных кампаний такое не прокатывает – нужны обязательно все кампании. Это же прям разные рекламодатели, у каждой кампании свои цели – и если чью-то кампанию мы выкинем чтобы кэш освободить – это буквально будут выкинутые деньги.
Поэтому список кампаний хранится в in-memory хранилищах
Просто результат прошлого подбора для конкретного набора параметров поиска в виде какого-то набора кандидатов, если такой уже сформировался в прошлом, можно?
Как говорил классик "можно. а зачем?".
У DSP важные (если не основные) бизнес-требования:
максимум кампаний должны иметь возможность показаться
максимум бид реквестов должны быть утилизированы
Если начать кэшировать какие-то результаты, получается, что и поиск нужно будет только по кэшу производить, т.е. кампании которые не в кэше будут исключены из подбора. Либо если пытаться сохранять все результаты подбора то очень быстро кэш станет размером с исходную базу кампаний (ну либо чуть меньше, если существуют совсем непопулярные кампании).
А если пытаться сохранять только какие-то самые популярные подборки и искать сначала по кэшу, а потом по основному хранилищу – это получится как раз что-то близкое к индексированному поиску и деревьям.

Подбор рекламных объектов в DSP: сколько стоит найти нужный баннер за сто миллисекунд