時間:2023-08-21|瀏覽:236
DB的分布式存儲系統設計時會將數據冗余存儲多份,每一份稱為一個副本。這樣,在某個節點出現故障時,可以從其他副本上讀取數據。副本是分布式存儲系統容錯技術的重要手段。由于存在多個副本,確保副本之間的一致性成為整個分布式系統的核心問題。
為了讓DB的用戶更好地理解DB的分布式存儲系統,我們引出了一致性模型,并簡單介紹幾種常見的一致性模型。
A、線性一致性:也稱為強一致性,可以理解為只有一個單核處理器或只有一個數據副本,并且所有操作都是原子的。
B、順序一致性:順序一致性要求不同處理器對變量的寫操作必須在所有處理器上以相同的順序看到。
C、因果一致性:因果一致性是弱于順序一致性的一致性模型,只需要滿足有因果關系的操作是順序一致性即可。
D、最終一致性:除了強一致性,其他一致性模型都可以看作最終一致性。最終一致性只要求在某個時間點一致即可。
E、可用性:可用性指服務一直可用,而且是正常響應時間。一個可用性的分布式系統要求每個非故障節點都能對每個請求作出響應。
F、分布式系統的一致性:根據CAP理論,一個分布式系統最多只能同時滿足一致性、可用性和分區容錯性這三項中的兩項。
需要特別指出的是CAP中的一致性是指所有節點同時看到相同的數據,也就是線性一致性。DB的分布式存儲一致性必須從客戶端和服務端兩個維度看待。從客戶端角度,多進程并發訪問時要求更新的數據能被后續的訪問都能看到,即強一致性。從服務端角度,盡快將更新的數據分布到整個系統,降低達到最終一致性的時間窗口,對提高系統的可用性和用戶體驗非常重要。
熱點:區塊鏈