A newer version of this documentation is available.

View Latest

Distributed data management

Couchbase Server is a distributed system that is built from the ground up for easy scale out and management.

Couchbase Server is typically deployed on a cluster of commodity servers, although for development purposes all functionality can be run on a single node. Because of Couchbase’s architecture, an application can be developed at small scale, even on a laptop, but then deployed to a distributed cluster, or separate clusters of varied topologies, without any architecture or behavioral changes to that application.

Couchbase Server has a peer-to-peer topology and all the nodes are equal and communicate to each other on demand. There is no concept of master nodes, slave nodes, config nodes, name nodes, head nodes, etc, and all the software loaded on each node is identical. This model works particularly well with cloud infrastructure, in which nodes can be added or removed without considering their "type". Capacity can be increased or decreased simply by adding or removing nodes. In this way a cluster can grow CPU, RAM, disk and network capacity by adding physical servers or virtual machines that have the exact same software installed. Nodes can be added or removed easily through a rebalance process, which re-distributes the data evenly across all nodes. The rebalance process is done online and requires no application downtime, and can be initiated at the click of a button or one command on the command line.

Once a node is added, a user can optionally configure the services that are running on that node as described in Multidimensional scaling It should be noted that configuring those services does negate the behavior described in the previous paragraph.