Oracle Coherence
In computing, Oracle Coherence (originally Tangosol Coherence) is a Java-based distributed cache and in-memory data grid, intended for systems that require high availability, high scalability and low latency, particularly in cases that traditional relational database management systems provide insufficient throughput, or insufficient performance.
Tangosol Coherence was created by Cameron Purdy and Gene Gleyzer, and initially released in December, 2001[1].
Oracle Corporation acquired Tangosol Inc., the original owner of the product, in April 2007, at which point it had more than 100 direct customers.[2] Tangosol Coherence was also embedded in a number of other companies' software products, some of which belonged to Oracle Corporations's competitors.[3]
Features
Coherence provides several core services:
- The Tangosol Cluster Management Protocol (TCMP) provides both reliable messaging and cluster membership services. Originally built using a combination of UDP multicast and unicast, more recent versions of Coherence introduced non-blocking TCP/IP support.
- Replicated and partitioned data management and caching services - At its core Oracle Coherence is a highly scalable and fault-tolerant distributed cache engine. Coherence uses a specialized scalable protocol and many inexpensive computers to create a cluster which can be seamlessly expanded to add more memory, processing power or both. As a result, Coherence has no single point of failure and transparently fails over if a cluster member fails. When a Coherence server is added or removed the cluster automatically re-balances to share the workload. As a result, Coherence provides a highly available and predictably horizontally scalable infrastructure for managing application data.[4]
- Replicated data processing engine - In addition to caching Coherence provides a rich data processing model so processing can be farmed out to where the data is, and results returned to the client. By moving the processing to the data, processing too is highly scalable. This is to some extent similar to a MapReduce framework, but lacks the option of parallel reductions.[5]
- Event model allowing developers to interact with data as it changes.
- Support for clients written in Java, C++, .NET as well as other languages using Representational State Transfer (REST).
In addition Coherence provides a variety of mechanisms to integrate with other services using TopLink, Java Persistence API, Oracle Golden Gate [6] or almost any other platform using Coherence provided APIs.
Coherence can be used to manage HTTP sessions via Coherence*Web.[7] With Coherence*Web, application services such as Oracle WebLogic Server, IBM WebSphere, Apache Tomcat and others can reap the same benefits of performance, fault tolerance, and scalability as data.
Some Coherence usage patterns are open source and are listed and supported through the Oracle Coherence incubator.[8] These patterns implement features such as messaging, work distribution and data replication across wide area networks with Coherence.
See also
- Complex event processing
- Distributed computing
- Distributed hash table
- Distributed transaction processing
- Extreme Transaction Processing
- Grid computing
- Transaction processing
References
- "Tangosol, Inc". 2002-02-08. Archived from the original on 2002-02-08. Retrieved 2019-04-02.
- "Oracle and Tangosol Acquisition Announcement" (PDF). Oracle.com. 2007-03-23. Retrieved 2014-10-18.
- Oracle to Acquire a Lead in Extreme Transaction Processing
- Oracle Coherence Product Page
- Oracle Coherence and MapReduce
- "Oracle GoldenGate". Oracle.com. 2012-10-24. Retrieved 2012-11-07.
- "Coherence*Web Session Management Module - Coherence 3.4 User Guide - Oracle Coherence Knowledge Base". Coherence.oracle.com. 2009-04-13. Retrieved 2012-11-07.
- The Coherence Incubator