IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

Cassandra和HBase主要设计思路对比

淘宝JAVA中间件团队博客 2011-06-02 23:03:08 累计浏览 5,005 次
本机暂存
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 Tree , Bloom Filter Bloom Filter
锁与事务 Client Timestap(Dynamo使用vector lock) Optimistic Concurrency Control
读写性能 数据读写定位非常快。 数据读写定位可能要通过最多6次的网络RPC,性能较低。
CAP点评 1,弱一致性,数据可能丢失。

    2,可用性高。

    3,扩容方便。

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

    2,可用性低。

    3,扩容方便。

同分类推荐文章

  1. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)
  2. 硬件故障后数据文件大小不对故障处理—Oracle碎片扫描恢复 (2026-06-07 18:21:47)
  3. 如何在Hive SQL中构造临时表用于和其它的表做关联? (2026-05-29 20:07:00)

查看更多 数据库 文章 →

建议继续学习

  1. HBase集群出现NotServingRegionException问题的排查及解决方法 (累计阅读 17,221)
  2. HFile存储格式 (累计阅读 15,912)
  3. hbase运维 (累计阅读 14,882)
  4. hbase介绍 (累计阅读 12,321)
  5. HBase技术介绍 (累计阅读 8,023)
  6. SQL vs NoSQL:数据库并发写入性能比拼 (累计阅读 7,964)
  7. HBase随机写以及随机读性能测试 (累计阅读 7,501)
  8. HBase性能优化方法总结 (累计阅读 7,040)
  9. HBase二级索引与Join (累计阅读 6,962)
  10. HBase Thrift 接口使用注意事项 (累计阅读 6,716)