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.

  • Messaging – Hazelcast can be used as a distributed publish/subscribe messaging middleware
  • Event-driven programming model – user code can be triggered by specific changes to the dataset. Clients do not have to poll the cluster in order to detect the change
  • Server-side computing – computing tasks can be executed close to the data. Data doesn’t have to be retrieved to the client in order to be processed
  • Caching middleware covering multiple databases or enterprise systems
  • 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 Erlang, C

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

Java
Stored Structures Key-value, Document

Map, List, Queue, Set

Multiple storage structures.

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

Distributed toolkit Atomic counter AtomicLong
HyperLogLog
Lock
Semaphore
IdGenerator
CountDownLatch
AtomicReference
Distributed computation Incremental Data Views Aggregations (via SQL) Entry Processor
Execution Service
Aggregations* Hazelcast Jet®
Persistence Yes

Tiered storage

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.

Products in this Use Case:

Hazelcast IMDG

Learn More

Next Steps:

Contact Us

Hazelcast.com

Menu