Уровни кэширования: от CPU до CDN
Как кэши выстраиваются от L1/L2/L3 через RAM, кэши приложений и CDN — и зачем нужен каждый уровень.
тема 10
Слои, инвалидация, защита от stampede, ETag.
Как кэши выстраиваются от L1/L2/L3 через RAM, кэши приложений и CDN — и зачем нужен каждый уровень.
Стратегии вытеснения устаревших записей — TTL, event-driven purge, write-through, write-behind — и почему ошибка здесь портит состояние пользователя.
Почему одно истечение TTL превращает горячий ключ кеша в flash-DDoS против origin, и четыре механизма — локи, single-flight, XFetch и stale-while-revalidate — удерживающие БД в живых.
Как entity-теги включают conditional GET — сервер возвращает 304 Not Modified при неизменном контенте, экономя трафик и снижая задержку.
Директивы — max-age, s-maxage, no-store, stale-while-revalidate — которые говорят каждому кэшу в цепочке, как долго хранить ответ.
Как SWR разделяет свежесть и задержку — немедленно отдаёт закэшированную версию, а затем обновляет её тихо, устраняя пик tail-latency от синхронной ревалидации.
Когда популярный ключ истекает, все параллельные запросы промахиваются одновременно и нагружают базу данных — паттерн, отличие от stampede и как mutex-блокировки и вероятностное раннее истечение его предотвращают.
Как скомпоновать CDN, reverse-proxy, кэши приложения и базы данных в единую стратегию — выбор TTL, триггеров инвалидации и путей отказа, которые выдержат реальный трафик.
Каждый юнит, от под землёй до орбиты. Кеширование — одно созвездие в атласе; одолей следующую тему и оно загорится рядом.