zoukankan      html  css  js  c++  java
  • Cassandra和HBase主要设计思路对比

      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,扩容方便。

     
  • 相关阅读:
    mvc多级views目录
    JSP中文乱码总结
    sql查询指定表外键约束
    eclipse设置汉化
    c#序列化json字符串及处理
    获取需要登录认证的远程数据
    vs2013 括号自动配对样式设置
    c#中事物使用
    ListView遍历每个Item出现NullPointerException的异常
    gen目录无法更新,或者gen目录下的R.JAVA文件无法生成
  • 原文地址:https://www.cnblogs.com/haippy/p/2276047.html
Copyright © 2011-2022 走看看