Couchbase Server is an open source, distributed NoSQL document-oriented database. It exposes a fast key-value store with managed cache for submillisecond data operations, purpose-built indexers for fast queries and a query engine for executing SQL queries. For mobile and internet of things environments, Couchbase Lite runs native on-device and manages sync to Couchbase 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:
Flexible data model
Powerful query language
Couchbase Server’s flexible data model and dynamic schemas enable frequent improvements to applications without downtime or schema migrations.
Couchbase documents are JSON, a self-describing 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 having to make the same changes to the schemas. Because of this, applications can evolve quickly and seamlessly.
Couchbase Server can be queried by using N1QL, an expressive, powerful, and complete SQL dialect for querying, transforming, and manipulating JSON data. As SQL, it’s immediately familiar to developers, who can quickly get started developing rich applications. Unlike other NoSQL databases, Couchbase supports JOIN operations, which enables 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, Tableau.
Couchbase Server is designed to process online operational data-heavy read and write traffic for large modern web, mobile, and IoT applications. For Couchbase Server, 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. Couchbase continues to deliver consistently high performance even under heavy load. Predictable, consistent performance guarantees responsiveness and improves the user experience in real-world deployments.
Couchbase Server is a memory-centric system that intelligently keeps frequently accessed documents, metadata, and indexes in RAM, yielding high read/write throughput at very low latency. These capabilities arise from Couchbase’s integral object managed cache, which is a distributed hash table with full memcached API compatibility. The document database makes heavy use of the object managed cache.
Couchbase Server is a true operational store that serves end customer requests directly. This contrasts with Hadoop and Spark, which are primarily analytic and machine learning environments that are accessed by analysts and data scientists and which tolerate orders of magnitude more latency.
Couchbase server is designed to scale easily on commodity hardware and to be more hardware efficient than other similar solutions. 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 high hardware efficiency by employing asynchronous, non-blocking I/O at all levels for effective utilization of server resources. This maximizes both the storage I/O and the number of simultaneously connected clients per node. Couchbase’s architecture ensures that workloads are evenly distributed across cluster nodes, reducing bottlenecks and allowing users to take full advantage of the available hardware.
Couchbase Server is extremely straightforward to deploy and manage. Features such as replication are built in and happen automatically. Topology changes happen transparently, without needing changes to the application or other Couchbase nodes. Each Couchbase Server node consists of completely identical software, making automation a breeze. 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 data center replication, can be configured with a single click in the Couchbase Web Console.
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 never needs to be taken offline for routine maintenance such as software upgrades, index building, compaction, hardware refreshes, or any other operation. Even provisioning or removing nodes can be done entirely online without any interruption to running applications, and without requiring developers to modify their applications.
Equally important, 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 in case of the inevitable failures that large distributed systems are designed to recover from. All of this is done automatically without need for manual intervention or downtime.
Entire Couchbase Server clusters can be replicated to one or more alternate geographical locations using cross data center replication (XDCR), a technology that delivers increased high availability, disaster recovery and geographic load balancing. XDCR addresses the unique challenges inherent 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. For example, one solution might be very flexible in the data model but lack the ability to add or remove nodes without serious impact on performance, another solution might demonstrate good write scalability without being able to add indexes and change the data model on the fly. Couchbase Server is designed to deliver an excellent developer experience and easy administration while also providing outstanding performance at scale.