?

面向高機動環境的邊緣云內數據同步方法*

2024-03-20 01:16葛光富姚傳明夏鑫成朱立捷
通信技術 2024年2期
關鍵詞:記錄表隊列時序

葛光富,姚傳明,夏鑫成,朱立捷,吳 鵬,費 超

(中國電子科技集團公司第二十八研究所,江蘇 南京 210007)

0 引言

伴隨著物聯網[1]、車聯網[2]、船聯網[3]、飛聯網[4]等領域的迅猛發展,邊緣計算技術不斷取得突破,各類云業務延展至邊緣,提高了信息系統規模及其復雜度,為邊緣環境的數據組織運用帶來了挑戰。

綜合考慮軍民用市場,邊緣環境下有著大量的信息設備用于搭建各中小型信息系統,但這些設備的軟硬件資源參差不齊、性能不一,有些甚至較差,其中,終端設備的問題尤為突出,受限的計算、存儲、網絡資源會約束各地能夠集成部署使用的信息服務。為給各類終端設備帶來更多且質量有保證的信息服務,可通過集約利用邊緣環境中如機動車輛、船舶、飛機等的服務器類型設備資源構建邊緣云,引接“云”的信息服務能力向網絡邊緣延伸,并就近向“端”提供“云”“邊”信息服務。進一步,能夠滿足高機動場景運用需求,確保邊緣云內各服務節點上任意相同信息服務使用數據的實時一致性,支撐各類終端設備適地就近接入邊緣云享用“云”“邊”信息服務,以開展有關業務,并兼顧提高資源利用效率和系統可用性??蓱糜谶吘壄h境高機動條件下的邊緣云內數據同步技術成為信息系統軟件服務平臺統籌規劃中的必要考慮因素。

目前暫未有針對邊緣環境高機動條件下邊緣云內的數據同步方法,故統籌設計機動通信網絡條件下邊緣云的云內數據,使其有序同步一致,支撐物理分布邊緣云數據、服務等資源的弱連接下高可用,以杜絕因邊緣云的各服務節點上任意相同信息服務基于數據的不一致等帶來的終端應用“云”“邊”信息服務風險,已成為當前信息系統建設所急需。

1 概述

邊緣云本質上是分布在網絡邊緣側,提供實時數據處理、分析決策的小規模云數據中心,是由大規模地域分散的邊緣云節點相互協同組成的分布式云。邊緣云與中心云和物聯網終端形成“云、邊、端三體協同”的端到端的技術架構,通過將網絡轉發、存儲、計算,智能化數據分析等工作放在邊緣處理,降低響應時延、減輕云端壓力、降低帶寬成本[5]。

邊緣云的發展歷程如圖1 所示。1998 年Akamai公司提出了內容分發網絡[6](Content Delivery Network,CDN),它是一種基于互聯網的緩存網絡,其體現了邊緣計算的基本思想“功能緩存”。2009 年,Satyanarayanan 等人提出了Cloudle[7]的概念,它是一個可信且資源豐富的主機,部署在網絡邊緣且與互聯網連接[8],可以被移動設備訪問并為移動設備提供服務。2013 年,美國太平洋西北國家實驗室Ryan LaMothe 提出了“edge computing[9]”一詞,這是邊緣計算首次被提出。2018 年,《邊緣云計算技術及標準化白皮書》正式發布,逐漸明晰邊緣云計算概念定義。邊緣云[10-11]在許多領域應用較為廣泛,其中面向特定領域的邊緣云在智慧醫療[12]、云游戲、工業互聯網等領域發展迅速。

圖1 邊緣云發展歷程

目前,已有諸多云服務提供商打造出了邊緣云產品,如騰訊云物聯網邊緣計算平臺(IoT Edge Compting Platform,IECP)、阿里云IoT Link Rack、百度云智能邊緣(Baidu IntelliEdge,BIE)、浪潮云行·邊緣云(ICP Edge Cloud,IEC)等。這些邊緣云產品多用于固定有線互聯通信環境,不能很好地適用于高機動無線通信環境。因此,面向高機動環境的邊緣云一系列技術亟待突破,包括邊緣云內多節點數據并發有序同步有關技術。

