Архитектура системы
Основным вычислительным элементом в кластере AdRiver является алгоритмический модуль. Каждый такой модуль обладает собственной реплицированной базой данных баннеров, а также алгоритмами выбора, которые с ней работают. При каждом показе база модифицируется, но за счёт механизма репликации на всех алгоритмических модулях она постоянно поддерживается в одинаковом состоянии. Алгоритмические модули поддерживают функцию «горячего» подключения, это позволяет наращивать вычислительную мощность без остановки кластера и его переконфигурации.
Каждый запрос на показ баннера, кроме обработки одним из алгоритмических модулей, обрабатывается также несколькими серверами, среди которых находятся сервер географической базы данных и сервер базы уникальных пользователей, с которыми все алгоритмические модули соединены отдельными информационными каналами. Информация из этих баз используется для обеспечения географического таргетинга при показе баннеров, а также для учёта числа показов каждого баннера одному и тому же пользователю. Эти группы серверов тоже имеют масштабируемую архитектуру, но в отличие от алгоритмических модулей, где распределение вычислений происходит за счет репликации кода, в географической базе и базе уникальных пользователей применяется метод фрагментации данных.
Архитектура географической базы поддерживает репликацию фрагментов. Фрагментация необходима для повышения производительности и для обхода ограничений производительности отдельного компьютера. Фрагментированные данные могут быть реплицированы. Это позволяет увеличить производительность за счет параллельной обработки запросов к каждому из фрагментов данных, а также повышает надежность благодаря резервированию данных.
Таким образом, каждый запрос параллельно обрабатывается на нескольких серверах: на одном специализированном HTTP-сервере, алгоритмическом модуле, географическом сервере, сервере уникальных пользователей и других.
В результате обработки запроса серверами, выдаётся ссылка на баннер, хранящийся на одном из серверов-зеркал. Каждый сервер-зеркало хранит все баннеры всех пользователей AdRiver. Большое число серверов-зеркал, расположенных в разных сетях, позволяет исключить ситуацию с невозможностью показа баннера. AdRiver хранит и отдаёт данные в кодировке Windows-1251 (CP1251).
Кластер AdRiver включает в себя более 40 серверов. Все сервера AdRiver используют платформу Intel и работают под управлением ОС Gentoo Linux собственной сборки. Применяемое программное обеспечение, включая базы данных, полностью разработано в группе компаний Internest. Большинство программных модулей AdRiver работает на 64-х битной архитектуре, что позволяет добиться максимальной производительности.