- I think it is pretty robust. Doesn't break.
- A very sophisticated failover logic. Data rarely gets lost.
- Highly configurable depending on how frequently and quickly data needs to be retrieved.
- I can't really come up with too many flaws, but possibly a bit expensive considering there are good open source caches like Ehcache.
- Fast in-memory cache.
- Load balancing in clustered configuration.
- Flexibly configurable.
- Easily interacts with database.
- Configuration difficulties (because of flexibility I suppose).
- Weak logging (hard to trace and resolve problems).
The best case is when you have a huge amount of static (rarely changed) data. For example if you have end of day calculations you can load all static data into the cache and operate them.
The inappropriate case from my point of view is to put data in the cache and ask it to sync that data to a database.
- Distributed in memory data managment. Your data is near your data manipulator or calculator engine.
- Write behind, read through, write through concept.
- Fault tolerance and scalable.
- Continueous query, live events, map reduced aggregiation, extend client are few of the very good features I have used.
- Real time monitoring - Java console using JMX manageable node is not quite friendly.
- Security is not by default, we need to implement it.
- Real time troubleshoot needs to improve.
Oracle Coherence is well suited where data oriented timely real time calculation is required. Coherence not appropriate if your data is off of heterogenous objects and you need proper persistence media (like database).
My key question to ask for selection is how big of a data object you will be caching in each node? Do these data objects have any particular format or pattern?
Oracle Coherence Scorecard Summary
Feature Scorecard Summary
About Oracle Coherence
Oracle Coherence Technical Details