Каскадный сброс кэша

При большой нагрузке на сайт (сотни и тысячи посетителей каждую минуту) остро стоит вопрос обеспечения 100% доступности. В этом случае помогает кэширование запросов различными средствами. Но при обновлении кэша необходимо гарантировать бесперебойную работу сайта, с этим может помочь каскадный сброс кэша.

Кэширование запросов

Тысячи и десятки тысяч ежеминутных запросов к сайту можно эффективно обслужить только в том случае, если каждый запрос обрабатывается моментально. Или почти моментально: максимум, несколько миллисекунд (обычно сяет идет на сотни микросекунд).

Системы управления сайтом и языки веб-программирования не рассчитаны на такую нагрузку, поэтому, особенно, при использовании баз данных время обработки одного динамического запроса (создание страницы сайта, отправка формы, выполнение действия бизнес-логики) занимает десятки и сотни миллисекунд (0,05-0,5 секунды). Это позволяет выполнять требования бизнеса в плане корректности функционирования, но не обеспечивает большую нагрузку.

Кэширование позволяет результаты выполнения запросов к сайту, которые не меняются от пользователя к пользователю, сохранить и выдавать очень быстро. Характерное время обслуживание запроса из кэша — это 100 микросекунд (0,0001 секунды). Это решает проблему большой нагрузки.

Обновление кэша

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

В этом случае необходим сброс (обновление) кэша сайта. Есть несколько популярных механизмов обновления кэша: по событию администратора (который скомандовал сбросить кэш сайта или отдельных страниц), по истечению срока кэша (например, через час или сутки после создания кэшированных страниц), при проверке актуальности информации в кэше (например, при авто-обновлении каких-либо страниц).

Каждый из указанных способов отлично работает в требуемой ситуации, но ни один не гарантирует доступность хостинга сайта (где хранятся исходные данные для кэширования) в процессе обновления кэша. Если 95% запросов к сайту обслуживаются из кэша, то при обнулении (сбросе) кэша нагрузка на хостинг может возрасти в 20 раз. Что обычно приводит к недоступности хостинга.

Каскадный сброс кэша

Для решения этой проблемы предназначен настройка Айри «Каскадный сброс кэша» (в блоке Настройки кэширования). При включенной настройке любой сброс кэша сайта (всего кэша, только страниц, кэша высокой доступности или отдельных файлов) будет проходить поэтапно. Сначала будет сброшена (удалена в кэше) малая часть записей, через некоторое время — другая малая часть, и т.д. В течение 10-20 минут весь кэш сайта будет сброшен, а хостинг не получит «ударной» нагрузки, и будет в состоянии обслужить все запросы пользователей.