powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема при одновременном обновлении ячейки кеша в hibernate
3 сообщений из 3, страница 1 из 1
Проблема при одновременном обновлении ячейки кеша в hibernate
    #34099298
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Пытался использовать ehCache и osCache в hibernate, но проблема одна и та же. При устаревании ячейки hibernate-кеша происходит много обращений к базе до тех пор, пока для первого потока запрос (CriteriaQuery) не выполнится и результат не будет положен в кеш.


Хотелось бы, чтобы после устаревания ячейки кеша, пока первый пользователь выполняет запрос для этой ячейки, остальные пользователи ожидали момента обновления этой ячейки, или получали старое значение ячейки (а не выполняли точно такие же запросы). Тогда бы сайт не тормозил бы на несколько десятков секунд каждые 5 минут.

Можно ли так настроить кеш в hibernate?

Всем заранее спасибо!

P.S.: Пример.
Я использую хибернейт на сайте с большим количеством одновременных пользователей (несколько десятков) и тяжелыми запросами (до секунды). Expiration время кеша установлено на 5 минут. Поэтому раз в 5 минут кеш устаревает, а так как пользователи открывают страницы сайта одновременно, для каждого из них происходит пересчет страницы. И, соответственно, выполняются одни и те же запросы к базе до тех пор, пока для первого пользователя запрос не будет выполнен и не положен в кеш. Поэтому все пользователи очень долго ожидают загрузки страниц каждые пять минут.

P.P.S.:
Что я делал в ehcache:
Пытался использовать BlockingCache и SelfPopulatingCache, но, судя по всему эти виды кешей можно использовать только для кеширования своих объектов, а в hibernate эти виды кешей не поддерживаются.

Что я делал в oscache:
В oscache.properties указывал cache.blocking=false и cache.blocking=true, но в обеих случаях паралелльные потоки выполняли запросы к базе параллельно.
...
Рейтинг: 0 / 0
Проблема при одновременном обновлении ячейки кеша в hibernate
    #34099647
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. у hibernate 2 кэша, вы, видно, про 2nd level говорите?

2. может стоит оптимизировать ваши запросы к БД? Настраивать сервер БД и искать другие узкие места

ЗЫ кэш тут, на первый взгляд, непричем
...
Рейтинг: 0 / 0
Проблема при одновременном обновлении ячейки кеша в hibernate
    #34099664
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может ввам оптимизировать запросы выгрузки???
join fetching ???
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема при одновременном обновлении ячейки кеша в hibernate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]