Во-первых, в статье подразумевается (хоть и не говориться), что у вас не будет "простоя" в запросах на величину ttl запасного, иначе оба кеша могут быть сброшены. А так логично. Основной кеш инвалидируется каждый час (как бы мы должны его инвалидировать), предположим там лежит X, как и в запасном. Хотя в базе, например уже Y. Суть подхода, что в момент инвалидации кеша первым запросом перезаписать основной кеш опять же на X из запасного, остальные запросы будут получать этот X ещё некоторое время, пока первый не выполнится до конца. Он выполняется - и только тогда основной и запасной получают Y.
Получится такая цепочка ответов во времени: X X X X X X |сбросился основной кеш| Y (это долговыполняющийся запрос) X X X X |здесь выполнился долгий запрос и только отдался ответ| Y Y Y Y
P.S. спасибо за сылку на статью