2016-02-02 3 views
0

Я использую hibernate второго уровня кэширования с ehcache в памяти, и он медленный. Я имею в виду, что не медленнее, чем SQL, но не очень быстро или с быстрой базой данных на SSD. Фактическое увеличение скорости меньше, чем в 2 раза, а иногда и незаметно.hibernate кеш второго уровня медленный

кажется, что другие имеют те же проблемы, но ответа не получил: http://forum.spring.io/forum/spring-projects/data/44353-hibernate-second-level-caching-slow-no-really-slow https://forum.hibernate.org/viewtopic.php?t=985913

После некоторого профилирования, кажется, что спящий режим всегда де/повторно увлажняют элементы кэша, а не непосредственно их хранения, что приводит к этой ужасной работе (в 100 раз по сравнению с прямым использованием ehcache).

Итак, мои вопросы:

  • Может зимовать хранить и восстанавливать кэшированные объекты непосредственно?
  • Есть ли другой способ ускорить кеш второго уровня?
  • Существует ли относительно простой альтернативный механизм для быстрого кэширования спящего режима?
+0

Поскольку вы задаете три вопроса, по которым вы должны спрашивать только одного, вы сразу ставите этот вопрос на «слишком широкую» территорию. Stackoverflow - это задание одного вопроса за раз, подумайте о его разделении или сужении до того, что вы действительно хотите знать. Скорее всего, это будет связано с проблемой производительности кэша Hibernate. Начните с более конкретной информации о том, какую версию Hibernate вы используете. – Gimby

+0

Ну, суть вопроса: «Я хочу быстрее кэшировать». Если любой из трех вариантов выполним, я буду удовлетворен. –

+0

Я думаю, что это точка прыжка: «менее чем в 2 раза». Как кто-нибудь может это решить, не зная, что делает ваша заявка? Можете ли вы привести пример или контрольный показатель, который напоминает тот же шаблон доступа, что и ваше приложение? – cruftex

ответ

1

Может ли спящий режим хранить и восстанавливать кешированные объекты напрямую?

Нет, это невозможно, поскольку это означало бы, что параллельные сеансы будут использовать одни и те же экземпляры объектов, тем самым наступая друг на друга.

Есть ли другой способ ускорить кеш второго уровня?

Возможно, есть тысячи способов ускорить его. Большинство из них зависят от конкретных требований вашего приложения.

Есть ли относительно простой альтернативный механизм для ускорения спящий режим кэширования?

Нет, по крайней мере, на данный момент.