2 系統模型

邊緣云內數據同步系統模型中,當多節點邊緣云內任意節點的數據有源自本地的增量變化時,寫入本節點自增量數據記錄表,對照本節點自增量數據同步最近記錄,列出本節點同步向云內數據增量要求。據此,將同步向云內對應節點的所有增量數據條目按時序插入對應節點的同步向云內節點數據增量發送隊列;之后,對應節點的同步向云內節點數據增量發送隊列依序分別將若干項增量數據條目打包成數據增量同步要求,并送達云內對應節點。當邊緣云內其他節點收到數據增量同步要求時,向發送方節點回復已接收,并將數據增量同步要求的所有增量數據條目按時序插入本節點同步自云內數據增量處理隊列。之后,本節點同步自云內數據增量處理隊列的每項增量數據條目依次與本節點全增量數據記錄表比對,決策相應條目數據是否本節點所需寫入的增量,如果是,則寫入相應本地數據庫或數據文件,以支持完成本節點數據與云內的同步一致。系統模型如圖2 所示。

該系統模型中,節點是邊緣云中能被分配任務執行的服務節點[13]個體;網絡是邊緣云內節點間通信所在網絡[14],主要以無線方式連接,且遵循IP通信標準。各節點集成部署邊緣云內數據同步模塊,用于節點數據增量記錄的存儲和查詢,本節點自增量數據發現、云內分發,以及云內增量數據的接收、同步。

當多節點邊緣云內任意節點的數據有源自本地的增量變化時,將增量數據寫入本節點自增量數據記錄表,更新節點自增量同步云內隊列;根據節點自增量同步云內隊列,分別向邊緣云內對應節點依次分包發送數據增量同步要求。

當多節點邊緣云內其他節點收到數據增量同步要求時,將數據增量同步要求按時序插入本節點同步自云內數據增量處理隊列;之后本節點同步自云內數據增量處理隊列依次與本節點全增量數據記錄表比對,將本節點所需云同步增量寫入本地數據庫或數據文件,以實現本節點數據與云內數據的同步。

上述系統模型考慮了高機動條件下邊緣云內數據庫、文件數據的節點間同步,然而暫未有針對該場景下邊緣云內數據的節點間有序同步的方法。因此,針對該問題,本文提出一種面向高機動環境的邊緣云內數據同步方法。

3 邊緣云內數據有序同步方法

面向高機動環境的邊緣云內數據同步方法包括節點數據自增量發現和云內數據增量同步兩個階段,具體如下文所述。

3.1 節點數據自增量發現

當多節點邊緣云內任意節點的數據有源自本地的增量變化時,寫入本節點自增量數據記錄表,對照本節點自增量數據同步最近記錄,列出本節點同步向云內數據增量要求。據此,將同步向云內對應節點的所有增量數據條目,按時序插入對應節點的同步向云內節點數據增量發送隊列;之后,對應節點的同步向云內節點數據增量發送隊列依序分別將若干項增量數據條目打包成數據增量同步要求,并送達云內對應節點。節點數據自增量發現過程如圖3 所示。

圖3 節點數據自增量發現的過程

節點數據自增量發現包括節點數據自增量日志記錄、節點自增量同步云內要求列出、節點自增量同步云內隊列更新、節點自增量同步云內分包送達4 個階段。

3.1.1 節點數據自增量日志記錄

當多節點邊緣云內任意節點的數據有源自本地的增量變化時,即有本地服務應用系統更改本節點管理數據庫、數據文件的數據,則將節點數據自增量日志(tSelfAdd,DataSelfAddExCode),包括本節點數據自增量發生時刻、執行代碼信息,添加到本節點自增量數據記錄表,該過程表示如下:

