回覆列表
  • 1 # 雨過天晴

    資料一致性通常指關聯資料之間的邏輯關係是否正確和完整。而資料儲存的一致性模型則可以認為是儲存系統和資料使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果

    常用的一致性模型有:

    a、嚴格一致性(linearizability, strict/atomic Consistency):讀出的資料始終為最近寫入的資料。這種一致性只有全域性時鐘存在時才有可能,在分散式網路環境不可能實現。

    b、順序一致性(sequential consistency):所有使用者以同樣的順序看到對同一資料的操作,但是該順序不一定是實時的。

    c、因果一致性(causal consistency):只有存在因果關係的寫操作才要求所有使用者以相同的次序看到,對於無因果關係的寫入則並行進行,無次序保證。因果一致性可以看做對順序一致性效能的一種最佳化,但在實現時必須建立與維護因果依賴圖,是相當困難的。

    d、管道一致性(PRAM/FIFO consistency):在因果一致性模型上的進一步弱化,要求由某一個使用者完成的寫操作可以被其他所有的使用者按照順序的感知到,而從不同使用者中來的寫操作則無需保證順序,就像一個一個的管道一樣。 相對來說比較容易實現。

    e、弱一致性(weak consistency):只要求對共享資料結構的訪問保證順序一致性。對於同步變數的操作具有順序一致性,是全域性可見的,且只有當沒有寫操作等待處理時才可進行,以保證對於臨界區域的訪問順序進行。在同步時點,所有使用者可以看到相同的資料。

    f、 釋放一致性(release consistency):弱一致性無法區分使用者是要進入臨界區還是要出臨界區, 釋放一致性使用兩個不同的操作語句進行了區分。需要寫入時使用者acquire該物件,寫完後release,acquire-release之間形成了一個臨界區,提供 釋放一致性也就意味著當release操作發生後,所有使用者應該可以看到該操作。

    g、最終一致性(eventual consistency):當沒有新更新的情況下,更新最終會透過網路傳播到所有副本點,所有副本點最終會一致,也就是說使用者在最終某個時間點前的中間過程中無法保證看到的是新寫入的資料。可以採用最終一致性模型有一個關鍵要求:讀出陳舊資料是可以接受的。

    h、delta consistency:系統會在delta時間內達到一致。這段時間內會存在一個不一致的視窗,該視窗可能是因為log shipping的過程導致。

  • 中秋節和大豐收的關聯?
  • 化學方程式字母編故事?