Oracle Coherence Caching и загрузка ЦП сервера приложений - PullRequest
3 голосов
/ 11 марта 2012

Мы начали внедрять Coherence в нашем приложении, чтобы повысить производительность и снизить нагрузку на сервер БД и уменьшить количество вызовов веб-служб.

Обычно мы испытываем высокую загрузку ЦП (JVM сервера веб-приложений) при высокой нагрузке на серверах БД.Как правило, это не проблема.

Кроме улучшения времени отклика, Как oracle Coherence улучшит использование ЦП и кучи сервера приложений при высокой нагрузке.

1) уменьшит обработку XML, так как мы начнем извлекать JavaОбъекты из кэша, которые готовы к использованию, вместо того, чтобы разбирать XML-файлы.

2) уменьшают накладные расходы на отображение ORM, поскольку мы не будем отображать строки таблицы в объекты для кэшированных данных ... 3)Что еще?

Большое спасибо

1 Ответ

2 голосов
/ 12 марта 2012

Отказ от ответственности - я работаю в Oracle на Coherence.

Предполагая, что загрузка ЦП переходит на маршалинг XML, вы должны увидеть снижение загрузки ЦП, поместив полученные объекты в кеш. Вы по-прежнему будете платить ЦП за сериализацию, но для сериализации объектов требуется гораздо меньше ЦП - и если вы используете POF для сериализации, вы увидите еще лучшую производительность.

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

С Coherence вам не нужно выбрасывать ORM - вы можете написать CacheStore (или использовать JPA CacheStore, поставляемый с OOTB) для прозрачного чтения из базы данных при пропадании кэша и обновления базы при обновлении кэша. , Это работает лучше всего, если вы извлекаете объекты ORM через первичный ключ.

Без более подробной информации о том, что именно занимает ЦП (дампы потоков - хороший низкотехнологичный способ диагностировать это), трудно сказать, насколько кеширование поможет.

...