Где кэшировать: кэш базы данных или сервер приложений с использованием управляемых компонентов SessionScoped? - PullRequest
0 голосов
/ 31 марта 2011

Я создаю веб-приложение, используя Casssandra DB и Java с JSF 2.0 .

Cassandra имеет свой собственный уровень кэширования, а также я могу кэшировать, используя SessionsScoped управляемые bean-компоненты в JSF. Я хотел бы знать, что было бы хорошим способом реализовать кэширование данных разных типов: данные для кэширования иногда довольно велики по размеру для 1 вида, а иногда - небольшого размера (2-й вид).

Так как столбцы кэшированных данных в строке Cassandra будут хранить данные в сериализованном формате и со всей структурой столбцов, я думаю, мне было бы лучше хранить их на сервере приложений в компонентах сессионной области, поэтому я также могу лучше контролировать кэшированные данные и кэшированные данные могут быть наиболее важными, и я думаю, что это не имеет никакого значения с точки зрения требований к оборудованию в 2 случаях: - (1) когда я реализую его с помощью сессионных компонентов (2), если я использую кэш БД.

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

1 Ответ

2 голосов
/ 31 марта 2011

Не (ab) использовать область сеанса в качестве кэша для больших наборов данных. Вы в основном дублируете кеш для каждого посетителя. У вас должен быть один кеш. Кэш БД в порядке.

Что касается размера данных, у вас должен быть эффективный запрос или просмотр bean-объекта области видимости, который содержит точно данных, которые должен знать конечный пользователь в конкретном запросе. Например. когда вы отображаете набор данных из 1000 объектов посредством разбивки на страницы с 10 объектами на странице, тогда компонент в области запроса должен содержать именно эти 10 объектов, а остаток должен храниться там в кэше БД / БД. Код также должен быть написан так, чтобы он извлекал именно эти 10 объектов (и, таким образом, не извлекал 1000 объектов, а затем отфильтровывал нужные 10 из них).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...