2011-02-16 3 views
2

Рассмотрите базовый метод кэширования: вы просматриваете ключ в кеше, если его нет, вы отправляете его из основного постоянного хранилища. Значение истекает, если кеш заполнен другими значениями или если TTL проходит.Имеет ли этот тип схемы кэширования имя?

Теперь рассмотрите небольшую альтернативную версию кеша: вы просматриваете ключ, если его нет, вам нужно его получить, ничего нового здесь. Но что, если вы просматриваете ключ, и значение истекло из-за TTL, но вместо этого вы возвращаете это устаревшее значение и асинхронно обновляете значение, чтобы следующий запрос уже видел новое значение (и TTL соответственно сброшен)?

Имеет ли эта схема кэширования имя? У нас есть какие-то недостатки, которые мы упускаем?

+0

Это LRU с увеличенным сроком службы/ранним обновлением. (Вместо того, чтобы обновлять значение, когда TTL достигает 0, можно увидеть проблему как ввод записи с TTL + x вместо этого и обновление, когда TTL достигнет x, прежде чем окончательно исчезнет на 0.) – user611775

ответ

1

Я не знаю, что это имя, но мы, конечно, использовали схему, в которой данные кэшируются до N минут, но через N/2 минуты в фоновом режиме создается поток для обновления данных.

Хорошо, если: A) вычисления дороги, и B) вы не можете, абсолютно, ждать свежих вычислений.

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

Смежные вопросы