實現分散式共享記憶體的演算法


共享記憶體是指可以被多個程式訪問的記憶體塊。共享記憶體的概念用於提供一種通訊方式,並提供更少的冗餘記憶體管理。

分散式共享記憶體,縮寫為DSM,是在分散式系統中實現共享記憶體概念的方法。DSM 系統在松耦合系統中實現了共享記憶體模型,這些系統在系統中缺乏本地物理共享記憶體。在這種型別的系統中,分散式共享記憶體提供了一個虛擬記憶體空間,所有系統(也稱為節點)都可以訪問該空間。

在實現 DSM 時,需要牢記一些常見的挑戰:

  • 跟蹤儲存在共享記憶體中遠端資料的資料地址(位置)。

  • 減少與遠端資料引用相關的通訊延遲和高開銷。

  • 控制在 DSM 中共享資料的併發訪問。

基於這些挑戰,設計了用於實現分散式共享記憶體的演算法。有四種演算法:

  • 中央伺服器演算法
  • 遷移演算法
  • 讀取複製演算法
  • 完全複製演算法

中央伺服器演算法

所有共享資料都由中央伺服器維護。分散式系統的其他節點向伺服器請求讀取和寫入資料,伺服器處理請求並更新或提供對資料的訪問以及確認訊息

這些確認訊息用於提供伺服器是否已處理資料請求的狀態。當資料傳送到呼叫函式時,它會確認一個數字,該數字顯示資料的訪問順序以維護併發性。如果發生故障,則返回超時。

對於更大的分散式系統,可能存在多個伺服器。在這種情況下,伺服器是使用其地址或使用對映函式來定位的。

遷移演算法

顧名思義,遷移演算法的工作是遷移資料元素。與其使用中央伺服器處理每個請求,不如將包含系統請求的資料的塊遷移到該系統以供進一步訪問和處理。它根據請求遷移資料。

儘管此演算法在系統多次訪問相同資料塊並且能夠整合虛擬記憶體概念時效果很好,但它也存在一些需要解決的缺點。

一次只有一個節點能夠訪問共享資料元素,並且整個塊會遷移到該節點。此外,由於根據節點的請求遷移資料項,因此該演算法更容易發生抖動

讀取複製演算法

在讀取複製演算法中,要訪問的資料塊會被複製,並且在所有副本中只允許讀取。如果要執行寫操作,則所有讀取訪問都會暫停,直到所有副本都更新為止。

由於允許併發訪問,因此整體系統效能得到提高。但是,由於需要更新所有共享塊以維護併發性,因此寫操作代價很高。需要跟蹤資料元素的所有副本以維護一致性。

完全複製演算法

讀取複製演算法的擴充套件允許節點在共享塊上同時執行讀取和寫入操作。但是,此節點訪問受到控制以維護其一致性。

為了在所有節點的併發訪問中維護資料的一致性,會維護順序,並且在對資料進行任何修改後,都會進行多播,並將修改反映到所有資料副本中。

更新時間: 2019年10月16日

5K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.