轉自:http://itindex.net/detail/22338-cassandra-hbase-%E8%AE%BE%E8%AE%A1
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,擴容方便。 |