云级Key-value数据库大比较

以下列表对各类Key-Value 的NoSQL数据库从 备份backup 到 Language API 各个方面进行了比较:

 

 

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

 

 

其中*符号表示 该软件受到团体的支持(corporate support),这里的团体是指 该数据库的最主要用户和开发基金会,但是并不提供服务支持。

 

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *