
Technical NoSQL Comparison Report: Couchbase Server v6.0, MongoDB v4.0, and Cassandra v6.7 (DataStax) This 61-page research paper evaluates the performance of the three popular NoSQL databases across 20+ metrics. By Artsiom Yudovin, Data Engineer at Altoros, and Yauheniya Novikova, Sr. Java Engineer at Altoros. Q2 2019 Table of Contents 1. EXECUTIVE SUMMARY ..................................................................................................... 3 2. INSTALLATION AND CONFIGURATION ............................................................................ 3 3. COMPARISON OF FUNCTIONALITY AND STRUCTURE ................................................. 5 3.1 Architecture ................................................................................................................................ 5 3.1.1 Topology ............................................................................................................................ 5 3.1.2 Scalability ........................................................................................................................ 10 3.1.3 Replication ....................................................................................................................... 15 3.1.4 Consistency ..................................................................................................................... 21 3.1.5 Availability ........................................................................................................................ 23 3.1.6 Server and network fault tolerance ...................................................................................... 25 3.2 Administration .......................................................................................................................... 27 3.2.1 Configuration management ................................................................................................ 28 3.2.2 Backup ............................................................................................................................ 28 3.2.3 Disaster recovery .............................................................................................................. 30 3.2.4 Maintenance .................................................................................................................... 32 3.2.5 Recovery ......................................................................................................................... 33 3.2.6 Monitoring ........................................................................................................................ 35 3.2.7 Security ........................................................................................................................... 38 3.3 Development ............................................................................................................................. 40 3.3.1 Data structure and format .................................................................................................. 40 3.3.2 A query language .............................................................................................................. 43 3.3.3 Full-text search ................................................................................................................. 46 3.3.4 Analytics .......................................................................................................................... 48 3.3.5 Eventing and trigger capabilities ......................................................................................... 50 3.3.6 Mobile devices support ...................................................................................................... 52 3.3.7 Logging and statistics ........................................................................................................ 53 3.3.8 Documentation ................................................................................................................. 55 3.3.9 Integration ........................................................................................................................ 56 3.3.10 Usability ......................................................................................................................... 57 3.3.11 Support .......................................................................................................................... 58 4. EVALUATION RESULTS ................................................................................................... 59 5. ABOUT THE AUTHORS .................................................................................................... 61 [email protected] +1 (650) 265-2266 Click for more 2 www.altoros.com | twitter.com/altoros NoSQL research! 1. Executive Summary A variety of NoSQL solutions exist to solve the problems of rapidly growing data sets, data structure organization, as well as management and efficiency of accessing data. The implementation approaches of databases vary significantly from a vendor to a vendor, so it is important to recognize the strengths and weaknesses of the various NoSQL options available. This is why, before deciding which NoSQL database to use for a solution, system architects and IT managers typically compare data stores in their own environments, employing representative data and user interactions for the expected production workloads. This report provides an in-depth analysis of the leading NoSQL solutions: Couchbase Server v6.0, MongoDB v4.0, and DataStax Enterprise (Cassandra) v6.7. The comparison evaluates the systems from different angles to help choose the most appropriate option—based on performance, availability, ease of installation and maintenance, data consistency, fault tolerance, replication, recovery, scalability, and other criteria. In addition to general information on each evaluated data store, the report contains some recommendations on the best ways to configure, install, and use the NoSQL databases depending on their specific features. In the last chapter, a comparative table summarizes how Couchbase Server, MongoDB, and DataStax Enterprise (Cassandra) scored for each criterion on a scale from 1 to 10. A note on methodology: For criteria based on measurable data, scores were applied based on real- world practical experience in using the products under evaluation and regularly conducted benchmarks. For criteria based on qualitative data (e.g., installation and maintenance procedures), scores were applied based on in-depth review of documentation and our own experience in development and production. 2. Installation and Configuration This section evaluates how easy it is to install and configure the databases. Couchbase Server Couchbase documentation contains all the details of the installation process for Linux, Windows, and Mac OS. Couchbase Server provides a preconfigured Amazon Machine Image (AMI) in the Amazon Web Services marketplace for deploying on AWS. Couchbase Server Enterprise Edition Google Cloud Launcher allows for deploying on Google Cloud Platform (GCP); the Azure Resource Manager (ARM) template enables the deployment of Couchbase Server on Microsoft Azure. Couchbase Server Docker images are available at the Docker Hub. In addition, Couchbase can be run and managed on Kubernetes and OpenShift by using Autonomous Operator. Couchbase Server offers three options for configuration: a REST API, a command-line interface (CLI), and a web UI. MongoDB MongoDB provides various options for cloud and on-premises installations. The database can be deployed using Atlas, a cloud solution for AWS, Azure, and GCP. Besides the cloud offering, [email protected] +1 (650) 265-2266 Click for more 3 www.altoros.com | twitter.com/altoros NoSQL research! distributions for specific operating systems, as well as Ops Manager and Cloud Managers are available. To use Ops Manager, one should meet the deployment prerequisites, which imply configuring networking access for hosts that serve MongoDB deployments, as well as installing MongoDB Enterprise dependencies and Automation Agents on each machine in the cluster. Before installing Ops Manager, a database for Ops Manager and an optional backup database should be created. Once completed, a MongoDB cluster can be deployed via the web UI or Kubernetes. Manual installation and configuration for a MongoDB sharded cluster is a fairly complicated procedure. In short, it is needed to satisfy installation prerequisites and then separately configure all the data shards, configuration servers, and sharding routers to finally join those components into a cluster. Sharded cluster infrastructure requirements and complexity call for careful planning, execution, and maintenance. Before deploying a production cluster, database engineers should think carefully about the cluster architecture and make decisions regarding cluster topology, security, and backup. In addition, one has to answer the questions related to the amount of primaries (data shards), secondaries, arbitries, as well as the number of mongooses and where they will be launched. Furthermore, developers have to think about the configuration of cluster members and storage engine type. Though deployment can be complicated, there are preconfigured MongoDB images available for most cloud platforms, as well as a number of competing Database-as-a-Service offerings. DataStax Enterprise (Cassandra) DataStax Enterprise (DSE) requires preinstallation of the Java Development Kit. There are two ways to install DataStax Enterprise
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages61 Page
-
File Size-