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! ;-)