Архитектура каванги

Нарисованная схема сильно упрощена.

Все, что мы видим в интерфейсе, берется из базы данных. Любые изменения, которые мы вносим, также попадают именно в базу, уже оттуда попадают в движок.

cache - это филиал базы данных, по сути там содержится то же самое, что и в основной базе, но только та часть, которая необходима для показа баннеров. Кеш устанавливается в единственном экземпляре на каждый компьютер, если компьютеров несколько, кеши синхронизируются между собой - кто сколько и чего показал. Это необходимо для выполнения ограничений по количеству показов.

Интерфейс меняет базу данных и отправляет кешу сообщение, что ему надо обновиться. Кеш связывается с базой, и получает оттуда новые настройки.

fcgiexp - процесс, который выбирает баннер для показа, в соответствии с настройками. Он активно взаимодействует с кешем, после того, как баннер показан, меняет значение счетчика и записывает отчет о показе в лог. Главная задача этого процесса - собрать о посетителе побольше информации, поэтому перед тем, как обратиться к кешу, fcgiexp запрашивает уникальный сервер, что нам известно об этом юзере.

fcgievent обрабатывает клики и события. Ему в чем то проще, потому что не надо ничего выбирать, известно, на какой баннер кликнули или где случился эффективный показ. Ответ посетителю всегда однозначен. После того, как ответ посетителю отдан, клик (или событие) проверяется на валидность (опрашивается uuserver), затем меняется значение счетчика и записывается строчка в лог.

Раз в минуту движок записывает в базу данных свежие значения счетчиков. Это значит, что информация об идущих показах появляется в интерфейсе быстро, но не мгновенно.

Ежечасно накопленные логи забираются со всех фронтов, и передаются на кластер, который находится в офисе, и занимается вычислением отчетов. Посчитанные отчеты закачиваются все в ту же базу данных, и становятся доступны в интерфейсе.

UUserver хранит индивидуальные данные о посетителях, в первую очередь о количестве сделанных показов, кликов итд. Кроме того, там же хранится соцдем посетителя, если есть, и список ретаргетинговых кампаний для каждого индивида. Он же, в большинстве случаев, этот список сам и вычисляет.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: