I received a few emails from Hazelcast team lately and they sent me an interesting comparison document between Hazelcast and Coherence.
If you are planning to use a distributed cache implementation, this document may be helpful.
Hazelcast vs Coherence
Hazelcast is open source, released under the Apache 2 license. Whilst Oracle Coherence is not open source.
Hazelcast offers professional 24/7 support for open source users, and enterprise extensions with additional value-add features such as security, elastic memory (off-heap RAM usage) and an enterprise cluster management application.
Oracle Coherence is a commercial product with 3 editions, Standard, Enterprise and Grid. Features such as Elastic Data, Wan Support and Real Time Clients are only available in the Grid Edition.
Hazelcast is an in-memory data grid which can be used for:
- Distributed Collections
- Distributed Locking
- Distributed Compute
Both Hazelcast and Oracle Coherence support caching and web sessions.
Hazelcast and Oracle Coherence are true in-memory data grids. Instances may be embedded in the application server, or as process instances on dedicated hardware. Any member can communicate with any other. Data is replicated across physical servers for redundancy, these replicas may be read from. Both Hazelcast and Oracle Coherence support Distributed and Replicated Maps, Query and Execution. Hazelcast additionally supports Topics, Sets and Queues out of the box.
Grid communication in Oracle Coherence is provided by TCMP (Tangosol Cluster Management Protocol), this is a proprietary closed protocol. Hazelcast Grid communication is open source.
Hazelcast has built its Distributed Collections on top of an SPI (Service Provider Interface) that is open source. The SPI can be used to build new Distributed Data Structures.
Hazelcast and Oracle Coherence scale out is achieved by adding nodes. This is elastic and may be done dynamically at runtime. Data will rebalance across the new grid.
For both Hazelcast and Oracle Coherence Scale up is achieved with Elastic Memory, that is by storing keys and metadata on-heap and values off-heap for a 10x storage over heap alone for the same Garbage Collection performance.
Hazelcast supports Entry Processors within Elastic Memory whilst Oracle Coherence does not.
Hazelcast supports write-behind (asynchronous) and write-through (synchronous) persistence interfaces. Oracle Coherence offers persistence via Backing Maps.
Hazelcast provides an open source Java client, additionally Memcache clients can communicate directly with the Grid. C# and C++ versions are available within the Enterprise Support Package. The clients provide notifications, execution, near cache and continuous query. Hazelcast clients may connect to
any configured member of the Grid.
Oracle Coherence provides 2 different types of client licence. Data clients are available in Standard and Enterprise editions, these clients are able to get,put and query data in the grid. Available only in the Grid edition are Real Time clients which are able to receive notifications from the grid, provide near cache and continuous query. Both types of client are available in Java, C# and C++. Oracle Coherence clients must connect to the Grid via specially configured “Extend Proxies”.
And there are more about hazelcast vs coherence. You can find the full document here: full pdf document
I also found a price calculator. Hazelcast claims that you can save 80% or more over Oracle Coherence.
Here is the price calculator: price calculator