式中:tSelfAdd為本節點數據自增量發生時刻;DataSlfAddExCode為本節點數據自增量執行代碼,其涵蓋寫入數據庫、數據文件路徑,執行增加、刪除或修改的數據內容;DataSelfAddRcdTab為本節點自增量數據記錄表,其中按時序記錄本節點數據自增量的發生時刻及對應的執行代碼。

3.1.2 節點自增量同步云內要求列出

對照本節點自增量數據同步最近時刻記錄表,LastSyncToRcd列出本節點同步向云內數據增量要求單如下:

式中:iNode為邊緣云內節點編號,范圍為[1,N],其中N表示邊緣云內節點總數量;LastSyncToTimeiNode為本節點向邊緣云第iNode個節點的同步數據最近時刻,即本節點向邊緣云第iNode個節點同步數據的最近一次同步成功的時刻;LastSyncToRcd為本節點自增量數據同步最近時刻記錄表;SyncToRqList為本節點同步向云內數據增量要求單,即要求本節點向邊緣云內對應的iNode個節點同步LastSyncToTimeiNode之后的數據增量。

3.1.3 節點自增量同步云內隊列更新

按照本節點同步向云內數據增量要求單SyncToRqList,根據節點順序依次更新本節點同步向云內其他各節點的數據增量發送隊列,其過程如圖4 所示。

圖4 節點自增量同步云內隊列更新的過程

節點自增量同步云內隊列更新的具體步驟為:

(1)同步其他節點數據增量首條查找。逆時序遍歷本節點自增量數據記錄表DataSelfAddRcdTab,從中找到最后一條本節點數據自增量發生時刻tSelfAdd大于LastSyncToTimeiNode(本節點向邊緣云第iNode個節點同步數據的最近時刻)的記錄,即為本節點向邊緣云第iNode(從iNode=1 開始)個節點的首條增量數據條目。

(2)同步其他節點數據增量隊列更新。將本節點自增量數據記錄表DataSelfAddRcdTab中,從同步其他節點數據增量首條開始的所有記錄,按時序追加到對應的第iNode(從iNode=1 開始)個節點的同步向云內節點數據增量發送隊列,該過程表示如下:

式中:iNode為邊緣云內節點編號,范圍為[1,N],其中N表示邊緣云內節點總數量;LastSyncToTimeiNode為本節點向邊緣云第iNode個節點同步數據最近時刻;tSel為同步向云內節點數據自增量發生時刻;DataSelExCode為同步向云內節點自增量執行代碼;DataSyncSndQueiNode為同步向云內第iNode個節點數據增量發送隊列,包括同步向云內第iNode個節點的按時序存入數據自增量的發生時刻及對應的執行代碼。

(3)轉到下一個同步其他節點,重復步驟1和步驟2,直至iNode=N結束。

3.1.4 節點自增量同步云內分包送達

將本節點自增量同步云內其他各節點的數據增量依次分包送達云內對應節點,其過程如圖5 所示。

圖5 節點自增量同步云內分包送達的過程

節點自增量同步云內分包送達的具體步驟如下文所述。

(1)同步其他節點數據增量等待。等待直至同步向云內節點數據增量發送隊列DataSyncSndQueiNode不為空,即存在待送達云內對應第iNode個節點的數據增量,轉至步驟2。

(2)同步其他節點數據增量分包。在同步向云內節點數據增量發送隊列DataSyncSndQueiNode中,按照時序且不超過數據增量同步要求包正文大小上限DataSyncSndPackSizemax,選取若干項增量數據條目分別打包成數據增量同步要求,具體如下:

式中:iNode為邊緣云內節點編號,范圍為[1,N],其中,N表示邊緣云內節點總數量;LastSyncToTimeiNode為本節點向邊緣云第iNode個節點同步數據最近時刻;WaitSyncToTimeiNode為本節點向邊緣云第iNode個節點的待同步數據最近時刻,即本節點向邊緣云第iNode個節點發起準備同步數據的最近一次的時刻;tSnd為送達云內節點數據自增量發生時刻;DataSndExCode為送達云內節點自增量執行代碼;DataSyncSndPackiNode為送達云內第iNode個節點的數據增量同步要求,包括送達云內第iNode個節點的按時序存入數據自增量的發生時刻及對應的執行代碼。

