Что нужно для UpdateTimestampsCache в файле конфигурации EhCache?
Я не могу понять точное использование UpdateTimestampsCache в ehCache? Я много гуглил, но ничего не имею, кроме приведенного ниже утверждения.
Отслеживает отметки времени последних обновлений определенных таблиц.
Но какова роль UpdateTimestampsCache в кэше второго уровня?
2 ответа
Когда вы используете кеш запросов Hibernate (то есть тот, в котором хранятся результаты запросов), он будет использовать этот кеш для хранения меток времени последних обновлений таблиц. Затем он может сравнить время последнего обновления каждой таблицы и время кэширования результата запроса. Если результат запроса был кэширован, а таблицы не изменились, можно безопасно вернуть кэшированный результат. Если, с другой стороны, произошли изменения в таблицах, задействованных в запросе, с тех пор, как результат был кэширован, мы не можем знать наверняка, что результат по-прежнему правильный, и кэшированный результат будет отброшен и вместо этого попадет в БД. Надеюсь, в этом есть какой-то смысл.
Знайте, что из-за стоимости обслуживания UpdateTimestampsCache
может быть менее эффективно использовать кеш запросов... особенно в тех случаях, когда данные в таблицах сильно меняются...
UpdateTimestampsCache
включается только в том случае, если включен кэш запросов, поскольку это явная часть аннулирования результатов кэшированных запросов. При чтении результатов кэшированных запросов UpdateTimestampsCache
проверяет временную метку, кэшированную с результатами запроса, против временных меток всех таблиц, которые он использует, чтобы определить, являются ли результаты все еще действительными. Так что если UpdateTimestampsCache
обнаруживает, что временная метка таблицы новее, чем кешированная, тогда она сделает недействительными запросы кеша.