1. NoSQL standouts: The best document databases
Here we’ve profiled seven of the best known and most widely used document databases. Four of the seven—CouchDB, Couchbase Server, MongoDB, and RethinkDB—are open source projects with few or no practical barriers to getting started; Couchbase and MongoDB are also available in supported enterprise editions under commercial licenses. The other three—Amazon DynamoDB, Google Firebase, and IBM Cloudant—are hosted services from major cloud vendors, where close integration with other services in those clouds is a big draw.
Amazon DynamoDB | Cosmos DB | Couchbase | CouchDB | Google Firebase | IBM Cloudant | MarkLogic | MongoDB | RethinkDB | |
---|---|---|---|---|---|---|---|---|---|
Platforms | Cloud-only | Cloud-only | LWM | LWMIAO | Cloud-only | Cloud-only | LWMS | LWMS | LWM |
Query systems | REST API | MongoDB wire protocol | Memcached protocol, REST API | REST API | REST/JavaScript API | REST API | REST API | JSON-based API, partial REST API | ReQL query language, REST API |
SQL querying | No1 | Yes | Via N1QL language | No | No | No | Yes | No1 | No |
Strong typing | Yes | Yes | Yes | No | Yes | No | For XML schemas | Yes | Yes |
Native joins | No | Yes | Yes | No | No | No | Yes | Yes | Yes |
Sharding partitioning | Yes | Yes | Yes | Yes | NA | Yes | Yes | Yes | Yes2 |
Clustering | NA | Yes | Yes | Yes | NA | NA | Yes | Yes | Yes |
Replication | Yes | Yes | Yes | Yes | NA | Yes | Yes | Yes | Per table |
Consistency: Immediate | Per read | Yes | Per overall | No | Connected clients | No | Yes | Per write | Per document |
Consistency: Eventual | Yes | Yes | Yes | Yes | Offline clients | Yes | Yes | Yes | Entire database |
Concurrency | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
In-memory operations | NA | NA | No | No | NA | No | NA | Yes3 | No |
Stored procedures | No | JavaScript | JavaScript4 | JavaScript4 | Rules | JavaScript4 | XQuery Module | JavaScript | No |
Transactions | By app | Yes | Single documents | Single documents | Yes | Single documents | Single documents | Single documents5 | Single documents |
Current version | NA | NA | 5.0 (Oct. 2017) | 2.1.1 (Nov. 2017) | NA | NA | 9.0 (May 2016) | 3.4.10 (Oct. 2017) | 2.3.6 (Jul. 2017) |
Initial release | 2012 | 2017 | 2011 | 2005 | 2012 | 2010 | 2005 | 2009 | 2009 |
key: L=Linux, W=Windows, M=MacOS, S=Solaris, I=iOS, A=Android, O=other mobile,
- Third-party tools may provide this functionality. 2. Per table. 3. Enterprise edition only. 4. View functions only. 5. Multidocument transactions are also available, but not on sharded clusters.
- DynamoDB
similar ideas to create Apache Cassandra by co-developer
Amazon’s DynamoDB document store began life in 2012 as an extension of Amazon’s SimpleDB. Under the hood it is powered by a key-value store, Dynamo.
. DynamoDB offers developers useful integrations with other services in the Amazon cloud. Triggers, for instance, can be set up by way of AWS Lambda functions. Amazon’s BI and analysis tools are also nearby.
- Microsoft Azure Cosmos DB
ambitious project: Cosmos DB can serve as a document database, a columnar database, a graph database, or a key-value store
provides an API compatible with the popular MongoDB
- CouchBase Server
Couchbase was built on work done in CouchDB and Membase
It’s a document database and distributed key-value store rolled into one, with advanced features like automated failover and cross-datacenter replication, intended for enterprise use cases
. SQL-like query language called N1QL
. Couchbase has native support for the Memcached protocol
- MongoDB
MongoDB is easily the most widely deployed document database
It embodies most of the key concepts found in document databases and NoSQL systems generally: schemaless storage, a scale-out architecture, and a shared-nothing design.
. Recent addition: in-memory processing, a SQL-like interface through third-party data exploration and BI tools like Tableau, and the ability to perform recursive graph queries on document data
- RethinkDB
The big innovation behind RethinkDB is a built-in change notification system that streams live updates to applications. In the words of its introductory documentation, “instead of polling for changes, the developer can tell the database to continuously push updated query results to applications in realtime.”
RethinkDB lacks native support for SQL, but includes a querying system called ReQL
2 NoSQL standouts: The best key-value databases compared
Aerospike | Hazelcast IMDG | Microsoft Azure Cosmos DB | Memcached | Redis | |
---|---|---|---|---|---|
Platforms | LWMO | Java | Cloud-only | LWMO | LWMO |
Current version | 3.14.1.1 | 3.9 | N/A | 1.5.1 | 4.0.1 |
Initial release | 2012 | 2008 | 2017 | 2003 | 2009 |
License | AGPL | Apache 2 | Proprietary | BSD | BSD |
Disk-backed | Yes | No | Yes | No | YesBSD |
Clustering | Yes | Yes | Yes | No | Yes |
Sharding/partitioning | Yes | Yes | Yes | No | Yes |
Native scripting | Yes | Java | Yes | No | Yes |
Transactions | Per key | Yes | Yes | No | Yes |
Embeddable | Yes* | Yes | No | Yes* | Yes* |
3 NoSQL grudge match: MongoDB vs. Couchbase Server
MongoDB combines the benefits of immense popularity, support for simple graph searches, and the ability to perform SQL queries via a BI connector. Couchbase has its own large community of users, a performant key-value architecture, and a SQL-like query language capable of navigating nested document structures.