Я когда-то был частью команды, которая написала собственный рекламный сервер, который предъявлял те же требования: отслеживать количество обращений на документ и что-то делать, когда они достигают определенного порога. Этот сервер будет питать существующий очень большой сайт с большим трафиком, и масштабируемость была реальной проблемой. Моя компания наняла двух консультантов Doubleclick, чтобы выбрать себе мозги.
Их мнение таково: самый быстрый способ сохранить любую информацию - записать ее в пользовательскую директиву журнала Apache. Поэтому мы создали сайт, на котором каждый раз, когда кто-то нажимал на документ (объявление, страница и т. Д.), Сервер, который обрабатывал запрос, записывал в журнал оператор SQL: «INSERT INTO impression (метка времени, страница, ip и т. Д. ) VALUES (x, 'path / to / doc', y и т. Д.); " - все выводится динамически с данными с веб-сервера. Каждые 5 минут мы собирали эти файлы с веб-серверов, а затем по одному выгружали их в основную базу данных. Затем на досуге мы можем проанализировать эти данные, чтобы сделать все, что нам нравится.
В зависимости от ваших точных требований и настроек развертывания, вы можете сделать что-то подобное. Вычислительное требование, чтобы проверить, превышаете ли вы определенный порог, все еще, вероятно, еще меньше (догадываясь здесь), чем выполнение SQL для увеличения значения или вставки строки. Вы можете избавиться от обеих накладных расходов, регистрируя попадания (в специальном формате или нет), а затем периодически собирать их, анализировать, вводить в базу данных и делать с ними все, что вы хотите.