HighLoad++ 2015 завершён! Ждём вас в 2016 году!

Профессиональная конференция разработчиков высоконагруженных систем

2 и 3 ноября 2015 Крокус-Экспо МОСКВА
Профессиональная конференция разработчиков высоконагруженных систем

RTB DSP на языке Go: укрощение buzzwords
Узкотематические секции: видео, поиск, RTB, биллинги

Доклад принят в Программу конференции
AnchorFree

Golang евангелист и разработчик в компании AnchorFree. До того — CTO в разнообразных стартапах, руководитель проектов, IT-консультант, фрилансер. В сфере IT c 1990 года. С 2000 года консультирует разнообразные интернет-стартапы по вопросам построения эффективных и безопасных серверных систем.

Тезисы

RTB и его проблематика должны быть знакомы участникам конференции - мало кто сегодня не слышал об этом способе получить много krps с жесткими ограничениями на время генерации ответа.

Вот и компания Qmobi решила поучаствовать в этой гонке и отхватить свой кусок пирога под названием “рынок мобильной рекламы”.

При первом подходе к снаряду задача выглядит довольно простой: вот запрос с критериями, вот база данных с ответами - выбирай по индексу и отвечай.

На самом деле все несколько сложнее. Начать с того, что некоторые критерии отбора - негативные. Затем мы имеем дело с выборкой по десятку индексов, каждый из которых обладает низкой cardinality. И, наконец, мы имеем дело с большими объемами: около 10М строк в исходных данных, около 10К строк в финальной выборке. Ах, нет, еще финальная выборка должна быть отсортирована по приоритету! И надо не забыть про атомарные блокировку и списание средств...

От идеи прототипа на perl пришлось отказаться еще на этапе постановки задачи :)

Итак, мы имеем задачу с интенсивным IO, высокой нагрузкой, высокими скоростями, сложными структурами данных и эвристическими алгоритмами.

Анализ имеющихся вариантов показал, что Go должен прекрасно подойти для этой задачи. О том, на основании каких соображений мы сделали такой вывод, и какие из этих соображений прошли проверку практикой, а какие - нет, будет рассказано в докладе.

Также в докладе будет рассказано о том, как сортировка была заменена случайной выборкой, и чем пришлось заплатить за то, чтобы эта замена оказалась равноценной.

Будет показано, почему мы наплевательски отнеслись к гипотетической потере 20% возможностей поучаствовать в аукционе, и почему реальный процент потерь много ниже.

Будет раскрыта роль СУБД MySQL в этом проекте, со всем блеском высокой производительности и нищетой отказоустойчивости.

Вопросы геотаргетинга, использования PostGIS и кэширования результатов поиска региона по координатам будут затронуты вскользь, как неоднократно обсуждавшиеся на этой и подобных конференциях.
А вот анатомия производительности приложения на Go будет рассмотрена подробнейшим образом - с графиками и числами.

Также подробно будут рассмотрены наши победы и поражения в борьбе со статистическим анализом логов, поступающих со скоростью от 1 тысячи до 30 миллионов строк в час. Отдельного внимания будет удостоен вопрос о том, что нам удалось, и что нам не удалось из этих логов извлечь.

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

Другие доклады секции
Узкотематические секции: видео, поиск, RTB, биллинги

Rambler's Top100