Hibernate распределенные опции кэша 2-го уровня - PullRequest
3 голосов
/ 28 мая 2010

Не совсем вопрос, но я ищу комментарии / предложения от любого, кто имеет опыт использования одного или нескольких из следующих:

  • EhCache с RMI
  • EhCache с JGroups
  • EhCache с терракотой
  • Сетка данных Gigaspaces

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

Относительно первого варианта - есть ли какие-либо опасения по поводу издержек RMI и производительности сериализации Java?

Ответы [ 2 ]

3 голосов
/ 03 июня 2010

Также проверьте Hazelcast , Coherence и GemStone . Это распределенные решения для кэширования с поддержкой запросов. У них также есть готовый плагин кэша второго уровня для Hibernate. Hazelcast с открытым исходным кодом.

2 голосов
/ 29 мая 2010

Я работаю с EhCache для Hibernate и для кэширования на уровне приложений 3 года назад. Мы используем его с RMI для аннулирования кэша, и он работает очень хорошо. Если вы используете кеш для репликации, вы должны позаботиться о графе объектов, он может стать очень тяжелым с высокой степенью кардинальности.

Если вы используете EhCache для Hibernate, вы можете использовать его для кеша запросов (это хорошее улучшение для таблиц только для чтения), и если таблица модифицируется, она автоматически очищает кеш. Использование EhCache для кэширования коллекций также является хорошей идеей, чтобы избежать объединений для подвыборов.

Для очистки кешей через определенные промежутки времени вы можете реализовать расширение EhCache, которое очищает кеш. Мы сделали это хорошо работает.

С уважением, Джонатан.

...