Flexible Data Model
Couchbase Server 2.0 has native support for JSON documents. Each JSON document can have a different structure, and multiple documents with different structures can be stored in the same Couchbase bucket. Document structure can be changed at any time, without changing other documents in the database, making it faster to add features to your application.
Indexing and Querying
With Couchbase Server 2.0, you can create primary and secondary indexes on JSON documents. Indexes are created via Views, which can be queried. Indexing is evenly distributed across all nodes in a cluster, with each node indexing the data it holds. Queries are executed using a suitable client library to retrieve documents from Couchbase Server. Query support includes specific key lookups, range queries, and aggregate lookups. Query results are served even during topology changes like rebalancing and failover. Find more details about the architecture and how to develop Views in the documentation.
Incremental Map Reduce
Incremental map reduce provides powerful aggregates for real-time analytics, even with large datasets. Indexes are updated incrementally as the data changes, so you don’t have to wait for a batch job across the entire dataset to complete. Find out more about map and reduce functions in Views.
Clone to Grow with Auto-Sharding
With Couchbase Server, you can add (or remove) servers in your cluster with the click of a button, easily keeping resources in step with the changing needs of your application. By adding servers, you horizontally scale your application with more RAM and I/O capacity.
Auto-sharding distributes data uniformly across servers, enabling direct routing of requests to the appropriate server without any application changes. Adding (or removing) a server initiates data rebalancing across the cluster with continuous data availability. Learn more about these administrative tasks. You can manage clusters with the Couchbase Server administration web interface or the Couchbase Server management REST API.
You can replicate data across multiple clusters in different datacenters for disaster recovery or to get data closer to your end users for a better user experience. Data can be replicated uni-directionally or bi-directionally with the ability to read and write to either cluster. Read more about configuring cross data center replication (XDCR).
Consistent High Performance
Built-In Object-Level Cache
Couchbase Server includes a built-in object-level cache, based on memcached, proven data caching technology. Couchbase Server lets you read and write data with submillisecond latency and sustained high throughput. You can allocate cache resources per database depending on application needs, rather than rely on the operating systems for global cache management.
Couchbase is also a drop-in replacement for memcached and supports the same client protocol to create, retrieve, update and delete data. Applications using “off-the-shelf” memcached can upgrade to Couchbase Server to take advantage of its graphical UI, clustering, replication, indexing and querying. If you don’t already use a legacy memcached library, try our packaged and tested SDKs.
Always On 24x365
Couchbase Server lets you perform any maintenance task on a live cluster. Adding or removing servers requires no application downtime, and software upgrades are done on a running system. Learn more about ongoing monitoring and maintenance. You can also take online cluster-wide backups of your data and restore data on a live cluster. Compaction of data and indexes, as well as indexing building, are online operations, all taking place while the database is serving documents.
Data Replication with Auto-Failover
For high availability of your application – particularly to protect against node failures when using commodity servers or virtual machines – Couchbase Server’s data replication capability lets you keep multiple copies of your data within a cluster. Replica data is distributed across all nodes to reduce the impact of failure on a single node. If desired, Couchbase Server supports automatic failover to activate replica nodes. Learn more about failover.
Management and Monitoring UI
Couchbase Server has advanced monitoring and a rich administration web interface. You can monitor the entire cluster with real-time charts that reflect cluster-wide statistics and drill down to an individual server for easy troubleshooting. Learn more about the monitoring capabilities.
Users can also monitor the cluster using the Couchbase Server management REST API. This API enables easy integration of Couchbase Server with external monitoring and management systems like Nagios.
Reliable Storage Architecture
Couchbase Server persists all data to disk asynchronously and lets you store datasets larger than the physical RAM size. Couchbase automatically moves data between RAM and disk and keeps the working set in the object-level cache. Our append-only storage tier improves disk write performance because updates are written contiguously to the end of the file. Mutations are first committed to RAM and then added to the disk write queue, performing per document commits. Learn more about the disk write queue and persistence.
Develop your application in the language of your choice using our fully supported SDKs for Java, C#, PHP, C, Python and Ruby.
Though there are a many legacy memcached libraries available, Couchbase recommends our new, packaged SDKs. These “smart” SDKs are cluster topology-aware and automatically route requests directly to the right node. Find more information on the APIs, usage details and SDK downloads.