Cassandra和HBase主要设计思路对比
短信预约 -IT技能 免费直播动态提醒
Cassandra | HBase | |
一致性 | QuorumNRW策略
通过Gossip协议同步MerkleTree,维护集群节点间的数据一致性 | 单节点,无复制,强一致性 |
可用性 | 1,基于ConsistentHash相邻节点复制数据,数据存在于多个节点,无单点故障。
2,某节点宕机,hash到该节点的新数据自动路由到下一节点做hintedhandoff,源节点恢复后,推送回源节点。 3,通过Gossip协议维护集群所有节点的健康状态,并发送同步请求,维护数据一致性。 4,SSTable,纯文件,单机可靠性一般。 | 1,存在单点故障,RegionServer宕机后,短时间内该server维护的region无法访问,等待failover生效。
2,通过Master维护各RegionServer健康状况和Region分布。 3,多个Master,Master宕机有zookeeper的paxos投票机制选取下一任Master。Master就算全宕机,也不影响Region读写。Master仅充当一个自动运维角色。 4,HDFS为分布式存储引擎,一备三,高可靠,0数据丢失。 5,HDFS的namenode是一个SPOF。 |
伸缩性 | 1,ConsistentHash,快速定位数据所在节点。
2,扩容需在HashRing上多个节点间调整数据分布。 | 1,通过Zookeeper定位目标RegionServer,最后定位Region。
2,RegionServer扩容,通过将自身发布到Master,Master均匀分布。 |
负载均
衡 | 请求Zookeeper取得整个集群地址,然后根据ConsistentHash选择合适的节点。client会缓存集群地址。 | 请求Zookeeper取读写数据路由表定位RegionServer,Master会修改这个路由表。Client自身也会缓存一部分路由信息。 |
数据差异比较算法 | MerkleTree,BloomFilter | BloomFilter |
锁与事务 | ClientTimestap(Dynamo使用vectorlock) | OptimisticConcurrencyControl |
读写性能 | 数据读写定位非常快。 | 数据读写定位可能要通过最多6次的网络RPC,性能较低。 |
CAP点评 | 1,弱一致性,数据可能丢失。
2,可用性高。 3,扩容方便。 | 1,强一致性,0数据丢失。
2,可用性低。 3,扩容方便。 |
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341