I came across Oracle Coherence today. Seems like this is another approach to clustering than Oracle RAC. Here is the marketing quote from the Oracle website:
Oracle Coherence is a JCache-compliant in memory distributed data grid solution for clustered applications and application servers. Oracle Coherence makes sharing and managing data in a cluster as simple as on a single server. It accomplishes this by coordinating updates to the data using cluster-wide concurrency control, replicating and distributing data modifications across the cluster using the highest performing clustered protocol available, and delivering notifications of data modifications to any servers that request them.
Seems like this is a way to scale middle tiers that require shared data without actually using the central database for that. On the other hand, looks like a clustering framework with rules defined by developers as opposed to Oracle RAC that is designed and built to be a black box delivering database services (which it is not – otherwise why would anyone talk about RAC readiness, workload partitioning and etc.).
Perhaps, Oracle Coherence is the way to bridge shared nothing and shared everything architectures. What do you think?
How about applications that partition the data across small Oracle SE servers and merge it all using Oracle Coherence. Or, get this, what about Coherence with MySQL on the backend?
Has anyone (yeah, I’m asking developers reading the blog) played with it and knows how it feels? It’s available for Java and .NET so those of you who have some spare time on your hands – go ahead and try it. And don’t forget to share your experience with the rest of us! ;-)
I did (a few month ago) develop with Jdev and Coherence for Java… And my point of view Coherence is more something that would more compete T10 (and MySQL) than RAC and Database. But I also agree with you for most of the RAC points :
– If you develop with Coherence you should be able to move the workload from the database to the client
– If you develop with Coherence you should be able to provide a way to continue to deliver a service in case of a node/system crash
But… This also means develop with Coherence/JCache and not RDBMS ! Where you can imagine ;-D smoothly go from a XE to a RAC database !
For a short example of developing a Java Coherence Application see (sorry it’s written in French !) :
Terracotta provides a way to scale the middle tier w/o RAC and yet it is still more black box like RAC because it acts as network attached memory for Java applications, as they are already written. Worth a look.
Thanks for mentioning it Ari.
> On the other hand, looks like a clustering framework with rules
> defined by developers
Hi Alex – Think of it like defining a database schema, but instead, you are simply naming collections of objects that you want to manage in a scale-out middle tier. I’d be glad to introduce you to one of our solutions architects to talk through how to use it.
Oracle (formerly Tangosol)
MySQL is now out of the picture… Long life BerkelyDB/TimesTen/Oracle Light, you get my drift
Funny I came here to find coherence alternatives (as a replacement for RAC that is).
Marco, keep us posted how your search is going… ;-) I’d be very interesting in the conclusions.
I was looking at the possibilities of reducing the costs. when i found this article.
With obiee 11g Oracle has a OFM which require database. if you are cluster the obiee for high availabilities you need mysql or Oracle clustering. I dont like the mysql cluster. so Question:
Is there any chance we can replace mysql cluster or offload mysql activities to Oracle Coherence. My client already have this product so we can save cost and increase performance.