Couchbase is a NoSQL database platform that offers several editions and deployment options, including a free installation binary as well as a fully managed database as a service. This blog briefly compares our free Couchbase Community Edition to Couchbase Capella™ DBaaS, and presents some of the benefits of upgrading to the managed service. To ensure that both editions were evaluated under the same conditions, I implemented and executed The YCSB (Yahoo! Cloud Serving Benchmark) specification Workload E as a baseline.
What is Couchbase Community Edition (CE)?
Community Edition (CE) is a free installation binary of the Couchbase Server distributed NoSQL database. It is designed for very simple applications that need a flexible JSON datastore and basic availability, performance, scaling, and security capabilities. Applications developed on CE are fully portable to Capella. There is no lock-in to the CE environment however, clusters are limited to five nodes by its BSL 1.1 license. CE includes multi-model data access services that interact with the data in a CE cluster:
-
- Key-value: The ability to read/write data via a “key” lookup, which is extremely fast, especially given Couchbase’s memory-first architecture, and is great for simplicity.
- SQL++ (SQL for JSON): SQL syntax support is a database industry standard data access method.
- Full-text Search (FTS): A text “search engine” for data that also supports geography-based searches and fuzzy search matches.
What is Couchbase Capella?
Couchbase Capella is a fully managed Database-as-a-Service (DBaaS) that enables users to focus on utilizing the functionality available in the product by eliminating database management activities. It’s the easiest and fastest way to begin working with Couchbase. For multi-model access, Capella offers key-value, SQL++, and full-text search along with additional Couchbase services like:
-
- Analytics: Query data with complex, ad hoc SQL++ queries in an isolated environment with multi-tenant support.
- Eventing: Developers can write JavaScript functions that respond to data change events.
- App Services for mobile synchronization mobile: Offline-first embeddable database, Couchbase Lite that offers both peer-to-peer and client/server data synchronization with Couchbase Server.
Comparison
To ensure symmetry and an equal benchmark, the same YCSB workload was exercised against both CE and Capella. Workload E is a short-range scan workload in which ranges of records are queried instead of individual ones with a scan/update ratio of 95%-5%. This workload simulates threaded conversations with a lot of scan requests and periodic updates. In real-world situations, an example of a scan operation is an e-commerce app with users viewing a product catalog and occasionally buying products that create some update requests.
The comparison focused on installation and cluster setup, and performance of CE as compared to Capella. Using 8 CPU, 16GB RAM machines for the Capella cluster, and c4.2xlarge matching EC2 instances for the CE cluster running the Ubuntu 18.04.4 LTS operating system on five node clusters due to the CE node limitation. The workload was executed on 20,000,000 records using five access clients, each issuing 20 worker threads for a total of 100 threads. The following scan/update queries were used to execute Workload E.
SCAN query using Couchbase SQL++:
1 |
SELECT meta().id FROM `bucket` WHERE meta().id >= $1 ORDER BY meta().id LIMIT $2 |
UPDATE query using Couchbase SQL++:
1 |
collection.replace(id, content, replaceOptions().timeout(kvTimeout).expiry(documentExpiry).durability(persistTo, replicateTo)) |
Installation and cluster setup
Although setting up a CE cluster is easy for an open source platform it can’t compare to Capella DBaaS in terms of level of effort. Installing CE involved several steps:
-
- Create five AWS EC2 machines with Ubuntu 18.04.4 LTS operating system
- Install CE on each node; the minimum steps for the OS are:
Download the meta package.
-
-
-
-
1curl -O https://packages.couchbase.com/releases/couchbase-release/couchbase-release-1.0-amd64.deb
-
-
-
Install the meta package.
-
-
-
-
1sudo dpkg -i ./couchbase-release-1.0-amd64.deb
-
-
-
Reload the local package database.
-
-
-
-
1sudo apt-get update
-
-
-
Install Couchbase Server CE latest package.
-
-
-
-
1sudo apt-get install couchbase-server-community
-
-
-
-
- Create a cluster on one CE node
- Log in to the primary machine and add each node to the cluster based on node IP
Creating a Capella cluster requires the following steps:
-
- Simply sign up for an account
- Create a new project using Capella Control Plane user interface
- Create a cluster using the same user interface
Performance
CE doesn’t have full multi-dimensional scaling (MDS). Node combinations are limited to data, index, query; full-text search, data, index, query; or data only. This means service combinations cannot be modeled to perfectly fit specific workloads. A CE cluster can only contain five nodes or less and Couchbase Analytics and Eventing services are not available. This node limit means that CE is more suitable for small, non-production environments. Index replicas are also not available. This can impact CE cluster performance. In the YCSB Workload E comparison, Capella had approximately 3x better throughput and 20% lower latency.
The CPU utilization graph screenshots below demonstrate how a CE cluster running work Workload E of the YCSB specification only fully utilizes one node versus a Capella cluster where all the nodes are utilized for processing. With Capella there is no wasted capacity, all the nodes are fully available and can have replicated indices. This means that Capella beats CE performance with less hardware, leading to lower overall costs.
Summary
This YCSB Workload E comparison demonstrates that Couchbase Capella is a more complete database than Couchbase Community Edition. Capella is more flexible and includes additional services like Analytics, Eventing, and a mature Mobile suite. On the other hand, limitations such as no index replicas, restricted MDS, and a node ceiling of five make CE a better fit for smaller workloads where performance is less important.
With Capella, you get 3x better performance and a cloud-native design – all with limitless scaling, high availability with geo-replication, cross-data center replication (XDCR), and flexible disaster recovery. Capella lowers total cost of ownership (TCO) by virtually eliminating operational and management costs while providing an enterprise-level NoSQL document store to support the demands of modern applications. This is why you need to upgrade from CE to Capella NOW!
Next steps
Learn more about Couchbase Capella:
-
- Take Capella for a test drive by signing up for a free 30-day trial.
- Connect your trial cluster to the Playground or connect a project to test it out for yourself.
- If you’re already using Capella, you can interact with your cluster by using the interactive Couchbase shell or via the Capella Control plane to:
- Check out the document viewer
- Connect to a project
- Take a look at the Capella Learning Path!
Tutorials
The Couchbase Developer Portal has tons of tutorials/quickstart guides and learning paths to help you get started!
See the documentation to learn more about the Couchbase SDKs.
Thank you for reading this article! If you have any questions or comments, please connect with us on the Couchbase Forums!