Накладные расходы на использование кэша когерентности - PullRequest
1 голос
/ 27 мая 2011

Я считаю кеширование списков ключей-значений, хранящихся в базе данных. Прямо сейчас для рендеринга страниц JSF выполняется множество избыточных запросов, чтобы найти имена, отображаемые для некоторых ключей (O / R-Mapper: Eclipselink). Значения являются квазистатическими, но могут очень редко изменяться при использовании приложения (никаких изменений в базе данных, кроме рассматриваемого приложения).

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

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

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

Я говорю о 50 000 пар ключ-значение, в основном короткие строки.

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Если аннулирование настолько редкое, то вы можете использовать локальный кеш и что-то вроде темы JMS, на которую подписываются все, для обработки аннулирования.

Существует также что-то вроде EHCache в качестве альтернативы, так как это OSS и свободно использовать против Coherence, если это важно. Мне нравится использовать способность EHCaches тянуть через.

1 голос
/ 14 февраля 2014

Coherence имеет относительно низкие накладные расходы и может легко управлять 50 000 (или 50 000 000) объектов.Однако, если ваш вариант использования очень прост, и вы не возражаете против того, чтобы самостоятельно выполнять работу по аннулированию, и вам не нужны различные QoS, которые предоставляет Coherence, то это, вероятно, излишне.

Кроме того, это простоСлучай использования может быть легко реализован с помощью Coherence Standard Edition, который гораздо дешевле (лицензируется на сервер, а не на процессор, и это намного дешевле).

Ради полного раскрытия информации,Я работаю в Oracle.Мнения и взгляды, выраженные в этом посте, являются моими собственными и не обязательно отражают мнения или взгляды моего работодателя.

...