Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема при одновременном обновлении ячейки кеша в hibernate / 3 сообщений из 3, страница 1 из 1
02.11.2006, 00:53:01
    #34099298
Vetal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при одновременном обновлении ячейки кеша в hibernate
Всем привет!

Пытался использовать 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
02.11.2006, 09:50:04
    #34099647
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при одновременном обновлении ячейки кеша в hibernate
1. у hibernate 2 кэша, вы, видно, про 2nd level говорите?

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

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


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