|
Katana DB |
Cassandra |
MongoDB |
CouchDB |
HBase |
Voldemort |
Redis |
Tokyo /Kyoto Cabinet |
Riak |
RavenDB |
CitrusLeaf |
BigData |
License |
TDB |
Apache 2.0 |
AGPLv3 |
Apache 2.0 |
Apache 2.0 |
Apache 2.0 |
BSD |
GPLv3 |
Apache 2.0 |
AGPLv3 |
Proprietary |
GPLv2 |
Price |
TDB |
Free |
Free, Commercial |
Free |
Free |
Free |
Free |
Free or $12K |
Free |
Free or $1k/dev/yr |
Per TB per month per DataCenter |
Free, Commercial |
Support |
TDB |
Riptano, others, Community |
10gen, Community |
CouchBase, Cloudant, Community |
Cloudera, Community |
Community, LinkedIn* |
Community, VMWare* |
Community, FallLabs |
Community, Basho Tech, Akamai* |
Hibernating Rhinos, Community |
CitrusLeaf |
Community, 3rd Parties |
Data model |
Key-value with sub-keys |
Columnar + Indexes |
Documents + Indices (JSON), Cappable |
Documents + Indices, Views |
Columnar,
?Indexing? |
Key-value, no sub keys |
Key-value, support for sets, lists, hash maps |
Key-value, DBM successor (like BDB) |
Key-value, Dyanmo-based |
Documents + Indices (JSON), Views |
Key-value |
Graph |
Partitioning |
Static Hash in R1, Split nodes evenly |
Dynamic Hash, Split busiest node |
Sorted Shards with UDSpec, Chunks (200MB) move around |
Not supported |
Sorted Regions/Shards, automatic Region splits when reaches size X |
Consistent Hash, migratable partitions planned |
Not supported, although some clients implement consistent hashing |
Not supported |
Consistent Hash, Shards |
UD Key range Shards with round robin |
Clustering |
|
Language APIs |
Java |
Multiple, Thrift, RPC |
C, C#, JavaScript, Python, PHP, Ruby, Java, C++, Perl, many 3rd party |
REST/JSON, many 3rd party |
Java, REST, Thrift |
Java, Python, C++ |
Telnet style, C, C++, C#, Java, Perl, PHP, Python, R, Ruby, Scala, others |
C++, C, Java, Python, Ruby, Perl, and Lua |
MapReduce, Python, JavaScript, Erlang, Java, PHP, Ruby |
C#, HTTP |
C, C#, Java, Python, Ruby, PHP |
|
Replication |
Single Master with configurable durability |
Multi-Master with vector clocks |
Single Master, configurable durability with early visibility |
Bi-directional, delayed or synchronous with conflict resolution and partial replicas |
Single Master, delayed WAL log replay |
Multi-Master, Read/Write anywhere with data repair |
Single Master, writable Slaves, durability is “all”? |
Not supported |
Multi-Master, Read/Write anywhere with data repair and vector clocks |
Multi-Master, R/W anywhere with conflict resolution |
|
|
Topology Options |
None in R1 |
Rack Aware & Unaware, DC Aware |
Data Center priority |
|
|
Data Center aware |
None |
None |
Hinted Handoff |
None |
|
|
Storage |
Log-based FS, configurable durability |
Log-based FS |
Lazy writes to FS, HA for durability |
ACID, append-only |
Hadoop FS, durable via replication |
BDB JE or MySQL |
In-memory, w/ Snapshots or Append-only log |
Page-based files with WAL and shadow paging |
Pluggable storage layer including InnoDB |
|
|
|
Transactions |
Yes, Autocommit, Major Key + Sub keys |
Yes, single record including Super-columns |
Yes, autocommit |
Document-centric , lockless with client conflict resolution |
Record & Multi-record locking transactions (new) |
Autocommit operations |
None |
Yes, single and multiple operations |
Autocommit operations, pre & posrt commit hooks |
Autocommit & multi-operation |
|
|
Consistency |
Transactional, Configurable |
Eventual, with read repair option |
Eventual, with delay if master fails |
Distributed edits with conflict resolution |
Read-committed transaction isolation |
Eventual with client-centric conflict resolution |
? |
Serializable and Read Committed. |
Eventual with client-centric conflict resolution |
Eventual with client-centric conflict resolution |
Immediate |
|
Admin |
Web Console, API, CLI |
Ganglia, JConsole, CLI |
Multiple UIs, Ganglia, REST, HTTP, Java Script |
Futon Web Admin tool |
? |
Java API, CLI |
CLI |
CLI and utilities |
CLI and utilities |
CLI and utilities |
|
|
Backup |
Single or multi-node |
All Nodes for consistency |
Quiescent, Write Lock or Snapshot |
File copy? |
Import/export |
BDB JE/MySQL backup? |
Replication or copy file Snapshots |
File copy |
Per node or all nodes |
Snapshot backups |
|
|