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