云计算 频道

云计算背后的秘密(6)-NoSQL数据库综述

  具体分类

  下面的具体分类是来自于Visual Guide to NoSQL Systems一文,虽然对于这块分类我个人觉得还存在一些牵强的地方,比如将能支持多种CAP配置的Dynamo和其衍生产品Cassandra归类为AP,但是总体而言,这个分类还是相当不错,在现阶段非常具有参考价值,在每个相关的数据库后面还会介绍对应的数据模型。

具体分类和参考资料
▲图1. NoSQL产品分类图(参考1)

  关注一致性和可用性的 (CA)

  这些数据库对于分区容忍性方面比较不感冒,主要采用复制(Replication)这种方式来保证数据的安全性,常见的CA系统有:

  1. 传统关系型数据库,比如Postgres和MySQL等(Relational) ;

  2. Vertica (Column-oriented) ;

  3. Aster Data (Relational) ;

  4. Greenplum (Relational) ;

  关注一致性和分区容忍性的(CP)

  这种系统将数据分布在多个网络分区的节点上,并保证这些数据的一致性,但是对于可用性的支持方面有问题,比如当集群出现问题的话,节点有可能因无法确保数据是一致性的而拒绝提供服务,主要的CP系统有:

  1. BigTable (Column-oriented) ;

  2. Hypertable (Column-oriented);

  3. HBase (Column-oriented) ;

  4. MongoDB (Document) ;

  5. Terrastore (Document) ;

  6. Redis (Key-value) ;

  7. Scalaris (Key-value) ;

  8. MemcacheDB (Key-value) ;

  9. Berkeley DB (Key-value) ;

  关于可用性和分区容忍性的(AP)

  这类系统主要以实现"最终一致性(Eventual Consistency)"来确保可用性和分区容忍性,AP的系统有:

  1. Dynamo (Key-value);

  2. Voldemort (Key-value) ;

  3. Tokyo Cabinet (Key-value) ;

  4. KAI (Key-value) ;

  5. Cassandra (Column-oriented) ;

  6. CouchDB (Document-oriented) ;

  7. SimpleDB (Document-oriented) ;

  8. Riak (Document-oriented) ;

  在下一期云计算背后的秘密中,将重点给大家介绍我个人设计一款的NoSQL数据库,名为YunTable。

  参考资料

  1. Visual Guide to NoSQL Systems

  2. NoSQL数据库笔谈

  3. NoSQL数据库探讨之一 - 为什么要用非关系数据库?

  作者简介

  吴朱华,之前在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于YunTable【http://code.google.com/p/yuntable/】和YunEngine【http://yunengine.com/】的研发,并即将发表《剖析云计算》一书,敬请期待。

0
相关文章