Best used | When you write more than you read (logging). If every
component of the system must be in Java. ("No one gets
fired for choosing Apache's stuff.") | For accumulating, occasionally changing data, on which
pre-defined queries are to be run. Places where
versioning is important. | Primarily offered as Database as a Service, allows you to operate
50-node cluster at a fraction of a cost (Pay per CPU). Most
suitable for Web-based ACID-compliant solutions, but can be used
for many other tasks. | | When you have a lot of simple records. | If you're in love with BigTable. :) And when you need
random, realtime read/write access to your Big Data. | If you need dynamic queries. If you prefer to define
indexes, not map/reduce functions. If you need good performance on
a big DB. If you wanted CouchDB, but your data changes too
much, filling up disks. | For rapidly changing data with a foreseeable database size
(should fit mostly in memory) |
---|
Usage example | Banking, financial industry (though not necessarily for financial
transactions, but these industries are much bigger than that.)
Writes are faster than reads, so one natural niche is real time
data analysis. | CRM, CMS systems. Master-master replication is an especially
interesting feature, allowing easy multi-site deployments. | Feature-wise sits between SQL and MongoDB offering great horizontal
scaling in combination with transaction support, Geo, Full-text
searches, group-by. | | | Facebook Messaging Database | For all things that you would do with MySQL or PostgreSQL, but
having predefined columns really holds you back. | Stock prices. Analytics. Real-time data collection. Real-time
communication. |
---|
Known Shortcomings | | | Lacks embedded language. | No ordering. | No embedded language. Multiple index queries. Lacks features. | | | Sizes limited by amount of RAM. |
---|
Main focus | Best of BigTable and Dynamo | DB consistency, ease of use | Simple setup. Features. Horizontal scaling. | | | Billions of rows X millions of columns | Retains some friendly properties of SQL. (Query, index) | Speed |
---|
License | Apache | Apache | Proprietary, but available as free download. | Proprietary. Cloud-only. | Proprietary. Cloud-only. | Apache | AGPL (Drivers: Apache) | BSD |
---|
Pricing | | | Free download or pay per resource (CPU, Traffic, Storage) | | Pay per requests / traffic. | | Free download or Pay per instance + Service (MongoLab) | |
---|
Projects using it |
- Cisco's WebEx: to store user feed and activity
- Digg
- Twitter: local trends, analytics...
| apache.org/... | | | |
- Facebook: messages infrastructure
- Twitter: read/write backup of mysql tables; for people
search...
- Yahoo!: to detect document duplication based on
fingerprint
apache.org/... |
- bit.ly
- diaspora
- Shutterfly
- foursquare
- SourceForge
|
- craigslist.org
- github.com
- guardian.co.uk
- Disqus
- stackoverflow.com
- flickr.net
- tweetdeck.com
- blizzard.com
|
---|
Technical details | | | | | | | | |
---|
Latest version | 2.1.4 | 1.6.1 | 3.0 | | | 0.98.4 | 3.0.3 | 6.0.4 |
---|
Release date | Apr. 1st 2015 | Sep. 3rd 2014 | Feb. 15th 2015 | | | Jul. 21st 2014 | May 12th 2015 | May 28th 2020 |
---|
Initial release | 2008 | 2005 | 2006 | | 2012 | | 2009 | 2009 |
---|
Consistency | | | Strong | Strong/Eventual | | | Eventual (strong with flag) | |
---|
Replication | | Multi-master replication | Multi-master | | | | Master/slave | Master/slave |
---|
Protocol | Thrift (Binary) | HTTP/REST | HTTP/Rest | | REST | HTTP/REST (and Thrift) | BSON (Binary) | Telnet-like |
---|
Data Presentation | | | XML / JSON | JSON | JSON | | JSON | |
---|
Development language | Java | Erlang | C++ | | | Java | C++ | C/C++ |
---|
Platforms | Cross-platform | Cross-platform | Cloud or Linux | Cloud only | Cloud only
"DynamoDB Local" cross-platform (single instance for development) | Cross-platform | Cross-platform | Cross-platform |
---|
API Language | | | | | | | | |
---|
Embedded Language | | | None | JavaScript | None | | JavaScript | None |
---|
Additional | | | | | | | | |
---|
Website | apache.org | apache.org | clusterpoint.com | microsoft.com/... | amazon.com/... | apache.org | mongodb.org | redis.io |
---|
Wikipedia | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... | wikipedia.org/... |
---|
Additional link | | | | justazure.com/... | | apache.org/... | | |
---|
Features | | | | | | | | |
---|
Cloud DB | | | Yes | Yes | Yes | | Third Party | |
---|
Transaction support | No | No | Yes | No | No | No | No | Yes |
---|
Domain-model Aggregation | | | Yes | No | No | | Yes | |
---|
GeoSpatial | | | Yes | No | Yes | | Yes | |
---|
FullText | | | Yes | No | No | | | |
---|
Commercial Support | | | Included into DB-Service | | | | Third parties. | |
---|
User reviews and comments
Great comparison. I've added 3 more databases and also proposed change for the title. Looks like this comparison focuses on document-oriented databases only (wikipedia.org/... Can anyone populate DynamoDB and DocumentDB (from microsoft), those two are great databases.
There are many other types for storing trees, key-value, or column-based and it would be difficult to compare them properly.