Terrastore和CAP定律

banq發表於2011-09-09
Terrastore和CAP定律一文主要從CAP方面談其分散式資料庫Terrastore,我想如果你推出一款新式分散式資料庫,從CAP這個角度談才能夠比較讓人明白。

Terrastore是基於著名IMDG記憶體資料網格Terracotta兵馬俑的文字儲存庫。是一個可分割槽 基於Master主備份拓撲結構的。能夠配置成一個叢集,一個啟用主機,多個從機模式;或多個叢集組等。

下面從CAP談Terrastore:
Terrastore是一個一致性consistent 儲存,它是介於關聯式資料庫的ACID和BASE之間。概念見CAP和BASE原理

這一描述非常精確,不像國內某個電子商務網站的分散式資料庫那樣描述:又有分散式NoSQL資料庫特點,又有關聯式資料庫的一致性,非常含糊,似乎在與CAP定理較勁。

Terrastore提供一個單文字一致性,也就是說:在對單個文件的單個更新修改中是ACID的,你肯定能夠看到最新的文件內容,但不支援文件之間的事務,或同樣文件持續性多個操作。

避免跨操作 cross-operation 和跨文字 cross-document是為了讓Terrastore更加比關聯式資料庫可擴充套件。

Availability (A) 和 Partition Tolerance (P)需要在一起談,因為Terrastore的可用性是取決於它的分割槽方式:叢集 主機或多伺服器方式。

在多個叢集組方式中,如果其中一個叢集組不能訪問,其中的所有資料就不能被訪問,而其他叢集組相關資料則可訪問。Terrastore是可以在叢集之間容忍分割槽的。

在單個叢集方式,Terrastore是完全可用的,只要其中任何一個主機或伺服器能訪問即可。Terrastore是不能在單個叢集中容忍伺服器之間的分割槽(banq注:換句話說:單個叢集的分佈能力不強)

那麼Terrastore是超級解決方案,類似國內電子商務那個開源分散式資料庫,既有關聯式資料庫好處,又有普通NoSQL好處?

答案是不是,因為沒有超級解決方案。真相是沒有銀彈,沒有通用的解決方案。如果你需要一個超快的訪問資料,那麼選擇一個非分散式非關係的解決方案;如果有大量資料分佈在多個資料中心,那麼使用BASE方案,需要在分割槽容錯和資料完整可用性之間取得平衡。
或者如果你需要一個分散式儲存又要求高一致性:Terrastore。













相關文章