Cassandra和HBase主要设计思路对比

标签: 存储 | 发表时间:2011-04-13 21:45 | 作者:xiaofeng 三十不归
出处:http://rdc.taobao.com/team/jm
Cassandra HBase
一致性 Quorum NRW策略

通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性

单节点,无复制,强一致性
可用性 1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障。

2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点。

3,通过Gossip协议维护集群所有节点的健康状态,并发送同步请求,维护数据一致性。

4,SSTable,纯文件,单机可靠性一般。

1,存在单点故障,Region Server宕机后,短时间内该server维护的region无法访问,等待failover生效。

2,通过Master维护各Region Server健康状况和Region分布。

3,多个Master,Master宕机有zookeeper的paxos投票机制选取下一任Master。Master就算全宕机,也不影响Region读写。Master仅充当一个自动运维角色。

4,HDFS为分布式存储引擎,一备三,高可靠,0数据丢失。

5,HDFS的namenode是一个SPOF。

伸缩性 1,Consistent Hash,快速定位数据所在节点。

2,扩容需在Hash Ring上多个节点间调整数据分布。

1,通过Zookeeper定位目标Region Server,最后定位Region。

2,Region Server扩容,通过将自身发布到Master,Master均匀分布。

负载均

请求Zookeeper取得整个集群地址,然后根据Consistent Hash选择合适的节点。client会缓存集群地址。 请求Zookeeper取读写数据路由表定位Region Server,Master会修改这个路由表。Client自身也会缓存一部分路由信息。
数据差异比较算法 Merkle TreeBloom Filter Bloom Filter
锁与事务 Client Timestap(Dynamo使用vector lock) Optimistic Concurrency Control
读写性能 数据读写定位非常快。 数据读写定位可能要通过最多6次的网络RPC,性能较低。
CAP点评 1,弱一致性,数据可能丢失。

2,可用性高。

3,扩容方便。

1,强一致性,0数据丢失。

2,可用性低。

3,扩容方便。

相关 [cassandra hbase 设计] 推荐:

Cassandra和HBase主要设计思路对比

- 三十不归 - 淘宝JAVA中间件团队博客
Cassandra HBase 一致性 Quorum NRW策略 通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性. 单节点,无复制,强一致性 可用性 1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障. 2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点.

[转][转]Cassandra、MongoDB、CouchDB、Redis、Riak、HBase比较

- - heiyeluren的blog(黑夜路人的开源世界)
来源: http://blog.nosqlfan.com/html/1845.html. 在NoSQL如日中天的今天,各种NoSQL产品可谓百花齐放,但每一个产品都有自己的特点,有长处也有不适合的场景. 本文对 Cassandra,  Mongodb,  CouchDB,  Redis,  Riak 以及  HBase 进行了多方面的特点分析,希望看完此文的您能够对这些NoSQL产品的特性有所了解.

Cassandra HBase和MongoDb性能比较

- - 数据库 - ITeye博客
这是一篇基于亚马逊云平台上对三个主流的. NoSQL数据库性能比较,在读写两个操作不同的组合情况下性能表现不同. 横坐标是吞吐量,纵坐标是延迟,这是一对矛盾,吞吐量越大,延迟越低,代表越好. 纯粹插入,Cassandra领先,见下图:. 2.WorkloadA: 读修改操作各占一半情况下的修改性能:MongoDB明显延迟增加,落败:.

HBase vs Cassandra: 我们迁移系统的原因

- - 开源软件 - ITeye博客
原作者:Dominic Williams . 原文发布日期:February 24, 2010 at 7:27 pm . 翻译时间:2010年3月21-25日. 我的团队近来正在忙于一个全新的产品——即将发布的网络游戏 . 这让我们得以奢侈地去构建一个全新的 NOSQL 数据库,也就是说,我们可以把恐怖的 MySQL sharding 和昂贵的可伸缩性抛在脑后了.

HBase表设计

- - 互联网 - ITeye博客
默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据, 直到这 个region足够大了才进行切分. 一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按 照 region分区情况,在集群内做数据的负载均衡.

HBase Schema 设计

- - IT瘾-dev
HBase 与传统关系数据库(例如MySQL,PostgreSQL,Oracle等)在架构的设计以及为应用程序提供的功能方面有很大的不同. HBase 权衡了其中一些功能,以实现更好的可扩展性以及更灵活的模式. 与关系数据库相比,HBase 表的设计有很大的不同. 下面将通过解释数据模型向您介绍 HBase 表设计的基础知识,并通过一个例子深入探讨 HBase 表的设计.

HBase RowKey 设计

- - IT瘾-dev
1.1 RowKey对查询的影响. HBase中 RowKey 用来唯一标识一行记录. 在 HBase 中检索数据有以下三种方式:. 通过 get 方式,指定 RowKey 获取唯一一条记录. 通过 scan 方式,设置 startRow 和 endRow 参数进行范围匹配. 全表扫描,即直接扫描整张表中所有行记录.

NOSQL数据库大比拼:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase

- - 博客园_Ruby's Louvre
话说,尽管 SQL 数据库一直是我们IT行业中最有用的工具,然而,它们这样在行业中超过15年以上的“转正”终于就要寿终正寝了. 现在,虽然关系型数据库仍然无所不在,但它越来越不能满足我们的需要了. 但是,各种 "NoSQL" 数据库之间的差异比当年众多关系型数据库之间的差异要大许多. 这就加大了人们在建设自己的应用是选择合适的数据库的难度.

Cassandra数据模型设计案例分析-转载

- - 人月神话的BLOG
原文:http://www.lamfire.com/?p=313. 近来 Cassandra 备受瞩目,很多人正在评估是否可以应用 Cassandra. 由于这些人更多的追求速度,相应的,我们的文档就过于粗浅了. 这些文章中,最差的是为有关系数据库基础的人解释Cassandra数据模型的那些. Cassandra 数据模型实际和传统的数据库差异非常大,足够让人眩晕,而且很多误解都需要修正.