Last night I attended the local Boston Java Meetup Group to get a sense of what my technology cousins are up to since most of my conversations are always in Macromedia-centric arenas.

The most interesting part of the evening for me was meeting Cameron Purdy. Cameron was obviously the Java guru at this table of Java gurus. It turns out that Cameron is president of Tangosol, a company in Somerville which he founded. Tangasol's flagship product Coherence is a type of J2EE clustering software which appropriate for storing extremely large quantities of data in memory and replicating it across large numbers of J2EE cluster members while handling thousands of data updates per second.

Coherence is described in various contexts as:

Tangosol Coherence enables in-memory data management for clustered J2EE applications and application servers. 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.


... provides scalable performance and is not compromised by single points of failure ... [and] manages many gigabytes of data and thousands of updates per second ... self partioning architecture without single points of failure or measureable GC pauses ...

That last quote is about as much as I could jot down while watching this presentation on Coherence while trying to keep up with Cameron's break-neck reading velocity. As an aside, this presentation was hauntingly similar to a Breeze presentation, but actually used a similar product from Articulate.

This large scale clustering software appears to be significantly more robust than the JINI-based clustering found in Macromedia JRun. Replication of session data across small JRun clusters is generally thought to have a noticible performance impact and its typically recommended to minimize the data that is replicated in this manner to unique keys that act as pointers to persistant data on the backend databases. A couple reviews of JRun clustering are available for comparison: