DBMS > IBM Cloudant vs. KeyDB vs. Microsoft Azure Cosmos DB vs. Percona Server for MongoDB vs. TinkerGraph
System Properties Comparison IBM Cloudant vs. KeyDB vs. Microsoft Azure Cosmos DB vs. Percona Server for MongoDB vs. TinkerGraph
Editorial information provided by DB-Engines | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Name | IBM Cloudant Xexclude from comparison | KeyDB Xexclude from comparison | Microsoft Azure Cosmos DB former name was Azure DocumentDB Xexclude from comparison | Percona Server for MongoDB Xexclude from comparison | TinkerGraph Xexclude from comparison | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Description | Database as a Service offering based on Apache CouchDB | An ultra-fast, open source Key-value store fully compatible with Redis API, modules, and protocols | Globally distributed, horizontally scalable, multi-model database service | A drop-in replacement for MongoDB Community Edition with enterprise-grade features. | A lightweight, in-memory graph engine that serves as a reference implementation of the TinkerPop3 API | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primary database model | Document store | Key-value store | Document store Graph DBMS Key-value store Wide column store | Document store | Graph DBMS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary database models | Spatial DBMS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Website | www.ibm.com/products/cloudant | github.com/Snapchat/KeyDB keydb.dev | azure.microsoft.com/services/cosmos-db | www.percona.com/mongodb/software/percona-server-for-mongodb | tinkerpop.apache.org/docs/current/reference/#tinkergraph-gremlin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Technical documentation | cloud.ibm.com/docs/Cloudant | docs.keydb.dev | learn.microsoft.com/azure/cosmos-db | docs.percona.com/percona-distribution-for-mongodb | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Developer | IBM, Apache Software Foundation IBM acquired Cloudant in February 2014 | EQ Alpha Technology Ltd. | Microsoft | Percona | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Initial release | 2010 | 2019 | 2014 | 2015 | 2009 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Current release | 3.4.10-2.10, November 2017 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License Commercial or Open Source | commercial | Open Source BSD-3 | commercial | Open Source GPL Version 2 | Open Source Apache 2.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cloud-based only Only available as a cloud service | yes | no | yes | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBaaS offerings (sponsored links) Database as a Service Providers of DBaaS offerings, please contact us to be listed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implementation language | Erlang | C++ | C++ | Java | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server operating systems | hosted | Linux | hosted | Linux | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data scheme | schema-free | schema-free | schema-free | schema-free | schema-free | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Typing predefined data types such as float or date | no | partial Supported data types are strings, hashes, lists, sets and sorted sets, bit arrays, hyperloglogs and geospatial indexes | yes JSON types | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML support Some form of processing data in XML format, e.g. support for XML data structures, and/or support for XPath, XQuery or XSLT. | no | no | no | no | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Secondary indexes | yes | yes by using the Redis Search module | yes All properties auto-indexed by default | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SQL Support of SQL | no | no | SQL-like query language | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
APIs and other access methods | RESTful HTTP/JSON API | Proprietary protocol RESP - REdis Serialization Protoco | DocumentDB API Graph API (Gremlin) MongoDB API RESTful HTTP API Table API | proprietary protocol using JSON | TinkerPop 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Supported programming languages | C# Java JavaScript Objective-C PHP Ruby | C C# C++ Clojure Crystal D Dart Elixir Erlang Fancy Go Haskell Haxe Java JavaScript (Node.js) Lisp Lua MatLab Objective-C OCaml Pascal Perl PHP Prolog Pure Data Python R Rebol Ruby Rust Scala Scheme Smalltalk Swift Tcl Visual Basic | .Net C# Java JavaScript JavaScript (Node.js) MongoDB client drivers written for various programming languages Python | Actionscript C C# C++ Clojure ColdFusion D Dart Delphi Erlang Go Groovy Haskell Java JavaScript Lisp Lua MatLab Perl PHP PowerShell Prolog Python R Ruby Scala Smalltalk | Groovy Java | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Server-side scripts Stored procedures | View functions (Map-Reduce) in JavaScript | Lua | JavaScript | JavaScript | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Triggers | yes | no | JavaScript | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Partitioning methods Methods for storing different data on different nodes | Sharding | Sharding | Sharding Implicit feature of the cloud service | Sharding | none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Replication methods Methods for redundantly storing data on multiple nodes | Multi-source replication Source-replica replication | Multi-source replication Source-replica replication | yes Implicit feature of the cloud service | Source-replica replication | none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MapReduce Offers an API for user-defined Map/Reduce methods | yes | no | with Hadoop integration Integration with Hadoop/HDInsight on Azure* | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Consistency concepts Methods to ensure consistency in a distributed system | Eventual Consistency | Eventual Consistency Strong eventual consistency with CRDTs | Bounded Staleness Consistent Prefix Eventual Consistency Immediate Consistency Consistency level configurable on request level Session Consistency | Eventual Consistency Immediate Consistency | none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foreign keys Referential integrity | no | no | no | no | yes Relationships in graphs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Transaction concepts Support to ensure data integrity after non-atomic manipulations of data | no atomic operations within a document possible | Optimistic locking, atomic execution of commands blocks and scripts | Multi-item ACID transactions with snapshot isolation within a partition | no | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Concurrency Support for concurrent manipulation of data | yes Optimistic locking | yes | yes | yes | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Durability Support for making data persistent | yes | yes Configurable mechanisms for persistency via snapshots and/or operations logs | yes | yes | optional | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
In-memory capabilities Is there an option to define some or all structures to be held in-memory only. | no | yes | yes via In-Memory Engine | yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User concepts Access control | Access rights for users can be defined per database | simple password-based access control and ACL | Access rights can be defined down to the item level | Access rights for users and roles | no | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More information provided by the system vendorWe invite representatives of system vendors to contact us for updating and extending the system information, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Related products and services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3rd parties | CData: Connect to Big Data & NoSQL through standard Drivers. » more | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We invite representatives of vendors of related products to contact us for presenting information about their offerings here. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
More resources | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IBM Cloudant | KeyDB | Microsoft Azure Cosmos DB former name was Azure DocumentDB | Percona Server for MongoDB | TinkerGraph | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recent citations in the news | Cloudant Best (and Worst) Practices — Part 1 Intro to Enterprise Cloud Storage: How to Set Up a Cloudant Database IBM Expands Cloud Database Services with Kubernetes IBM Code Engine and IBM Cloudant: Serverless Data and Infrastructure IBM to Purchase Cloudant Database as a service (DBaaS) Provider provided by Google News | Oh, snap! Snap snaps up database developer KeyDB Snap Acquires KeyDB for Open-Source Services Garnet–open-source faster cache-store speeds up applications, services Microsoft open-sources Garnet cache-store -- a Redis rival? Redis 6 arrives with multithreading for faster I/O provided by Google News | General Availability: Data API builder | Azure updates Start your AI journey with Microsoft Azure Cosmos DB—compete for $10K Azure Synapse Link for Cosmos DB: New Analytics Capabilities How to Migrate Azure Cosmos DB Databases | by Arwin Lashawn Microsoft Benchmarks Distributed PostgreSQL DBs provided by Google News | 5 Reasons to Run MongoDB on Kubernetes Percona launches management system aimed at open-source databases FerretDB goes GA: Gives you MongoDB, without the MongoDB... The essential guide to MongoDB security Percona's DBMS Popularity Survey provided by Google News | Why developers like Apache TinkerPop, an open source framework for graph computing | Amazon Web Services Simple Deployment of a Graph Database: JanusGraph | by Edward Elson Kosasih Introducing Gremlin query hints for Amazon Neptune | AWS Database Blog InfiniteGraph Gets Support for Common Graph Database Language and More provided by Google News |
Share this page