Кеш заполнен под завязку, и когда в него нужно положить что-то новое, кто-то должен уступить место. Самый распространённый способ решить, кому именно, — LRU: выкидывать то, к чему дольше всего не обращались. Логика звучит убедительно, пока в систему не прилетает один тяжёлый разовый запрос — например ночной аналитический отчёт, — который вычищает из кеша все данные, нужные тысяче обычных пользователей прямо сейчас. Разберём, как LRU устроен на самом деле, почему в этом сценарии он не ломается, а действует строго по своим правилам, и какие есть более…
Подробнее →