Откуда берутся цифры на странице «о нас»
Теперь в верхней части страницы «О сервисе» расположены шесть цифр: людей онлайн прямо сейчас, посетителей вчера, счётчиков в использовании, стран за последние тридцать дней, доступных на выбор дизайнов и год, когда всё это началось. Все шесть берутся из работающей системы, и две из них меняются прямо во время просмотра страницы.
Это стоит объяснить, потому что то, что на такой странице называют цифрой, обычно цифрой на самом деле не является.
Откуда берётся каждая из них
Онлайн прямо сейчас — это все, кого видели на любом сайте со счётчиком за последние пять минут. Один запрос к небольшой таблице, шесть десятых миллисекунды, поэтому страница запрашивает это заново каждый раз, когда кто-то её открывает.
Посетителей вчера — это число уникальных посетителей по всем счётчикам за весь вчерашний день. Именно вчера, а не сегодня, потому что цифру за полдня не с чем сравнивать. Одиннадцать миллисекунд, тоже запрашивается при каждом обращении.
Счётчиков в использовании и стран — это дорогая пара. Подсчёт счётчиков, зафиксировавших хоть что-то за последние тридцать дней, занимает чуть меньше девяти десятых секунды на этом оборудовании; подсчёт уникальных стран — две десятые. Запрашивать любое из этих двух значений при каждом просмотре страницы означало бы тратить секунду времени базы данных на цифру, которая между посещениями меняется от силы на единицу. Поэтому они вычисляются раз в день и хранятся в небольшом файле рядом с кодом.
Дизайнов — берётся из того же файла, который формирует галерею, поэтому это число не может разойтись с тем, что реально доступно для выбора, — сейчас это 691. 2006 — год самого старого счётчика, всё ещё остающегося в таблице. 18 ноября, если нужен точный день.
Счётчики в использовании, а не счётчики, созданные когда-либо
Это тот самый случай, когда тот, кто управляет сервисом, сам выбирает, что сказать, — так вот, какой выбор сделан здесь.
С 2006 года было выдано 379 174 номера счётчиков. 2 124 из них зафиксировали посещение за последние тридцать дней. Первое число больше, и оно тоже верно, — оно описывает архив. Второе описывает то, что реально работает. Именно второе число показано на странице, а подпись под ним поясняет, какое из двух это число.
Две небольшие детали такого подхода
У этой закешированной пары есть дата, для которой она была вычислена. Когда эта дата перестаёт быть сегодняшней, страница пересчитывает значения — и записывает новую дату до начала пересчёта, а не после. Иначе два человека, открывшие страницу в одну и ту же секунду после полуночи, оба запустили бы медленные запросы, а на машине, где у каждого открытого соединения свой процесс, это превращается в медленную страницу для всех остальных.
Если запрос не удаётся, плитка исчезает, а не показывает ноль. Ноль был бы утверждением.
Остальная часть страницы
Она была переписана одновременно с этим: что счётчик представляет собой на самом деле, что попадает на страницу статистики, что происходит с данными посетителя, честное сравнение с обычным скриптом аналитики и вопросы, которые нам присылают чаще всего. Теперь она переведена на все одиннадцать языков вместо пяти.
Часть того, что раньше было на этой странице, была с неё убрана, и для этого потребовался отдельный пост.