本發明涉及分布式存儲技術領域,特別是涉及基于多跳協作的分布式存儲方法、裝置及電子設備。
背景技術:
lot(internetofthings,物聯網)將存儲容量和計算能力有限的用戶聯系到一起,用戶之間能夠通過lot相互通信并實現資源的共享。lot中設備收集到的數據量較大且具有多樣化,在此前提下緩存被視為保證較高信息傳輸質量的有效解決方案。在lot網絡架構中,緩存的信息能夠在移動終端或其他智能設備間通過d2d(device-to-device,設備到設備通信)進行傳輸,從而減輕了通信基礎設施,例如ap(accesspoint,訪問接入點)或bs(basestation,基站)的通信壓力,并且能夠有效提高頻譜及能量的利用率,降低接入時延及減少回程損耗。
在實際lot的通信過程中,用戶的移動性可能會導致用戶攜帶的移動設備離開當前小區,這樣會造成緩存在該移動設備中的數據失效,為了保證d2d通信中數據的有效性,現有技術中采用分布式存儲的方法,將待轉發的數據進行分組并隨機緩存到多個移動設備(節點)中,當其中的節點失效時,隨機選取一個節點來代替失效的節點,通過其他未失效的節點,恢復失效節點中的數據至隨機選取的節點上。但是,采用隨機選取一個節點來代替失效的節點,選取的節點的穩定性差且容易失敗,這樣會導致待轉發數據的失效,現有的分布式存儲方案中待轉發數據的丟失率高,通信的可靠性差。
技術實現要素:
本發明實施例的目的在于提供一種基于多跳協作的分布式存儲方法、裝置及電子設備,以實現提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。具體技術方案如下:
為達上述目的,本發明實施例提供了一種基于多跳協作的分布式存儲方法,包括:
當第一節點集合中的節點失效時,獲取預先確定的閾值數量,其中,所述第一節點集合為所述當前小區內緩存有內容分片的所有節點的集合,所述內容分片包含待轉發數據的部分內容,所述閾值數量為恢復失效的節點所緩存的內容分片所需的節點數;
在所述當前小區中除所述第一節點集合中的節點外的其他節點中,選取能夠與大于或等于所述閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合;
根據所述第二節點集合中的每個節點與所述當前小區的關聯程度,在所述第二節點集合中選取緩存節點;
在有效通信范圍內,選取所述第一節點集合中的所述閾值數量個節點,恢復所述失效的節點所緩存的內容分片至所述緩存節點。
為達上述目的,本發明實施例提供了一種基于多跳協作的分布式存儲裝置,包括:
閾值數量獲取模塊,用于當第一節點集合中的節點失效時,獲取預先確定的閾值數量,其中,所述第一節點集合為所述當前小區內緩存有內容分片的所有節點的集合,所述內容分片包含待轉發數據的部分內容,所述閾值數量為恢復失效的節點所緩存的內容分片所需的節點數;
節點集合確定模塊,用于在所述當前小區中除所述第一節點集合中的節點外的其他節點中,選取能夠與大于或等于所述閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合;
緩存節點確定模塊,用于根據所述第二節點集合中的每個節點與所述當前小區的關聯程度,在所述第二節點集合中選取緩存節點;
內容分片恢復模塊,用于在有效通信范圍內,選取所述第一節點集合中的所述閾值數量個節點,恢復所述失效的節點所緩存的內容分片至所述緩存節點。
為達上述目的,本發明實施例提供了一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過總線完成相互間的通信;
存儲器,用于存放計算機程序;
處理器,用于執行存儲器上所存放的程序時,實現所述基于多跳協作的分布式存儲方法。
為達上述目的,本發明實施例提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執行時實現所述基于多跳協作的分布式存儲方法。
本發明實施例提供的基于多跳協作的分布式存儲方法、裝置及電子設備,當第一節點集合中的節點失效時,獲取預先確定的閾值數量;在所述當前小區中除所述第一節點集合中的節點外的其他節點中,選取在有效通信范圍內,能夠與大于或等于所述閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合;根據所述第二節點集合中的每個節點與所述當前小區的關聯程度,在所述第二節點集合中選取緩存節點;在有效通信范圍內,選取所述第一節點集合中的所述閾值數量個節點,恢復所述失效的節點所緩存的內容分片至所述緩存節點。充分考慮了用戶的移動性,可以提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。當然,實施本發明的任一產品或方法必不一定需要同時達到以上的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例的存儲內容分片的原始節點選取方法的流程示意圖;
圖2為本發明實施例的基于多跳協作的分布式存儲方法的流程示意圖;
圖3為本發明實施例的通信場景中基礎通信設備與發送數據請求的節點的第一種位置關系圖;
圖4為本發明實施例的通信場景中基礎通信設備與發送數據請求的節點的第二種位置關系圖;
圖5為本發明實施例的通信場景中基礎通信設備與發送數據請求的節點的第三種位置關系圖;
圖6為本發明實施例的通信場景中基礎通信設備與發送數據請求的節點的第四種位置關系圖;
圖7為本發明實施例的數據傳輸成功概率的曲線圖;
圖8為本發明實施例的計算時間的曲線圖;
圖9為本發明實施例的基于多跳協作的分布式存儲裝置的示意圖;
圖10為本發明實施例的電子設備的示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
在lot網絡架構中,若當前小區中的一個節點緩存有待轉發數據,由于節點移動、能耗、存儲空間及其他原因,導致該節點不能繼續為當前小區中的節點提供待轉發數據,則稱該節點失效。例如,用戶(用戶隨身攜帶節點)的移動性使得節點間的接觸變得復雜,不能夠保證待轉發數據的有效傳輸,當緩存有待轉發數據的節點離開當前小區時,會導致該節點失效,并且緩存有待轉發數據的節點由于存儲空間及耗能等原因,在該節點中存儲的待轉發數據刪除或丟失時,同樣會導致節點失效,為解決此問題,本發明實施例采用冗余緩存的分布式存儲方法,在一個節點失效后,通過其它節點恢復失效節點中的內容。
參見圖1,圖1為本發明實施例的存儲內容分片的原始節點選取方法的流程示意圖,包括:
s101,獲取并根據當前小區中基站的通信覆蓋范圍、多跳協作的最大通信半徑、第一數值和預先確定的存在概率,計算出待轉發數據的分組份數及閾值數量,其中,第一數值為預設的緩存待轉發數據的節點的數量,存在概率為第一時間后第八節點仍然處于當前小區中的概率,第一時間為任意時間,第八節點為當前小區中的任意節點。
本發明實施例中的當前小區是指應用本發明實施例的基于多跳協作的分布式存儲方法進行通信的區域,當前小區可以與通信基礎設備所覆蓋的通信范圍相同,也可以不同,此處不做具體限定。第一數值為預設的數值,根據具體的冗余緩存的方式進行確定。例如,當采用ec(erasurecodes,糾刪碼)進行分布式存儲時,在一個ec6/10(至多有4個節點失效,原始文件仍可恢復)的分布式存儲環境中,將第一數值的設定為10或更大。
存在概率根據用戶與當前小區的關聯程度及經過的時間進行計算,根用戶與當前小區的關聯程度正相關,與時間負相關。一個節點的關聯程度標識了該節點與當前小區中除該節點外的其他節點的通信狀況及社交因素,在計算存在概率時考慮了社交因素,得到的存在概率更加準確。多跳協作系統根據存在概率,計算分組份數及閾值數量,充分考慮了用戶的移動性,計算出的分組份數及閾值數量的可靠度更高。
可選的,在s101之前,該方法還包括:
步驟一,獲取當前小區中用戶間的社交關系,確定每個用戶離開當前小區的概率。
在不考慮當前小區中各用戶間的社交因素時,用戶進出當前小區的概率服從泊松過程,將某個節點離開當前小區的概率表示為μ,場景中節點滿足m/m/∞隊列模型。當考慮到用戶間的社交因素時,將節點i(用戶i)與節點j(用戶j)之間的社交關系表示為sij,則可以將用戶i離開當前小區的離開率表示為:
步驟二,根據每個用戶離開當前小區的概率,計算每個用戶對應的節點的存在概率。
節點i在當前小區中停留的時間ti服從指數分布
多跳協作系統可以為一種設備,包括:處理器、存儲器、通信接口和總線;處理器、存儲器和通信接口通過總線連接并完成相互間的通信;存儲器存儲可執行程序代碼;處理器通過讀取存儲器中存儲的可執行程序代碼來運行與可執行程序代碼對應的程序,以用于執行基于多跳協作的分布式存儲方法。
多跳協作系統還可以為一種應用程序,用于在運行時執行基于多跳協作的分布式存儲方法。
多跳協作系統還可以為一種應用于終端或通信基礎設施的存儲介質,用于存儲可執行代碼,可執行代碼用于執行基于多跳協作的分布式存儲方法。
多跳協作系統還可以為上述設備、應用程序及存儲介質中任意的結合。
s102,根據分組份數,將待轉發數據進行分組,得到分組后的待轉發數據。
在本發明實施例中,為防止待轉發數據的失效,采用分布式存儲方式。同時為了節約各節點的存儲資源,多跳協作系統不采用直接保存待轉發數據副本的方法,而是根據預設的算法,將待轉發數據分成多個數據片段。例如利用ec碼(erasurecoding,糾刪碼)或其他冗余存儲編碼的計算方法,將待轉發數據進行分組。
s103,將分組后的待轉發數據進行編碼,得到多組內容分片。
多跳協作系統根據閾值數量,將分組后的待轉發數據按照預設的編碼方式編碼為多組內容分片,例如在利用糾刪碼的算法進行編碼時,將分組后的待轉發數據編碼成為第一數值的數量的內容分片。
s104,在當前小區中選取第一數值的數量的節點,作為原始節點。
多跳協作系統在當前小區中均勻選取第一數值數量的節點,作為緩存內容分片的原始節點。還可以按照節點存儲空間剩余量,選取剩余量排名前第一數值數量的節點,或按照多跳協作通信范圍的,選取通信范圍排名前第一數值數量的節點,作為原始節點。當然也可以隨機選取第一數值的數量的節點,此處不做具體限定,具體的選取方法可以根據實際通信情況進行設定。
s105,將內容分片分別緩存到原始節點中,得到第一節點集合。
多跳協作系統將各內容分片隨機分別緩存到各原始節點中,緩存有內容分片的所有節點構成第一節點集合。第一節點集合中的每個節點只緩存一個內容分片,這是因為若一個節點中同時緩存同一待轉發數據的兩個及以上的內容分片,當該節點失效時,會對該待轉發數據的回復造成較大影響。
在本發明實施例中,根據存在概率計算分組份數及閾值數量進而將待轉發數據編碼為多組內容分片,考慮了用戶的移動性,可以提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
參見圖2,圖2為本發明實施例的基于多跳協作的分布式存儲方法的流程示意圖,包括:
s201,當第一節點集合中的節點失效時,獲取預先確定的閾值數量,其中,第一節點集合為當前小區內緩存有內容分片的所有節點的集合,內容分片包含待轉發數據的部分內容,閾值數量為恢復失效的節點所緩存的內容分片所需的節點數。
在實際應用中,由于用戶的移動性,用戶攜帶的節點(終端)可能會離開當前小區,或者由于節點電量耗盡、用戶主動關閉d2d通信功能及節點清理存儲空間等原因,會造成節點失效。當第一節點集合中的節點失效時,多跳協作系統獲取閾值數量,以方便后續確定失效的節點的替代節點。閾值數量是根據存在概率計算出的,一個節點的存在概率標識時間δ后該節點仍然存在于當前小區中的概率,考慮了用戶的移動性,提高通信的可靠性。
s202,在當前小區中除第一節點集合中的節點外的其他節點中,選取在有效通信范圍內,能夠與大于或等于閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合。
兩個節點間d2d通信的有效通信距離是有限的,同樣基于多跳協作的設備間通信的有效通信距離也是有限的,這是因為隨著跳數的增加(數據轉發次數的增加),數據的信令負載、時延及噪聲等因素將變得不可接受。多跳協作系統根據當前小區中個節點的通信狀況,選取能夠與大于或等于閾值數量的緩存有內容分片的節點進行有效通信的所有節點,作為第二節點集合。保證了第二節點集合中的每個節點都能夠成功恢復失效的節點上的內容分片。
s203,根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點。
多跳協作系統會在第二節點集合中,選取與當前小區關聯程度最高的節點,作為緩存節點。一個節點的關聯程度標識了該節點與當前小區中除該節點外的其他節點的通信狀況及社交因素,緩存節點與當前小區的關聯程度高,緩存節點中存儲的內容分片的有效性就越高,利用d2d通信時通信的可靠性就越高。
s204,在有效通信范圍內,選取第一節點集合中的閾值數量個節點,恢復離開當前小區的節點所緩存的內容分片至緩存節點。
多跳協作系統在選取第一節點集合中的閾值數量個節點時,可以為在第一節點集合中隨機選取閾值數量個能夠與緩存節點進行有效通信的節點。還可以計算出第一節點集合中的每個節點向緩存節點傳輸數據的傳輸成本,選取前閾值數量個傳輸成本最小的節點,以節約傳輸成本。
在本發明實施例中,閾值數量是根據存在概率計算出來的,一個節點的存在概率標識了第一時間后,該節點仍然停留在當前小區的概率。根據閾值數量最終確定的緩存節點代替失效的節點,提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。并且在確定緩存節點代替失效的節點,考慮了第二節點集合中的每個節點與當前小區的關聯程度,充分考慮可節點失效的情況,確定的緩存節點的節點失效率低,數據傳輸成功的概率高,提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點,包括:
步驟一,分別獲取第二節點集合中的每個節點與當前小區中的節點建立有效通信鏈路的數目,作為第二節點集合中的節點的中心度。
多跳協作系統會根據第二節點集合中每個節點的多跳協作的有效范圍和節點間傳輸數據成功的概率,確定出第二節點集合中的每個節點與當前小區中的節點能夠建立的有效通信鏈路的數目,將有效通信鏈路的數目,作為對應的第二節點集合中的節點的中心度。有效通信鏈路是指該鏈路中每一跳數據傳輸均滿足物理約束及社交約束,物理約束是指節點間的通信距離不超過d2d通信的最大傳輸距離,且數據傳輸的信號噪聲比必須大于預設的信噪比閾值。社交約束是指,節點間成功傳輸數據的概率要大于預設的傳輸成功率閾值。
步驟二,選取第二節點集合中中心度最大的節點,作為緩存節點。
節點i與節點j間直接進行d2d通信,需要滿足節點i與節點j間的距離不能超過d2d通信的最大通信距離,且數據傳輸的信號噪聲比必須大于預設的信噪比閾值,同時考慮到用戶的移動性及用戶間的社交關系,節點間通信鏈路成功傳輸數據的概率要大于預設的傳輸成功率閾值。傳輸。其中,信噪比閾值為符合本發明實施例的任意數值,例如設定為13db或更大,14db或更大。傳輸成功率閾值為符合本發明實施例的任意數值,例如設定為0.5或更大,0.65或更大。
在本發明實施例中,將有效通信鏈路的數目作為第二節點集合中的節點的中心度,中心度越高,則當前小區中節點從緩存節點下載待轉發數據的概率越高。將中心度最大的節點作為緩存節點,充分考慮了當前小區中的通信狀況,提高了緩存節點中存儲的內容分片的利用率。
可選的,在本發明實施例中根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點,包括:
步驟一,獲取并根據能夠直接進行d2d設備到設備通信的兩個節點間需要傳輸的數據的大小、有效通信時間、傳輸功率及信道情況,計算傳輸成本及傳輸完成概率,其中,傳輸完成概率標識當前小區中的兩個節點間能夠完成數據傳輸的概率。
信道狀況包括信道的帶寬、噪聲強度、傳輸功率及信道增益。考慮到用戶的移動性,用戶隨身攜帶的節點在直接進行d2d通信時,可能會存在超過d2d有效通信距離的情況。傳輸完成概率為在有效通信時間內,通信相鄰的兩個節點間能夠完成傳輸需要傳輸的數據的概率。在本發明實施例中通過傳輸完成概率,充分考慮了節點失效的可能,能夠增大數據傳輸成功的概率。
步驟二,根據傳輸成本及傳輸完成概率,分別以第一節點集合中的每個節點為一個頂點,分別以第二節點集合中的每個節點為另一個頂點構建二分圖。
二分圖的構建,明確了傳輸路徑的兩個端點,便于計算,方便后續傳輸路徑的選擇。
步驟三,根據傳輸完成概率及動態規劃算法dynamicprogramming算法,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間的傳輸路徑。
若相鄰節點間的傳輸完成概率大于或等于預設的傳輸成功閾值,則將該傳輸完成概率作為該相鄰節點間的路徑的權值;若相鄰節點間的傳輸完成概率小于傳輸成功閾值,則另該相鄰節點間的路徑的權值為0,其中,傳輸成功率閾值為符合本發明實施例的任意數值,例如設定為0.5或更大,0.55或更大。利用dp算法(dynamicprogramming,動態規劃算法),分別確定二分圖中兩個節點間權值乘積最大的路徑,作為這兩個節點間的傳輸路徑。
在傳輸完成概率小于傳輸成功閾值時,令權值為0,可以有效避免因個別節點間d2d傳輸的傳輸完成概率低,而影響整條通信的情況,提高了數據傳輸成功的概率,保證了通信的可靠性。
步驟四,根據傳輸成本分別確定每條傳輸路徑的權值,通過最大匹配算法kuhn-munkres算法得到權值之和最小的最短路徑的匹配。
綜合利用d2d下載數據的傳輸成本及從bs下載數據的傳輸成本,作為傳輸路徑的權值,通過km算法kuhn-munkres算法,得到權值之和最小的最短路徑的匹配,即以第二節點集合中的一個節點為端點的閾值數量條路徑的權值的和最小。同時考慮利用d2d下載數據的傳輸成本及從bs下載數據的傳輸成本,傳輸成本的考慮更加全面,能夠節約數據傳輸過程中的能耗。
步驟五,根據權值之和最小的最短路徑的匹配,選取緩存節點。
在本發明實施例利用kuhn-munkres算法獲取邊的權值最小的最短路徑,以選取緩存節點,在最小化傳輸成本節約傳輸能耗的同時,充分考慮了節點失效的情況,提高了通信的可靠性。
可選的,在本發明實施例中根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點,包括:
步驟一,獲取并根據能夠直接進行d2d設備到設備通信的兩個節點間需要傳輸的數據的大小、有效通信時間、傳輸功率及信道情況,計算傳輸成本及傳輸完成概率。
考慮到用戶的移動性,用戶隨身攜帶的節點在直接進行d2d通信時,可能會存在超過d2d有效通信距離的情況。傳輸完成概率為在有效通信時間內,通信相鄰的兩個節點間能夠完成傳輸需要傳輸的數據的概率。在本發明實施例中通過傳輸完成概率,充分考慮了節點失效的可能,能夠增大數據傳輸成功的概率。
步驟二,根據存在概率及傳輸完成概率,確定能夠直接進行d2d通信的兩個節點間的邊的權值,其中,邊的權值標識能夠直接進行d2d通信的兩個節點間未能完成傳輸需要傳輸的數據的概率。
在相鄰的兩個節點進行數據傳輸的過程中,無論是這兩個節點間的通信距離超過有效通信距離,還是這兩個節點中存在離開當前小區的節點,數據傳輸均失敗。因此在本發明實施例中同時考慮了存在概率及傳輸完成概率,充分考慮了用戶的移動性,提高了數據傳輸的成功率。
步驟三,根據動態規劃算法dynamicprogramming算法,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間的最短路徑。
當然此處還可以根據其他的路徑算法來確定第一節點集合中的每個節點與第二節點集合中的每個節點間的最短路徑,例如,dijkstra算法、floyd算法及shortestpathfasteralgorithm算法。
步驟四,根據最短路徑、存在概率、傳輸完成概率及傳輸成本,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間相互的偏好度。
在數據傳輸的過程中,第二節點集合中的節點偏好的為傳輸成功率高的節點,而第一節點集合中的節點偏好的為傳輸成本低的節點。因此,分別根據每條最短路徑中各節點的存在概率及節點間的傳輸完成概率,來確定第二節點集合中的每個節點對第一節點集合中的每個節點的偏好度;分別根據每條最短路徑中節點間的傳輸成本來確定第一節點集合中的每個節點對第二集合中的每個節點的偏好度。在本發明實施中分別根據第一節點集合及第二節點集合中各節點的不同需求,確定第一節點集合中的每個節點與第二節點集合中的每個節點間相互的偏好度,偏好度更加準確。
步驟五,將第二節點集合中的每個節點均視為閾值數量個節點,得到第三節點集合。
在內容分片修復的過程中,替代失效節點的節點需要從閾值數量個第一節點集合的節點中下載數據,以恢復內容分片,因此在建立一對一對應關系之前,需要將第二節點集合中的每個節點均視為閾值數量個節點,得到第三節點集合。
步驟六,根據偏好度通過預設算法,建立第三節點集合中的每個節點與第一節點集合中的每個節點間的一對一對應關系。
若第三節點集合中的節點多于第一節點集合中的節點,則需要進行節點刪除:隨機刪除第二節點集合中的一個節點,并將第二節點集合中剩余的每個節點均視為閾值數量個節點,得到新的第三節點集合。若新的第三節點集合中的節點數仍然多于第一節點集合中的節點數,則重復上述節點刪除過程直至第三節點集合中的節點數小于或等于所述第一節點集合中的節點數。采用此種節點刪除的方法,能夠保證第二節點集合中被匹配的節點可以匹配閾值數量個第一節點集合中的節點。
步驟七,根據一對一對應關系,確定緩存節點。
根據建立好的一對一對應關系中,在第二節點集合中選取一個符合匹配規則的節點,作為緩存節點。該匹配規則是指,在一對一對應關系中第二節點集合中的一個節點對應了閾值數量個第一節點集合中的節點。在第二節點集合中選取一個符合匹配規則的節點,作為緩存節點,可以為在第二節點集合中隨機選取一個符合匹配規則的節點,作為緩存節點;也可以為在符合匹配規則的節點中選取傳輸成本之和最小的節點,作為緩存節點。
在本發明實施例中,通過建立一對一對應關系,在減少傳輸成本節約通信資源的同時,提高了數據下載成功的概率,提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中根據偏好度通過預設算法,建立第三節點集合中的每個節點與第一節點集合中的每個節點間的一對一對應關系,包括:
根據偏好度通過分布式匹配算法gale-shapley算法或動態匹配算法rothandvandevate算法,建立第三節點集合中的每個節點與第一節點集合中的每個節點間的一對一對應關系。
在本發明實施例中,通過分布式匹配算法gale-shapley算法(蓋爾-沙普利算法)或動態匹配算法rothandvandevate算法,來建立一對一對應關系,給出了一對一對應關系的確定方法,為根據一對一對應關系確定緩存節點提供了前提。
可選的,在本發明實施例中根據偏好度通過rothandvandevate算法,建立待選擇節點集合中的每個節點與每個緩存有內容分片的節點間的對應關系,包括:
步驟a,獲取第三節點集合中的每個節點與第一節點集合中的每個節點間的初始對應關系。
此處的初始對應關系為符合本發明實施例的任意對應關系,初始對應關系可以為隨機建立的一對一的關系,也可以為通過gale-shapley算法、kuhn-munkres算法或其他資源最優匹配算法建立的一對一的關系,其中,在初始對應關系中,單獨存在的節點可以看做是根該節點自身一對一匹配的節點,其偏好度相互均為零。
可選的,在步驟a之前,該方法還包括:
當第三節點集合中的節點的數目大于第一節點集合中節點的數目時,在第三節點集合中選取與第一節點集合中節點數目相同數量的節點,隨機與第一節點集合中的節點建立一對一對應的初始對應關系。
用c(c為正整數)表示第一節點集合中節點的數目,用d表示閾值數量,在第二節點集合中任意選取
在本發明實施例中,給出了建立初始對應關系的具體方法,保證節點間的一對一對應。
步驟b,根據偏好度,判斷初始對應關系中的節點對是否滿足預設條件,其中,初始對應關系中的節點對為第一節點集合與第三節點集合間已建立一對一對應的兩個節點,預設條件指第三節點對第四節點的偏好度高于第三節點對第一節點的偏好度,且第四節點對第三節點的偏好度高于第四節點對第五節點的偏好度,第一節點及第四節點為第一節點集合中的任意節點,第三節點及第五節點為第三節點集合中的任意節點,且第一節點與第三節點為初始對應關系中的同一節點對中的節點,第四節點與第五節點為初始對應關系中的同一節點對中的節點,將第三節點與第四節點組成的節點對稱為破壞對。
步驟c,在初始對應關系中的所有節點對均不滿足預設條件時,輸出初始對應關系作為一對一對應關系。
步驟d,在初始對應關系中存在滿足預設條件的節點對時,獲取第三節點與第四節點,作為破壞對集合。
步驟e,在初始對應關系的基礎上,根據破壞對集合,構建第二對應關系。
在初始對應關系的基礎上,將破壞對集合中的破壞對作為一對一的節點,將初始對應關系中與破壞對中節點一對一對應的節點,根據偏好度進行匹配:若初始對應關系中與破壞對中節點一對一對應的節點間相互存在偏好度(即這兩個節點間能夠進行有效通信),則匹配為新的一對一對應的節點;若初始對應關系中與破壞對中節點一對一對應的節點間不存在偏好度(即這兩個節點間不能進行有效通信),則將這兩個節點作為單獨的節點(視為節點與該節點自身進行匹配)得到第二對應關系。在本發明實施例中,不能進行有效通信的節點間不進行匹配,防止因通信鏈路失效而造成的數據傳輸失敗。
步驟f,根據偏好度,判斷第二對應關系中的節點對是否滿足預設條件。
步驟g,在第二對應關系中的所有節點對均不滿足預設條件時,輸出第二對應關系作為一對一對應關系。
步驟h,在第二對應關系中存在滿足預設條件的節點對時,判斷第二對應關系中滿足預設條件的節點對中的節點,是否存在于破壞對集合中。
步驟i,在第二對應關系中滿足預設條件的節點對中的節點,均不存在于破壞對集合中時,選取第二對應關系中的任意破壞對,作為新的節點對,更新第二對應關系。
步驟j,根據偏好度,判斷第二對應關系中的節點對是否滿足預設條件。
步驟k,在第二對應關系中的節點對均不滿足預設條件時,輸出第二對應關系作為一對一對應關系。
步驟l,在第二對應關系中存在滿足預設條件的節點對時,選取第二對應關系中的任意破壞對,作為新的節點對,更新第二對應關系,返回步驟j繼續執行。
步驟m,在第二對應關系中滿足預設條件的節點對中的第六節點存在于破壞對集合中時,在第二對應關系中滿足預設條件的節點對中選取第七節點,根據第六節點與第七節點組成的節點對,更新第二對應關系,其中,第七節點對第六節點的偏好度,大于破壞對集合中的節點對第六節點的偏好度,第六節點為第一節點集合中的節點,且第七節點為第三節點集合中的節點;或第七節點為第一節點集合中的節點,且第六節點為第三節點集合中的節點。
步驟n,將第七節點加入到破壞對集合中,并返回步驟f繼續執行。
在本發明實施例中,給出了rothandvandevate算法的具體實現步驟,保證了一對一對應關系的建立,在保證數據有效傳輸的基礎上,能夠節約能量。
本發明中的編碼方式為符合本發明實施例的任意分布式編碼方式。在眾多的分布式編碼方式中,較為常用的為糾刪碼。根據不同的要求,糾刪碼有不同的編碼方式(如里所碼及噴泉碼),但都具有相同的編碼參數,可以表示為(n,kf,df),即待轉發數據f被分成kf(分組份數)份并編碼成第一數值n份,存在n個原始節點上,每個節點上存有的內容分片大小為αf。當有節點請求待轉發數據f時,該節點可通過連接n個原始節點中的任意kf個節點來獲取f,每個原始節點傳輸大小αf的內容。當有原始節點失效時,需要選擇一個新的緩存節點并連接閾值數量df個現有的原始節點/緩存節點,來修復出失效的節點上緩存的f的內容分片,每個原始節點/緩存節點傳輸的內容大小為βf。下面以糾刪碼為例,詳細闡述本發明基于多跳協作的分布式存儲方法,應用糾刪碼進行編碼的具體實施例。
在一個基礎通信設備(例如ap或bs)的有效通信半徑為rcell的單蜂窩場景中,所有節點的集合為
在實際通信場景中,一般情況下節點請求數據的時間是隨機的,且服從獨立分布。用w表示節點請求的平均到達率,令wj為第j次請求發生的瞬時時間,即:wj等于j次請求間隔(指數分布)的總時間。因此,wj服從愛爾蘭分布,即:
數據的流行度服從zipf分布,因此,流行度排名第i的數據被請求的概率可以表示為
定義在δ時間后的失效節點集合為
當緩存有流行數據的節點失效時,需要找到一個新的節點代替失效的節點來緩存流行數據。以緩存有待轉發數據f的內容分片的節點為例,在修復f的內容分片的過程中,需要選取df個緩存有f的內容分片的節點,并從每個選取的節點中下載大小為βf的數據。將能夠成為新的緩存節點的備選節點集合表示為
用
用
由多跳協作的通信特點可知,在進行d2d通信時最多可以通過a跳來進行內容傳輸,用
在實際應用場景中,既要考慮到節點i與節點j間直接進行d2d通信的物理通信條件,即需要滿足節點i與節點j間的距離不能超過dmax,且數據傳輸的信號噪聲比必須大于預設的信噪比閾值
因此,在修復f的內容分片時,將節點i能夠進行有效通信的下一跳節點的集合表示為:
修復過程中,將節點i能夠從節點h下載數據成功的概率表示為:
即當從節點h到新緩存節點i之間至少存在一條可行的傳輸路徑,
因此,節點i成功連接到df個節點來修復f的內容分片的概率為:
節點i與節點j間距離小于dmax的時間tij服從參數為τij的指數分布,其概率分布函數為
計算可得
其中,b為信道帶寬,
在內容分片修復過程中,每個緩存有f的內容分片的節點向新的緩存節點傳輸的內容的大小均為βf,由上述公式(2)可得,在內容分片修復時,節點i向節點j傳輸大小為βf的數據成功的概率為:
則節點h通過多跳協作向節點i傳輸大小為βf數據成功的概率為:
同時將內容分片修復過程中節點a向節點b傳輸數據βf的傳輸成本表示為:
其中,pa,b為節點a到節點b的傳輸鏈路的傳輸功率,ga,b為節點a與節點b之間的信道增益,服從瑞利分布,即ga,b服從均值為γa,b的指數分布,ga,b~exp(γa,b)。然而,上述成本
用
因此,節點i從選擇的df條修復鏈路都能成功下載大小為βf的數據概率為:
則節點i能成功f的內容分片的概率最終可以表示為:
在節點i從緩存有f的內容分片的節點中下載待轉發數據f時,需要選取kf個緩存有f的內容分片的節點,并從每個選取的節點中下載大小為αf的數據。與上述修復f的內容分片的過程類似,節點a從節點b下載大小為αf的數據的成本為:
節點i從節點h下載f的內容分片的概率表示為:
用
在下載待轉發數據f時,將節點i能夠進行有效通信的下一跳節點的集合表示為:
在內容下載過程中,將節點i能夠從節點h下載數據成功的概率表示為:
即當從節點h到節點i之間至少存在一條可行的傳輸路徑:
節點i成功連接到kf個節點來下載f的概率為:
由上述公式(2)可得,在待轉發數據下載時,節點i向節點j傳輸數據αf成功的概率為:
因此,節點h通過多跳協作向節點i傳輸大小為αf的數據成功的概率為:
用
因此,節點i從選擇的kf條鏈路都能成功下載大小為αf的數據的概率為:
則節點i能成功下載f的概率最終可以表示為:
本發明的目的在于最大化待轉發數據f下載成功的概率及修復f的內容分片成功的概率。當考慮到當前小區中所有的緩存的流行內容時,內容分片修復成功的平均概率為:
因此,目標優化函數可以表示為:
參見圖3至圖6,在一個基礎通信設備(例如ap或bs)的有效通信半徑為rcell的單蜂窩場景中,將基礎通信設備的有效通信范圍作為當前小區。對于一個距離蜂窩中心o1的距離為x(0≤x≤rcell)的節點,其中,節點所在的位置為o2,多跳協作的有效通信半徑為admax,a為多跳協作的最大有效轉發次數,dmax為d2d通信的最大有效通信距離。則該節點多跳協作的通信范圍與當前小區的重疊區域存在如下情況。
如圖3所示,當admax≥rcell,且admax-rcell≥x時,重疊區域的面積可以表示為:
如圖4所示,當admax<rcell,且rcell-admax≥x時,重疊區域的面積可以表示為:scom(x)=π·(admax)2,其中,scom(x)為重疊區域的面積。
如圖5所示,當admax<rcell,且rcell-admax<x≤rcell時,重疊區域的面積可以表示為:
其中,scom(x)為重疊區域的面積。
如圖6所示,當rcell<admax,且admax-rcell<x≤rcell時,重疊區域的面積可以表示為:
其中,scom(x)為重疊區域的面積。
為了保證場景中待轉發數據的有效性,需要保證在節點多跳協作通信的范圍與當前小區的重疊面積最小時,仍然能滿足至少有閾值數量個緩存有內容分片的節點能與該節點進行有效通信。即當節點在場景中服從隨機分布時,需要滿足在重疊范圍內有
考慮到用戶間的社交關系,每個節點離開當前小區的概率均不相同,因此對于節點i,在δ時間后,其有效通信范圍內存在的緩存有待轉發數據的節點的個數可以表示為:
令
可選的,第一預設算法包括:
第一步,初始化k'f。
由
第二步,根據當前的k'f,計算kf與df。
當應用mds(maximumdistanceseparable)編碼方案時,kf=k'f,df=kf。
在應用msr(minimumstorageregenerating)編碼方案時,當
在應用mbr(minimumbandwidthregenerating)編碼方案時,kf=k'f,df=n-1。
第三步,根據當前的kf與df,計算αf與βf。
當應用mds編碼方案時,αf=βf=f/kf。
在應用msr編碼方案時,當
在應用mbr編碼方案時,
第四步,確定在有效通信范圍內,能夠成功向節點i傳輸待轉發數據f的內容分片的節點的集合。
在內容下載過程(下載待轉發數據f)中,對任意一個請求節點i,將能與節點i在a跳內(包含所有小于等于a跳的情況)成功傳輸f的內容分片的節點的個數(使得
因此,k'f等于f的請求節點的最小
第五步,若更新后的k'f小于kf,則令更新的后k'f為初始化k'f,返回第二步繼續執行,若更新后的k'f大于或等于kf,則輸出kf和df。
根據輸出的kf和df,將待轉發數據f利用糾刪碼編碼成n組內容分片,并分布式存儲到n個節點中。
在本發明實施例中,在計算kf和df時,考慮了節點的移動性及各節點間的社交聯系,能夠減少請求f的節點在下載完f前,緩存有f的內容分片的節點失效的概率。
當緩存有f的內容分片的節點失效時,需要進行內容分片修復,即利用新的緩存節點來代替該失效的節點。為了保證待轉發數據f的穩定性和可靠性,新選擇的緩存節點上不能已存儲有f的內容分片,即:選擇的新的緩存節點i必須滿足
此外,在允許進行多跳數據傳輸的前提下,當最多允許進行a跳數據傳輸時,新選擇的緩存節點必須滿足:存在至少df個緩存有f的內容分片的節點能在a跳之內通過有效鏈路將f中的數據傳輸到該新的緩存節點上。
因此,當修復一個失效節點上的f的內容分片時,待選則的新的節點的集合為:
當
在
當緩存有待轉發數據的內容分片的節點到新的緩存節點間,存在多條可行的傳輸路徑時,將選擇傳輸成本最小的路徑。
在本發明實施例中,將有效通信鏈路的數目作為緩存有待轉發數據的內容分片的節點的中心度,中心度越高當前小區中節點從緩存節點下載待轉發數據的概率越高。將中心度最大的節點作為緩存節點,充分考慮了當前小區中的通信狀況,提高了緩存節點中存儲的內容分片的利用率。
在本發明實施例中為了解決多跳協作傳輸路徑的選擇問題,可以采用集中式匹配算法進行優化,利用二分圖進行匹配。因為內容下載過程和內容分片修復過程只是邊的權值的定義以及利用d2d進行數據傳輸匹配成功的邊的個數不同,其他數學過程均相同,因此以內容分片修復的過程為例。
步驟一,構建二分圖。
二分圖的兩個節點集合分別是當前小區內緩存有內容分片的所有節點的第一節點集合
步驟二,給二分圖邊賦予權值。
在構建的二分圖中,節點i和節點j之間邊的權值為節點i通過多跳協作傳輸數據到節點j的傳輸成本wij。
為確定wij,首先要確定節點i和節點j間的多跳協作的傳輸路徑。構造一個加權圖g,包含當前小區中的所有節點,任意兩個節點之間存在邊,節點a和節點b之間的邊的權值表示為zab,令
在確定二分圖兩端節點i和節點j之間的傳輸路徑后,將節點i和節點j的邊的權值變更為
步驟三,采用km算法(kuhn-munkres算法)得到最小權值之和的匹配。
得到最小權值之和的匹配對應的
在本發明實施例中,根據數據成功的概率確定節點間的最優路徑,保證了通信的可達,將總的傳輸成本作為二分圖兩端點間邊的權值,采用km算法得到最小權值之和的匹配,進而確定新的緩存節點,可以降低傳輸成本。
在本發明實施例中為了解決多跳協作傳輸路徑的選擇問題,還提供了分布式匹配算法。
步驟一,構建第一節點集合中節點與第三節點集合中節點的匹配。
對于內容分片修復過程而言,將第一節點集合表示為
我們定義一個匹配函數φ:
對于任意的
以修復f的內容分片的過程為例,將從
將當前小區中任意兩個節點,節點i和節點j之間邊的權值表示為
根據節點間的權值zij,采用dynamicprogramming算法得到
在得到從
在得到
當然在得到
應用rothandvandevate算法,首先要對blockingpair破壞對進行定義。對于集合
在rothandvandevate算法中,任意節點可以與自身匹配,且對自身的偏好度為0。如果一個匹配
將集合
步驟一,判斷
令q=0。
如果
如果
步驟二,當
步驟三,如果
1)如果在
2)如果在
重復步驟三的過程,直到得到匹配
步驟四,如果
步驟五,如果
在本發明實施例中,無論是通過集中式的km算法,還是利用分布式的gale-shapley算法及rothandvandevate算法,均可以得到一對一的穩定匹配。在采用km算法和gale-shapley算法時,若其中任意一個節點失效,需要重新對所有的節點再次進行匹配,采用rothandvandevate算法每次迭代消除不穩定的匹配對,最終將得到穩定匹配集合,相比于km算法和gale-shapley算法,可以減少計算的復雜度。
參見圖7,圖7為本發明實施例的數據傳輸成功概率的曲線圖。其中,曲線701為采用km算法的曲線,曲線702為采用gale-shapley算法的曲線,曲線703為采用rothandvandevate算法的曲線。橫軸代表運行時間,單位為秒,縱軸為數據傳輸成功的概率。可知,采用km算法時的數據傳輸成功率略高于采用用gale-shapley算法及rothandvandevate算法時的數據傳輸成功率。
參見圖8,圖8為本發明實施例的計算時間的曲線圖。其中,曲線801為采用km算法的曲線,曲線802為采用gale-shapley算法的曲線,曲線803為采用rothandvandevate算法的曲線。橫軸為運行時間單位為秒,縱軸為計算時間,單位為秒。隨著運行時間的增加,三種算法的計算時間均階段性的增加,這是因為隨著時間的增加,離開當前小區的節點的數目開始增多,運算程度變得復雜,當一段時間后每秒離開當前小區的節點的數目區域穩定,計算時間也相對趨于穩定。由圖8可知,rothandvandevate算法的計算時間明顯小于km算法與gale-shapley算法的計算時間,計算復雜度更低。
參見圖9,圖9為本發明實施例的基于多跳協作的分布式存儲裝置的示意圖,包括:
閾值數量獲取模塊901,用于當第一節點集合中的節點失效時,獲取預先確定的閾值數量,其中,第一節點集合為當前小區內緩存有內容分片的所有節點的集合,內容分片包含待轉發數據的部分內容,閾值數量為恢復失效的節點所緩存的內容分片所需的節點數。
節點集合確定模塊902,用于在當前小區中除第一節點集合中的節點外的其他節點中,選取能夠與大于或等于閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合。
緩存節點確定模塊903,用于根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點。
內容分片恢復模塊904,用于在有效通信范圍內,選取第一節點集合中的閾值數量個節點,恢復失效的節點所緩存的內容分片至緩存節點。
在本發明實施例中,閾值數量是根據存在概率計算出來的,一個節點的存在概率標識了第一時間后,該節點仍然停留在當前小區的概率。根據閾值數量最終確定的緩存節點代替失效的節點,提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。并且在確定緩存節點代替失效的節點,考慮了第二節點集合中的每個節點與當前小區的關聯程度,充分考慮可節點失效的情況,確定的緩存節點的失效率低,數據傳輸成功的概率高提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中,該基于多跳協作的分布式存儲裝置還包括:
數值計算模塊,用于獲取并根據當前小區中基站的通信覆蓋范圍、多跳協作的最大通信半徑、第一數值和預先確定的存在概率,計算出待轉發數據的分組份數及閾值數量,其中,第一數值為預設的緩存待轉發數據的節點的數量,存在概率為第一時間后第八節點仍然處于當前小區中的概率,第一時間為任意時間,第八節點為當前小區中的任意節點。
數據分組模塊,用于根據分組份數,將待轉發數據進行分組,得到分組后的待轉發數據。
數據編碼模塊,用于根據閾值數量,將分組后的待轉發數據進行編碼,得到多組內容分片。
原始節點選取模塊,用于在當前小區中選取第一數值的數量的節點,作為原始節點。
緩存配置模塊,用于將內容分片分別緩存到原始節點中。
在本發明實施例中,根據存在概率計算分組份數及閾值數量進而將待轉發數據編碼為多組內容分片,考慮了用戶的移動性,可以提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中,該基于多跳協作的分布式存儲裝置還還包括:
離開概率確定模塊,用于獲取當前小區中用戶間的社交關系,確定每個用戶離開當前小區的概率。
存在概率計算模塊,用于根據每個用戶離開當前小區的概率,計算每個用戶對應的節點的存在概率。
在本發明實施例中,給出了存在概率的具體計算方法,考略了用戶的移動性,計算出的存在概率準確,可以提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中,緩存節點確定模塊903,包括:
中心度計算子模塊,用于分別獲取第二節點集合中的每個節點與當前小區中的節點建立有效通信鏈路的數目,作為第二節點集合中的節點的中心度。
第一緩存節點選取子模塊,選取第二節點集合中中心度最大的節點,作為緩存節點。
在本發明實施例中,將有效通信鏈路的數目作為第二節點集合中的節點的中心度,中心度越高當前小區中節點從緩存節點下載待轉發數據的概率越高。將中心度最大的節點作為緩存節點,充分考慮了當前小區中的通信狀況,提高了緩存節點中存儲的內容分片的利用率。
可選的,在本發明實施例中,緩存節點確定模塊903,包括:
第一成本計算子模塊,用于獲取并根據能夠直接進行d2d設備到設備通信的兩個節點間需要傳輸的數據的大小、有效通信時間、傳輸功率及信道情況,計算傳輸成本及傳輸完成概率,其中,傳輸完成概率標識當前小區中的兩個節點間能夠完成數據傳輸的概率。
二分圖構建子模塊,用于根據傳輸成本及傳輸完成概率,分別以第一節點集合中的每個節點為一個頂點,分別以第二節點集合中的每個節點為另一個頂點構建二分圖。
第一路徑計算子模塊,用于根據傳輸完成概率及動態規劃算法dynamicprogramming算法,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間的傳輸路徑。
km算法子模塊,用于根據傳輸成本分別確定每條傳輸路徑的權值,通過最大匹配算法kuhn-munkres算法得到權值之和最小的最短路徑的匹配。
第二緩存節點選取子模塊,用于根據權值之和最小的最短路徑的匹配,選取緩存節點。
在本發明實施例利用kuhn-munkres算法獲取邊的權值最小的最短路徑,以選取緩存節點,在最小化傳輸成本節約傳輸能耗的同時,充分考慮了節點失效的情況,提高了通信的可靠性。
可選的,在本發明實施例中,緩存節點確定模塊903,包括:
第二成本計算子模塊,用于獲取并根據能夠直接進行d2d設備到設備通信的兩個節點間需要傳輸的數據的大小、有效通信時間、傳輸功率及信道情況,計算傳輸成本及傳輸完成概率。
權值計算子模塊,用于根據存在概率及傳輸完成概率,確定能夠直接進行d2d通信的兩個節點間的邊的權值,其中,邊的權值標識能夠直接進行d2d通信的兩個節點間未能完成傳輸需要傳輸的數據的概率。
第二路徑計算子模塊,用于根據動態規劃算法dynamicprogramming算法,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間的最短路徑。
偏好度確定子模塊,用于根據最短路徑、存在概率、傳輸完成概率及傳輸成本,分別確定第一節點集合中的每個節點與第二節點集合中的每個節點間相互的偏好度。
第三節點集合獲取子模塊,用于將第二節點集合中的每個節點均視為閾值數量個節點,得到第三節點集合。
一對一對應關系建立子模塊,用于根據偏好度通過預設算法,建立第三節點集合中的每個節點與第一節點集合中的每個節點間的一對一對應關系。
第三緩存節點選取子模塊,用于根據一對一對應關系,確定緩存節點。
在本發明實施例中,通過建立一對一對應關系,在減少傳輸成本節約通信資源的同時,提高了數據下載成功的概率,提高利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
可選的,在本發明實施例中,根據偏好度通過預設算法,一對一對應關系建立子模塊,具體用于:
根據偏好度通過分布式匹配算法gale-shapley算法或動態匹配算法rothandvandevate算法,建立第三節點集合中的每個節點與第一節點集合中的每個節點間的一對一對應關系。
在本發明實施例中,通過分布式匹配算法gale-shapley算法(蓋爾-沙普利算法)或動態匹配算法rothandvandevate算法,來建立一對一對應關系,給出了一對一對應關系的確定方法,為根據一對一對應關系確定緩存節點提供了前提。
可選的,在本發明實施例中,一對一對應關系建立子模塊,包括:
初始對應關系獲取單元,用于獲取第三節點集合中的每個節點與第一節點集合中的每個節點間的初始對應關系。
預設條件第一判定單元,用于根據偏好度,判斷初始對應關系中的節點對是否滿足預設條件,其中,初始對應關系中的節點對為第一節點集合與第三節點集合間已建立一對一對應的兩個節點,預設條件指第三節點對第四節點的偏好度高于第三節點對第一節點的偏好度,且第四節點對第三節點的偏好度高于第四節點對第五節點的偏好度,第一節點及第四節點為第一節點集合中的任意節點,第三節點及第五節點為第三節點集合中的任意節點,且第一節點與第三節點為初始對應關系中的同一節點對中的節點,第四節點與第五節點為初始對應關系中的同一節點對中的節點,將第三節點與第四節點組成的節點對稱為破壞對。
第一輸出單元,用于在初始對應關系中的所有節點對均不滿足預設條件時,輸出初始對應關系作為一對一對應關系。
破換對確定單元,用于在初始對應關系中存在滿足預設條件的節點對時,獲取第三節點與第四節點,作為破壞對集合。
第二對應關系確定單元,用于在初始對應關系的基礎上,根據破壞對集合,構建第二對應關系。
預設條件第二判定單元,用于根據偏好度,判斷第二對應關系中的節點對是否滿足預設條件。
第二輸出單元,用于在第二對應關系中的所有節點對均不滿足預設條件時,輸出第二對應關系作為一對一對應關系。
破換對判定單元,用于在第二對應關系中存在滿足預設條件的節點對時,判斷第二對應關系中滿足預設條件的節點對中的節點,是否存在于破壞對集合中。
第二對應關系第一更新單元,用于在第二對應關系中滿足預設條件的節點對中的節點,均不存在于破壞對集合中時,選取第二對應關系中的任意破壞對,作為新的節點對,更新第二對應關系。
預設條件第三判定單元,用于根據偏好度,判斷第二對應關系中的節點對是否滿足預設條件。
第三輸出單元,用于在第二對應關系中的節點對均不滿足預設條件時,輸出第二對應關系作為一對一對應關系。
第二對應關系第二更新單元,用于在第二對應關系中存在滿足預設條件的節點對時,選取第二對應關系中的任意破壞對,作為新的節點對,更新第二對應關系,返回預設條件第三判定單元繼續執行。
第二對應關系第三更新單元,用于在第二對應關系中滿足預設條件的節點對中的第六節點存在于破壞對集合中時,在第二對應關系中滿足預設條件的節點對中選取第七節點,根據第六節點與第七節點組成的節點對,更新第二對應關系,其中,第七節點對第六節點的偏好度,大于破壞對集合中的節點對第六節點的偏好度,第六節點為第一節點集合中的節點,且第七節點為第三節點集合中的節點;或第七節點為第一節點集合中的節點,且第六節點為第三節點集合中的節點。
返回執行單元,用于將第七節點加入到破壞對集合中,并返回預設條件第二判定單元繼續執行。
在本發明實施例中,給出了rothandvandevate算法的具體實現步驟,保證了一對一對應關系的建立,在保證數據有效傳輸的基礎上,能夠節約能量。
參見圖10,圖10為本發明實施例的電子設備的示意圖,包括:
處理器1001、通信接口1002、存儲器1003和通信總線1004,其中,處理器1001,通信接口1002,存儲器1003通過通信總線1004完成相互間的通信,
存儲器1003,用于存放計算機程序;
處理器1001,用于執行存儲器1003上所存放的程序時,實現如下步驟:
當第一節點集合中的節點失效時,獲取預先確定的閾值數量,其中,第一節點集合為當前小區內緩存有內容分片的所有節點的集合,內容分片包含待轉發數據的部分內容,閾值數量為恢復失效的節點所緩存的內容分片所需的節點數;
在當前小區中除第一節點集合中的節點外的其他節點中,選取能夠與大于或等于閾值數量的第一節點集合中的節點進行有效通信的所有節點,作為第二節點集合;
根據第二節點集合中的每個節點與當前小區的關聯程度,在第二節點集合中選取緩存節點;
在有效通信范圍內,選取第一節點集合中的閾值數量個節點,恢復失效的節點所緩存的內容分片至緩存節點。
上述電子設備提到的通信總線可以是外設部件互連標準(peripheralcomponentinterconnect,pci)總線或擴展工業標準結構(extendedindustrystandardarchitecture,eisa)總線等。該通信總線可以分為地址總線、數據總線、控制總線等。為便于表示,圖中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
通信接口用于上述電子設備與其他設備之間的通信。
存儲器可以包括隨機存取存儲器(randomaccessmemory,ram),也可以包括非易失性存儲器(non-volatilememory,nvm),例如至少一個磁盤存儲器。可選的,存儲器還可以是至少一個位于遠離前述處理器的存儲裝置。
上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網絡處理器(networkprocessor,np)等;還可以是數字信號處理器(digitalsignalprocessing,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現場可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。
在本發明實施例的電子設備中,閾值數量是根據存在概率計算出來的,一個節點的存在概率標識了第一時間后,該節點仍然停留在當前小區的概率。根據閾值數量最終確定的緩存節點代替失效的節點,提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。并且在確定緩存節點代替失效的節點,考慮了第二節點集合中的每個節點與當前小區的關聯程度,充分考慮可節點失效的情況,確定的緩存節點的失效率低,數據傳輸成功的概率高提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
本發明實施例還提供了一種計算機可讀存儲介質,該計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執行時實現上述任意一種基于多跳協作的分布式存儲方法的方法步驟。
在本發明實施例的存儲介質中,閾值數量是根據存在概率計算出來的,一個節點的存在概率標識了第一時間后,該節點仍然停留在當前小區的概率。根據閾值數量最終確定的緩存節點代替失效的節點,提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。并且在確定緩存節點代替失效的節點,考慮了第二節點集合中的每個節點與當前小區的關聯程度,充分考慮可節點失效的情況,確定的緩存節點的失效率低,數據傳輸成功的概率高提高了利用d2d通信時待轉發數據的有效率,提高通信的可靠性。
對于裝置/電子設備/存儲介質實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。