Couchbase Server manages resources in secure multi-tenancy units called Buckets. A memcached compatible application can be deployed with either Couchbase type buckets or memcached type buckets.
Couchbase Buckets
When using Couchbase type buckets, applications gain replication and persistence for their data set. This makes it possible to use a Couchbase bucket as a replacement for both memcached and the database in many applications. Developers no longer need the boilerplate code often written to map highlevel language objects to and from relational structure. Instead, developers can simply serialize data objects as JSON or another format, and store it directly to a Couchbase bucket. This bucket is automatically sharded across the entire cluster.
Data is replicated for high availability with Couchbase buckets. When creating a new bucket, the administrator can ask the Couchbase Server cluster to keep up to three replica copies of data. The replica data is automatically distributed among the servers in the cluster. In the event of a system failure, a Couchbase cluster can be configured to automatically or manually failover to replicas within the cluster.
Couchbase buckets persist data and actively manage an administrator specified memory quota. As the data set approaches this maximum limit a Couchbase bucket will free up memory for newer or hotter data. The data items are always persisted to disk asynchronously, as quickly as possible. This data is already on disk when the active cache management decides to reallocate the memory to free space. This approach allows Couchbase buckets to keep as hot a cache as possible while storing a larger data set. This brings benefits over memcached, where data items must be stored elsewhere if they are to be kept when going beyond the memory allocated to a cache.
Couchbase Server Support for Memcached Buckets
Couchbase Server also has out of the box support for Memcached Buckets. These buckets behave exactly like traditional memcached, because it is memcached.
Multiple Memcached Buckets can be defined across a cluster also with an administrator specified quota. If this quota is exhausted, a Memcached Bucket will discard expired or least recently used data to make room for new data.
Couchbase Server is easier to manage than individual memcached processes. When adding or removing nodes, it is not necessary to restart app servers or manually manage the server list. Building on one of the Couchbase supplied SDKs, applications will automatically be aware of any changes to the cluster topology adjusting as needed.
Simple deployments with traditional memcached clients just select one or more Couchbase Servers with which to configure client libraries, while more advanced deployments may want to make use of the Couchbase Moxi Server. Moxi is a memcached proxy which can run in a small footprint on a client system, and manage a connection pool for performance benefits in many deployments.
Production-Ready Monitoring
Whether using a Couchbase bucket or a Memcached bucket, Couchbase Server gives developers and operators insight into statistics on how the system is performing. The Couchbase Server web console shows a variety of information on the data flowing through the system. It stores these statistics over time for later analysis. This information allows operators to make more informed decisions about their workload to better plan for capacity or availability contingencies. [screenshot here]
Other Couchbase Server Benefits
By design, Couchbase Server is simple to install, setup and manage. Binary packages are available for download for Linux, Windows and Mac OS X.
Couchbase, Inc. offers Enterprise Edition subscriptions with support and maintenance for all of the features mentioned here. Learn more about the different editions or engage in a discussion with Couchbase about your specific needs.