(3)同步其他節點數據增量發送。將數據增量同步要求DataSyncSndPackiNode發送至云內第iNode個節點,其中要求接收方做接收確認回復。

(4)同步其他節點數據增量接收應答。邊緣云內第iNode個節點收到數據增量同步要求DataSyncSndPackiNode時,向發送方節點回復數據增量同步要求已接收確認消息,消息內容包括已接收確認的報文序列號。

(5)同步其他節點數據增量記錄更新。當本節點收到數據增量同步要求接收方(即云內第iNode個節點)回復的數據增量同步要求已接收確認消息時,在本節點自增量數據同步最近時刻記錄表LastSyncToRcd中更新本節點向邊緣云第iNode個節點同步數據最近時刻LastSyncToTimeiNode。

(6)當同步向云內節點數據增量發送隊列DataSyncSndQueiNode不為空時,重復步驟(2)至步驟(5),否則轉至步驟(1)。

3.2 云內數據增量同步

當邊緣云內其他節點收到數據增量同步要求時,向發送方節點回復已接收,將數據增量同步要求的所有增量數據條目按時序插入本節點同步自云內數據增量處理隊列。之后,本節點同步自云內數據增量處理隊列的每項增量數據條目依次與本節點全增量數據記錄表比對,決策相應條目數據是否是本節點所需要寫入的增量,如果是,則寫入相應本地數據庫或數據文件,以實現本節點數據與云內的同步一致。云內數據增量同步過程如圖6 所示。

圖6 云內數據增量同步的過程

云內數據增量同步包括同步自云內數據增量處理隊列更新、同步自云內數據增量按需寫入同步兩個階段。具體介紹如下:

(1)同步自云內數據增量處理隊列更新。當邊緣云內第iNode個節點收到數據增量同步要求DataSyncSndPackiNode時,在向發送方節點回復數據增量同步要求已接收確認消息的同時,將收到的數據增量同步要求DataSyncSndPackiNode的所有增量數據條目按時序插入相應本節點同步自云內數據增量處理隊列,該過程表示如下:

式中:LastSyncExTime為本節點同步自云內數據增量最近執行時刻;tEx為本節點同步自云內數據增量執行時刻;DataRcvExCode為本節點同步自云內數據增量執行代碼;DataSyncRcvQue為本節點同步自云內數據增量處理隊列,包括本節點同步自云內數據增量按時序的執行時刻及對應的執行代碼。

(2)同步自云內數據增量按需寫入同步。本節點同步自云內數據增量處理隊列DataSyncRcvQue的每項增量數據條目(tEx,DataRcvExCode)依次與本節點全增量數據記錄表DataAllAddRcdTab中所有已增量數據條目比對,如果未查找到,則表明對應條目增量數據是本節點所需寫入的增量,將其相應寫入本地數據庫或數據文件,并將對應增量數據條目按時序插入更新本節點全增量數據記錄表,該過程表示如下:

式中:tAllAdd為本節點數據全增量發生時刻;DataAllAddExCode為本節點數據全增量執行代碼;DataAllAddRcdTab為本節點全增量數據記錄表,其中按時序記錄本節點數據全增量的發生時刻及對應的執行代碼。

4 仿真結果及分析

4.1 仿真及結果

