Cassandra和HBase主要設計思路對比

jopen 9年前發布 | 14K 次閱讀 Cassandra NoSQL數據庫

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>

</tr>


Cassandra HBase
一致性 Quorum NRW策略

    通過Gossip協議同步Merkle Tree,維護集群節點間的數據一致性

單節點,無復制,強一致性
可用性 1,基于Consistent Hash相鄰節點復制數據,數據存在于多個節點,無單點故障。

    2,某節點宕機,hash到該節點的新數據自動路由到下一節點做 hinted handoff,源節點恢復后,推送回源節點。

    3,通過Gossip協議維護集群所有節點的健康狀態,并發送同步請求,維護數據一致性。

    4,SSTable,純文件,單機可靠性一般。

</td>

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。

</td> </tr>

伸縮性 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,擴容方便。

</td>

1,強一致性,0數據丟失。

    2,可用性低。

    3,擴容方便。

</td> </tr> </tbody> </table> 來自:

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  • sesese色