博客园  :: 首页  :: 联系 :: 管理

NoSql中的CAP分类【转载】

Posted on 2013-05-02 14:10  Apprentice89  阅读(301)  评论(0编辑  收藏  举报

转载自:NoSQL 中的 CAP 原理

我们知道 CAP 原来是任何存储无法规避的定律,任何存储设备都无法在一致性(C),可用性(A)和分区可容忍性(P)三者上都做得非常好。这就是所谓的CAP定律

这里推荐的这篇文章,从CAP原理讲起,然后将目前的各大 NoSQL 产品进行了分类,如下:

 

按功能分类:

l  Relational 关系性数据库,这里就不多说了,像我们常用的 MySQL 就是杰了代表。

l  Key-value 键值存储,支持简单的get setdelete等协议。

l  Column-oriented 列式存储,通常不支持join操作,与传统关系型数据库的行式存储相比他的存储是列式的,这样会让很多统计聚合操作更简单方便。

l  Document-oriented 文档型存储,通常是将数据存在Json或者Xml,同样不支持join操作。这种存储方式可以很容易地被面向对象的语言所使用。

 

满足一致性,可用性的系统(CA,通常在可扩展性上不太强大:

l  Traditional RDBMSs like Postgres, MySQL, etc (relational)

l  Vertica (column-oriented)

l  Aster Data (relational)

l  Greenplum (relational)

 

满足一致性,分区容忍性的系统(CP,通常性能不是特别高:

l  BigTable (column-oriented/tabular)

l  Hypertable (column-oriented/tabular)

l  HBase (column-oriented/tabular)

l  MongoDB (document-oriented)

l  Terrastore (document-oriented)

l  Redis (key-value)

l  Scalaris (key-value)

l  MemcacheDB (key-value)

l  Berkeley DB (key-value)

 

满足可用性,分区容忍性的系统(AP,通常可能对一致性要求低一些:

l  Dynamo (key-value)

l  Voldemort (key-value)

l  Tokyo Cabinet (key-value)

l  KAI (key-value)

l  Cassandra (column-oriented/tabular)

l  CouchDB (document-oriented)

l  SimpleDB (document-oriented)

l  Riak (document-oriented)