Oracle Coherence Caching and Application Server CPU Usage
We started implementing Coherence in our application to improve performance and reduce the load on the DB server and reduce web service calls.
Generally, under high load, we often use high CPU usage (weblogic App Server JVM), DB servers are usually not a problem.
In addition to improving response times, how would oracle Coherence improved the CPU and heap utilization of the application server during high load.
1) reduce XML processing as we start fetching Java objects from the cache that are ready to use, instead of discarding the XML token.
2) reduce ORM overhead since we won't map table rows to objects for cached data .... 3) What else?
Thank you so much
source to share
Disclaimer - I work for Oracle for compatibility.
Assuming the CPU is being used for XML marshaling, you should see a decrease in CPU consumption by putting the resulting objects in the cache. You will still pay CPU for serialization, but object serialization takes much less CPU resources, and if you use POF for serialization, you will see even better performance.
If there is any proximity to where the objects are being used, you can take advantage of near-caching to avoid going to the network to fetch cached objects. This will help if you do more reads than writes.
With Coherence, you don't need to throw away the ORM - you can write a CacheStore (or use the JPA CacheStore we ship with OOTB) to transparently read from the database on cache miss and update the database when the cache is refreshed.This works best if you fetch ORM objects via primary key.
Without more information on what exactly is CPU consumption (dump streams are a good low-tech diagnostic tool), it's hard to say how much caching will help.
source to share