System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及分布式系統,具體地,涉及一種基于有界鎖的松弛一致性分布式共享內存同步方法及系統。
技術介紹
1、在分布式系統領域中,使用分布式共享內存的形式來進行數據的共享與傳遞是一項重要技術,分布式共享內存這一抽象可以在機器間透明地進行數據共享與傳遞而無需進行數據序列化和反序列化操作。
2、目前學術界和工業界已經提出了一些在現實計算機分布式系統中實現分布式共享內存這一抽象的方法,這些方法關注于保證分布式共享內存這一抽象對于上層應用的透明性的同時,維護跨機器的內存一致性。
3、目前,一種分布式共享內存的實現方式是遵循強一致性的分布式共享內存,這種實現方式遵循msi等經典的緩存一致性協議,每次維護一致性的時候都以頁為單位將內存更新內容廣播到分布式系統中的所有機器上,這類方案雖然可以在保證分布式共享內存對于上層應用的透明性的同時保證了跨機器的內存一致性,但是其缺點在于維護一致性的頻率高、粒度粗、同步對象為所有機器所以可擴展性很差,即便借助高速網絡信道,例如遠端內存直接訪問技術和可編程交換機,來優化一致性維護過程,維護一致性的開銷仍然十分顯著。
4、分布式共享內存的另一種實現形式是松弛一致性共享內存,它借助了應用程序的語義信息,即應用程序的控制同步與數據同步之間存在相關性:應用程序需要在進出關鍵區域時進行拿鎖/放鎖操作,以及在關鍵區域內以單線程訪問共享數據,在這種實現方式中,對于共享數據更改的同步只會發生在應用程序拿鎖/放鎖的時候,這類實現方式能夠顯著降低維護一致性的開銷;其缺點在于,為了能夠透明地記
5、專利文獻cn101207515a公開了一種多機共享內存的處理方法、實現方法和同步方法,處理方法包括以下步驟:a1.預定義內存數據對象;a2.分布式網管系統的任一節點的主機啟動時,在本地內存中創建所述內存數據對象;a3.各主機判斷某一節點的內存數據對象發生變化,則分別更新本地的內存數據對象。然而該專利無法完全解決目前存在的技術問題。
技術實現思路
1、針對現有技術中的缺陷,本專利技術的目的是提供一種基于有界鎖的松弛一致性分布式共享內存同步方法及系統。
2、根據本專利技術提供的基于有界鎖的松弛一致性分布式共享內存同步方法,包括:
3、步驟1:應用程序在訪問共享數據之前調用請求分布式鎖的接口,分布式共享內存庫根據鎖請求的上下文獲取應用程序在關鍵區域內要訪問的共享內存區域的范圍;
4、步驟2:在應用程序被授予鎖的時候,將該范圍內所有的更改內容單元應用到本地內存中;
5、步驟3:如果被訪問的內存范圍的大小大于一個內存頁,則執行步驟4;反之執行步驟5;
6、步驟4:分布式共享內存庫移除該內存范圍的寫權限,然后執行步驟6;
7、步驟5:為該內存范圍在本地分配一塊影子內存區域,將該內存范圍中的初始內容拷貝到該影子內存區域中,將該內存范圍的起始地址、大小以及該影子內存區域的起始地址記錄下來;
8、步驟6:應用程序訪問該范圍內的分布式共享內存,如果在這一過程中出現了頁權限錯誤,則執行步驟7;如果應用程序完成了對于共享內存的訪問,則執行步驟8;
9、步驟7:恢復該內存頁的寫權限,分配一塊影子內存區域,將該內存頁中的初始內容拷貝到影子內存區域中,將該內存頁的起始地址、大小以及影子內存區域的起始地址記錄下來,返回步驟6繼續執行;
10、步驟8:根據步驟5和步驟7記錄的影子內存區域信息生成更改內容單元,并將這些更改內容單元加入到該范圍內共享內存已有的更改內容單元列表中;
11、步驟9:應用程序調用接口釋放分布式鎖。
12、優選地,一個更改內容單元由分布式共享內存空間中的一個地址和一個大小為8字節的更改內容組成,應用程序指定的內存范圍中的所有更改內容單元都被添加到授予鎖的網絡包中。
13、優選地,內存范圍的大小由應用程序通過請求分布式鎖的接口傳入;影子內存區域的大小為內存頁的大小。
14、優選地,分布式共享內存庫在生成更改內容單元的過程中,對于一塊影子內存區域,先判斷其內容和對應的共享內存中的內容是否相同,如果不相同,則生成更改內容單元。
15、優選地,分布式共享內存庫把當前范圍內的共享內存的所有更改內容加入到釋放分布式鎖的請求中,分布式鎖管理者將該范圍內的更改內容單元發送給下一個被授予該鎖的應用程序線程。
16、根據本專利技術提供的基于有界鎖的松弛一致性分布式共享內存同步系統,包括:
17、模塊m1:應用程序在訪問共享數據之前調用請求分布式鎖的接口,分布式共享內存庫根據鎖請求的上下文獲取應用程序在關鍵區域內要訪問的共享內存區域的范圍;
18、模塊m2:在應用程序被授予鎖的時候,將該范圍內所有的更改內容單元應用到本地內存中;
19、模塊m3:如果被訪問的內存范圍的大小大于一個內存頁,則觸發模塊m4;反之觸發模塊m5;
20、模塊m4:分布式共享內存庫移除該內存范圍的寫權限,然后觸發模塊m6;
21、模塊m5:為該內存范圍在本地分配一塊影子內存區域,將該內存范圍中的初始內容拷貝到該影子內存區域中,將該內存范圍的起始地址、大小以及該影子內存區域的起始地址記錄下來;
22、模塊m6:應用程序訪問該范圍內的分布式共享內存,如果在這一過程中出現了頁權限錯誤,則觸發模塊m7;如果應用程序完成了對于共享內存的訪問,則觸發模塊m8;
23、模塊m7:恢復該內存頁的寫權限,分配一塊影子內存區域,將該內存頁中的初始內容拷貝到影子內存區域中,將該內存頁的起始地址、大小以及影子內存區域的起始地址記錄下來,觸發模塊m6;
24、模塊m8:根據模塊m5和模塊m7記錄的影子內存區域信息生成更改內容單元,并將這些更改內容單元加入到該范圍內共享內存已有的更改內容單元列表中;
25、模塊m9:應用程序調用接口釋放分布式鎖。
26、優選地,一個更改內容單元由分布式共享內存空間中的一個地址和一個大小為8字節的更改內容組成,應用程序指定的內存范圍中的所有更改內容單元都被添加到授予鎖的網絡包中。
27、優選地,內存范圍的大小由應用程序通過請求分布式鎖的接口傳入;影子內存區域的大小為內存頁的大小。
28、優選地,分布式共享內存庫在生成更改內容單元的過程中,對于一塊影子內存區域,先判斷其內容和對應的共享內存中的內容是否相同,如果不相同,則生成更改內容單元。
29、優選地,分布式共享內存庫把當前范圍內的共享內存的所有更改內容加入到釋放分布式鎖的請求中,分布式鎖管理者將該范圍內的更改內容單元發送給下一個被授予該鎖的應用程序線程。
30、與現有技術相比,本專利技術具有如下的有益效果:
31、(1)與遵循本文檔來自技高網...
【技術保護點】
1.一種基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,包括:
2.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,一個更改內容單元由分布式共享內存空間中的一個地址和一個大小為8字節的更改內容組成,應用程序指定的內存范圍中的所有更改內容單元都被添加到授予鎖的網絡包中。
3.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,內存范圍的大小由應用程序通過請求分布式鎖的接口傳入;影子內存區域的大小為內存頁的大小。
4.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,分布式共享內存庫在生成更改內容單元的過程中,對于一塊影子內存區域,先判斷其內容和對應的共享內存中的內容是否相同,如果不相同,則生成更改內容單元。
5.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,分布式共享內存庫把當前范圍內的共享內存的所有更改內容加入到釋放分布式鎖的請求中,分布式鎖管理者將該范圍內的更改內容單元發送給下一個被授予該鎖的應用程序線程。
6.一種基于有界鎖的松弛一致性分布式共享內存同步系統,其特征在于,包括:
7.根據權利要求6所述的基于有界鎖的松弛一致性分布式共享內存同步系統,其特征在于,一個更改內容單元由分布式共享內存空間中的一個地址和一個大小為8字節的更改內容組成,應用程序指定的內存范圍中的所有更改內容單元都被添加到授予鎖的網絡包中。
8.根據權利要求6所述的基于有界鎖的松弛一致性分布式共享內存同步系統,其特征在于,內存范圍的大小由應用程序通過請求分布式鎖的接口傳入;影子內存區域的大小為內存頁的大小。
9.根據權利要求6所述的基于有界鎖的松弛一致性分布式共享內存同步系統,其特征在于,分布式共享內存庫在生成更改內容單元的過程中,對于一塊影子內存區域,先判斷其內容和對應的共享內存中的內容是否相同,如果不相同,則生成更改內容單元。
10.根據權利要求6所述的基于有界鎖的松弛一致性分布式共享內存同步系統,其特征在于,分布式共享內存庫把當前范圍內的共享內存的所有更改內容加入到釋放分布式鎖的請求中,分布式鎖管理者將該范圍內的更改內容單元發送給下一個被授予該鎖的應用程序線程。
...【技術特征摘要】
1.一種基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,包括:
2.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,一個更改內容單元由分布式共享內存空間中的一個地址和一個大小為8字節的更改內容組成,應用程序指定的內存范圍中的所有更改內容單元都被添加到授予鎖的網絡包中。
3.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,內存范圍的大小由應用程序通過請求分布式鎖的接口傳入;影子內存區域的大小為內存頁的大小。
4.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,分布式共享內存庫在生成更改內容單元的過程中,對于一塊影子內存區域,先判斷其內容和對應的共享內存中的內容是否相同,如果不相同,則生成更改內容單元。
5.根據權利要求1所述的基于有界鎖的松弛一致性分布式共享內存同步方法,其特征在于,分布式共享內存庫把當前范圍內的共享內存的所有更改內容加入到釋放分布式鎖的請求中,分布式鎖管理者將該范圍內的更改內容單元發送給下一個被授予該鎖的應用程序線程。
...【專利技術屬性】
技術研發人員:陳榕,程可,張漢澤,陳海波,臧斌宇,
申請(專利權)人:上海交通大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。