Couchbase Server is an open source, distributed, JSON document database. It exposes a scale-out, key-value store with managed cache for sub-millisecond data operations, purpose-built indexers for efficient queries and a powerful query engine for executing SQL-like queries. For mobile and Internet of Things environments Couchbase also runs natively on-device and manages synchronization to the server.
Couchbase Server is specialized to provide low-latency data management for large-scale interactive web, mobile, and IoT applications. Common requirements that Couchbase Server was designed to satisfy include:
Unified Programming Interface
Mobile and IoT
Core database engine
Big data and SQL integrations
Container and Cloud deployments
The Couchbase Data Platform provides simple and uniform application development APIs across multiple programming languages, connectors, and tools that makes building applications simple and accelerates time to market for applications.
Couchbase is straightforward to deploy and manage. Features such as replication are built in with automatic sharding. Topology changes happen transparently without needing changes to the application or other Couchbase nodes. Each Couchbase Server node consists of identical software, to ease automation and management tasks. The entire cluster is managed through a single administrator console that offers single-click cluster expansion and rebalance. Even highly sophisticated technology, such as cross-datacenter replication, can be configured with a single click in the Couchbase Web Console.
Provides multiple data access paths to query and manage your JSON documents. App developers can pick the data access pattern that best meets their requirements. Flexible data access paths makes Couchbase useful for a wide variety of apps and use cases.
Couchbase Server can be queried using N1QL, an expressive, powerful, and complete SQL dialect for querying, transforming, and manipulating JSON data. As SQL, it’s familiar to developers who can quickly start developing rich applications. Unlike other NoSQL databases, Couchbase supports JOIN operations, enabling a wide range of data models. To help users develop rich applications with agility, N1QL is supported by a rich index infrastructure and also has extensions that allow it to handle heterogeneous documents with nested structures. N1QL is accessible to a full range of tools for analytics and data integration via JDBC and ODBC, such as Microsoft Excel and Tableau.
Built-in full-text search makes it simple for developers to add intelligence to apps. Full text indexes are automatically managed within the Couchbase cluster, avoiding the time delay, overhead, and complexity of managing a separate full-text search product and infrastructure.
Provides a full-stack data platform for your mobile and IoT apps, with built-in real-time data synchronization, enterprise-level security, and data integration to your existing ecosystem.
Couchbase Analytics provides powerful parallel query processing. Designed to efficiently execute complex, long-running queries that contain complex joins, set, aggregation, and grouping operations. Addresses the challenges of supporting responsive, scalable apps and ad hoc analytics on the same dataset.
The core database engine provides the fundamental capabilities for document management and indexing. Based on a memory-first, async architecture, this includes core capabilities of the database engine, like caching, data persistence, and inter-node replication.
Couchbase documents are JSON, a self-describing data format capable of representing rich structures and relationships. Unlike a traditional RDBMS, the schema in Couchbase Server is a logical construct entirely defined in the application code and captured in the structure of the stored documents. Since there is no explicit schema to maintain, developers can add new objects and properties at any time just by pushing new application code that stores new JSON, without having to also make the same changes to the schemas. This allows applications to evolve quickly and seamlessly.
Couchbase is a database that serves front-end customer requests at internet-scale. This contrasts with analytical databases like Hadoop and Spark and machine learning environments accessed by analysts or data scientists that can tolerate orders of magnitude more latency.
To provide mission-critical customer experiences you need a database that can be always on, always responsive, and that can scale to meet changing workloads. Couchbase provides built-in distributed data storage and processing. This architecture allows an application to be always on by providing the ability to detect and recover from hardware and network failures.
Couchbase is designed to scale easily on commodity hardware and to be hardware efficient. Replication and sharding are fundamental features of Couchbase Server. It automatically distributes data across nodes in the cluster. Thus, the database can grow horizontally to share load by adding more RAM, disk, and CPU capacity without increasing the burden on developers and administrators. Couchbase Server achieves hardware efficiency by employing asynchronous, non-blocking I/O for effective utilization of server resources. This helps increase both the storage I/O efficiency and the number of simultaneously connected clients per node. Couchbase’s architecture supports workloads that are evenly distributed across cluster nodes, to reduce bottlenecks and allow users to take full advantage of the available hardware.
Customers expect and demand fast, responsive applications. The Couchbase Server database enables application architectures where performance is paramount, prioritizing for operations to occur in memory and provides for special memory-optimized data management options. Couchbase is designed to process online operational data-heavy read and write traffic for large modern web, mobile, and IoT applications. For Couchbase, low latency at scale typically refers to consistent sub-millisecond reads and writes. While maximum raw speeds are important, many practitioners care more about being able to deliver those high speeds and low latencies with minimal variance during heavy workloads. Predictable, consistent performance improves responsiveness and the user experience in real-world deployments.
Couchbase Server is a memory-centric system that keeps frequently accessed documents, metadata, and indexes in RAM, yielding high read/write throughput at low latency. These capabilities arise from Couchbase’s integral object managed cache which is a distributed hash table based on memcached distributed caching technology. The document database makes heavy use of the object managed cache.
Couchbase Data Platform includes built-in Big Data and SQL integration, allowing you to leverage tools, processing capacity, and data wherever it may reside.
Securing customer data is often an important requirement both from a compliance and from a basic data access perspective. Couchbase Data Platform provides secure data – on the wire, on mobile and IoT devices, in the cloud, and in the data center.
Couchbase supports all cloud platforms, as well as a variety of container and virtualization technologies to enable operational flexibility.
Built with a strong emphasis on reliability, high availability, and simple management, an important feature of Couchbase Server is that all operations can be done while the system remains online, without requiring modifications or interrupting running applications. The system does not need to be taken offline for routine maintenance such as software upgrades, index building, compaction, hardware refreshes, or other operations. Even provisioning or removing nodes can be done online without interruption to running applications, and without requiring developers to modify their applications.
Additionally, Couchbase Server’s built-in fault tolerance mechanisms protect against downtime caused by arbitrary unplanned incidents, including server failures. Replication and failover are important mechanisms that increase system availability. Couchbase Server replicates data across multiple nodes to support failover. Ensuring that additional copies of the data are available is automated to deal with the inevitable failures that large distributed systems are designed to recover from. This functionality is provided automatically without need for manual intervention or downtime.
Entire Couchbase Server clusters can be replicated to one or more alternate geographical location using Cross Data Center Replication (XDCR), a technology that delivers increased high availability, disaster recovery and geographic load balancing. XDCR addresses the challenges in linking clusters that span across a wide-area network (WAN) rather than simply extending local-cluster replication across a WAN.
Many databases are able to satisfy one or more of these requirements but require tradeoffs when running in production with internet-scale, mission critical applications. For example, one solution might deliver data model flexibility but might lack the ability to add or remove nodes without an impact on up-time or performance. Another solution might demonstrate good write scalability without being able to index or and change the data model on the fly. Couchbase Server is designed to deliver a productive developer and administration experience while also providing performance at scale, whether in the cloud, in a container, on-premise or on an edge device.