Questions? Feedback? powered by Olark live chat software

Couchbase Replacement

Hazelcast is an ideal Couchbase Replacement. Couchbase server supports built-in clustering data replication with auto-failover. It partitions data to nodes in a similar manner to Hazelcast: it stores data in-memory and persists it to a disk.

Hazelcast and Couchbase have some similar features:

  • They are Apache 2 Open Source projects, with Professional Support and Enterprise editions
  • They have data distribution using partitions
  • They have horizontal scalability
  • They provide optimistic and pessimistic locking
  • Both are often used as in-memory key-values stores

Data Consistency

With Hazelcast, you can achieve data consistency and availability with synchronous backups (replicas), although you also can go for asynchronous replicas for performance (which sacrifices consistency). However, with Couchbase, where replicas are only eventually consistent, replicas are streamed to a queue and then are written over to another node in the cluster.

Hazelcast Has Serialization

Hazelcast stores objects that are serialized and deserialized as they move over the wire to the cluster nodes, both keys and values. Different serialization options are available with Hazelcast. Couchbase stores data as primitive types and complex types as JSON documents and stores keys as strings.

Hazelcast and Couchbase Use Cases

Developers typically use Couchbase for the following use cases, which Hazelcast also supports:

  • High-availability and in-memory caching of data
  • Content and metadata store
  • Memcached replacement

Among these use cases, here are a few that distinguish Hazelcast from Couchbase.

  • Hazelcast has elastic application scalability. New nodes will be configure automatically
  • Hazelcast has high-availability with multiple backup copies
  • Hazelcast is fault tolerant because of its masterless nature: no single node in the cluster is a master node
  • Hazelcast is cloud-ready – Download the Amazon EC2 Deployment Guide

For a comprehensive list of Hazelcast use cases, refer to Hazelcast’s use case web page.

Feature Comparison

Feature

Couchbase

Hazelcast

Licensing

Apache v2

Apache v2

Enterprise Support

Couchbase

Hazelcast

Implementation Language

Eglang, C

Couchbase uses C for the Memory Cache (based on Memcached), Erlang for the Communications Manager.

Java

Stored Structures

Key-value, Document

Multiple storage structures.

Key/Value (Map, MultiMap), Queue, Set, List, Topic.

Persistence

Yes

Yes

The Java Interface in which Cache Misses and Puts can be coded against any backing store: for example, another RDBMS, NoSQL, HDFS, or network.

Near Cache

No

Yes

Scalability

Horizontal

Horizontal

REST API

Yes

Yes

Memcached Protocol

Yes

Yes

Text-based version of a protocol only

Messaging

No

Yes

Distributed Events. Queues / Topics.

Query Language

PUT/GET constructs, REST API

Java APIs, SQL

Using SqlPredicate, it is possible to query IMaps with SQL-like syntax.

Hazelcast Acts as Middleware

What distinguishes Hazelcast from NoSQL stores is that Hazelcast acts as middleware. Data can be persisted to any database, NoSQL (including Couchbase) or RDBMS or HDFS.

Hazelcast Uses Standard Java Collections API

The learning curve for Hazelcast can be very low because Hazelcast implements the standard Java Collections API that most Java developers are familiar with. Underneath, Hazelcast is distributed. Moreover, you can leverage advanced features for distributed computing like ExecutorService and EntityProcessor (which supports delta-updates without moving the object across network), and MapReduce API. Hazelcast has a mature production-ready clustering / replication functionality (including WAN replication).

Also, for Java-based caching, you don’t have to stick with proprietary APIs and clients: rather, you use the standard JCache API (JSR-107).

Hazelcast Supports Client/Server and Embedded Models

Couchbase follows a traditional Client/Server model. Hazelcast supports client/server and embedded models. With embedded Hazelcast, you don’t need to maintain separate infrastructure for data grid servers because each instance of the application that contains the Hazelcast jar essentially becomes a member of a cluster.

Hazelcast.com

Menu