按照本文方法使用C++語言編寫邊緣云內數據同步程序,結合運用邊緣云聚云散軟件[15],并在不同外部無線通信帶寬環境下對其進行數據同步仿真模擬性能試驗。分別在環境無線帶寬為2 Mbit/s、8 Mbit/s、100 Mbit/s、1 000 Mbit/s 的情況下,依次仿真模擬邊緣云內數據同步并設定帶寬可用率為0.5,增量同步數據長度為1 000 字節,邊緣云內節點數為10 個。同時,IP 協議頭長度為20 字節,UDP 報文頭長度為8 字節,報文序列號字段、增量同步數據長度字段、報文確認號字段的長度均為4 字節。進而可得,增量同步數據發送報大小=20+8+4+4+1 000=1 036 字節,增量同步數據接收確認報大小=20+8+4=32 字節;增量數據同步發送報傳輸用時=(增量同步數據發送報大小×8 bit)÷(環境無線帶寬×帶寬可用率×1 048 576 bit)×1 000 000 μs,增量同步數據接收確認報傳輸用時=(增量同步數據接收確認報大小×8 bit)÷(環境無線帶寬×帶寬可用率×1 048 576 bit)×1 000 000 μs;邊緣云內數據同步用時=(增量數據同步發送報傳輸用時+增量同步數據接收確認報傳輸用時);邊緣云可增量同步數據量=(環境無線帶寬×帶寬可用率×1 048 576 bit)÷(8×(邊緣云內節點數-1))-(增量同步數據接收確認報大小+增量同步數據發送報大小-增量同步數據長度)字節/s。具體數據及仿真試驗結果如表1 所示。邊緣云內數據同步的過程中,本地計算時間包括增量同步數據發送報、增量同步數據接收確認報的封裝發送、接收解析時間,可忽略不計。

表1 仿真參數設置與仿真結果

4.2 性能分析

由仿真結果可知,在環境無線帶寬為2 Mbit/s、8 Mbit/s、100 Mbit/s、1 000 Mbit/s 的條件下,邊緣云內數據同步為8 148.19 μs、2 037.05 μs、162.96 μs、16.30 μs,邊緣云可增量同步數據量對應為14 495 字節/s、58 186 字節/s、728 109 字節/s、7 281 709 字節/s。因此,本系統可以適配各種帶寬條件,極速、便捷完成千數量級以上字節數據的邊緣云內同步,并且既可以支持邊緣云內數據的節點間動態高可用同步,又可以實現邊緣云內數據同步面向高機動環境的場景運用,應用的范圍更加廣泛且有助于提高系統邊緣服務的穩定性及效能。此外,如圖7 所示,本文方法可支持通過邊緣信息基礎設施平臺[16]監視邊緣云內數據同步的狀態,能夠為上層信息服務系統實時掌握其節點間數據同步的狀況提供依據。

圖7 邊緣云內數據同步

5 結語

本文研究了運用機動弱連接通信條件下的多節點并發有序同步技術,提出了面向高機動環境的邊緣云內數據同步系統。本文所提系統在邊緣環境高機動條件下,可隨多節點邊緣云內任意節點源自本地的數據增量變化,將增量數據條目依序分包送達云內其他節點執行同步寫入,以完成邊緣云內各節點數據的實時同步一致。本文所提系統使用方法不但支持邊緣云內數據的節點間動態高可用同步,而且可以實現邊緣云內數據同步面向高機動環境的場景運用,可支撐邊緣云平臺環境確保邊緣云內各服務節點上任意相同信息服務基于數據的實時一致性,為各類終端設備隨遇享用“云”“邊”數據、信息、服務資源,提供邊緣云內“數據一致”增效劑,可支撐機動車輛、船舶、飛機等業務信息系統的隨遇連接并訪問使用邊緣云上的數據,有助于提高系統邊緣服務的穩定性及效能。

猜你喜歡
記錄表隊列時序
基于時序Sentinel-2數據的馬鈴薯遙感識別研究
2022.04.21~2022.05.20國外運載火箭發射記錄表
2022.1.21~2022.2.20國外運載火箭發射記錄表
基于Sentinel-2時序NDVI的麥冬識別研究
2021.01.21~2021.02.20 國外運載火箭發射記錄表
2020.7.21~2020.8.20國外運載火箭發射記錄表
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
在隊列里
豐田加速駛入自動駕駛隊列
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合