岑伯維,胡春潮,2,蔡澤祥,武志剛,屈 徑,劉媛媛
(1. 華南理工大學電力學院,廣東省 廣州市 510641;2. 中國南方電網電力科技股份有限公司,廣東省 廣州市 510080)
在“雙碳”目標的驅動下,新型電力系統(tǒng)在接入對象[1]、時空特性[2]、信息特性[3]等方面產生了顯著的變化。接入對象類型的擴展、時空管控范圍的延伸及多源異構數(shù)據(jù)的激增給配電自動化系統(tǒng)的信息感知和分析處理能力帶來了挑戰(zhàn)[4]。近年來,以低壓配電臺區(qū)為單位的自動化、數(shù)字化改造逐步開展,基于配電物聯(lián)網邊緣計算理念的新一代智能配電臺區(qū)成為建設路徑之一[5-6]。
邊緣計算終端是新型智能配電臺區(qū)的關鍵節(jié)點[7],為滿足配電臺區(qū)業(yè)務靈活組織和高效管理的需求,微服務逐漸成為構建以邊緣計算終端為載體的新型配電臺區(qū)業(yè)務的關鍵技術之一[8]。與單體應用相比,微服務的種類更加多樣,運行機制更加靈活[9-10],但這同時也增加了微服務數(shù)據(jù)讀寫沖突的隱患。當微服務之間發(fā)生數(shù)據(jù)讀寫沖突時,極有可能造成數(shù)據(jù)錯誤、錯亂、丟失等問題[11],進而導致邊緣計算終端無法正常完成業(yè)務。此外,由數(shù)據(jù)可靠性下降所帶來的潛在風險隱患易通過信息-物理耦合網絡進一步影響一次系統(tǒng)的安全穩(wěn)定運行[12-13],甚至引起連鎖事故的發(fā)生[14-15]。因此,研究邊緣計算終端微服務的數(shù)據(jù)同步機制具有十分重要的意義。
目前,關于數(shù)據(jù)同步機制已有相關的研究,文獻[16]和文獻[17]研究多活數(shù)據(jù)同步機制,通過階段性地同步傳輸業(yè)務計算結果至其他分析決策中心,提高業(yè)務執(zhí)行時數(shù)據(jù)的可靠性。然而,所設計的機制主要用于決策中心故障時業(yè)務計算無縫切換場景,若將該機制用于解決微服務數(shù)據(jù)讀寫沖突問題易造成數(shù)據(jù)的冗余備份。文獻[18]設計了一種歷史數(shù)據(jù)服務優(yōu)化方案,利用數(shù)據(jù)緩沖區(qū)模塊存放數(shù)據(jù),利用緩存數(shù)據(jù)同步模塊同步關系庫和緩存區(qū)的數(shù)據(jù)。然而,微服務間具有時序邏輯關系,基于隊列原理的同步機制雖能用于解決微服務數(shù)據(jù)讀寫沖突問題卻易增加業(yè)務完成時間。以時序邏輯[19]為約束的微服務組織方式相較于彼此相互獨立的單體應用而言,數(shù)據(jù)讀寫沖突問題更為復雜,現(xiàn)有方法無法提供直接處理的手段。
文件鎖是實現(xiàn)進程同步與互斥的手段[20-21],本文將文件鎖應用于解決邊緣計算終端微服務的數(shù)據(jù)讀寫沖突問題并建立其相應機制。本文的主要創(chuàng)新和貢獻如下:1)設計了邊緣計算終端微服務的文件鎖數(shù)據(jù)交互機制,支撐微服務數(shù)據(jù)的有序存??;2)提出了同步分區(qū)機制對微服務進行區(qū)域劃分,消除跨分區(qū)微服務的數(shù)據(jù)讀寫沖突隱患;3)提出了分區(qū)內同步機制和分區(qū)間同步機制,解決相同分區(qū)內和相鄰分區(qū)間微服務的數(shù)據(jù)讀寫沖突;4)本文工作亦在數(shù)據(jù)讀寫可靠性和實時性層面為微服務數(shù)據(jù)同步機制的工程研發(fā)設計和技術方案的選定提供參考依據(jù)。
微服務是云原生技術體系中的一種應用程序的軟件架構,本文所提配電物聯(lián)網臺區(qū)邊緣計算終端是云原生技術在電力系統(tǒng)邊緣側應用的重要載體之一,具有就地采集分析控制[22]、微服務靈活更新部署[23]、終端功能軟件定義[24]、業(yè)務多元化生態(tài)化[25-26]的特點和優(yōu)勢,與軟硬件強耦合的傳統(tǒng)配電終端相區(qū)別。
本文邊緣計算終端微服務的層次結構如附錄A圖A1 所示。其中,業(yè)務功能類微服務由邊緣計算終端的應用開發(fā)商研制,負責支撐配電臺區(qū)邊緣計算終端業(yè)務的實現(xiàn),可再細分為采集類、分析類、控制類微服務。系統(tǒng)功能類微服務由邊緣計算終端的系統(tǒng)開發(fā)商研制,負責為上層的業(yè)務功能類微服務提供后臺支撐和管理手段。配電臺區(qū)邊緣計算終端的不同類微服務可由不同廠家設計,有利于發(fā)揮各研發(fā)團隊的優(yōu)勢和促成各類廠家參與的格局,為形成開放創(chuàng)新的行業(yè)新生態(tài)帶來了機遇[27]。
本文配電物聯(lián)網臺區(qū)邊緣計算終端主要面向分布式光伏、儲能系統(tǒng)、充電樁等低壓增量接入對象及其相關新型配電臺區(qū)業(yè)務(例如需求側響應、配電網監(jiān)控、配電網保護、拓撲識別等)。這些業(yè)務一般具有采集、分析、控制等環(huán)節(jié),本文將以文獻[8]中電價型負荷響應業(yè)務的微服務時序邏輯圖為例闡述后續(xù)所提出的機制,具體如附錄A 圖A2 所示。該業(yè)務包含7 個微服務,具體業(yè)務流程如下:
首先,由負荷數(shù)據(jù)采集類微服務解析負荷數(shù)據(jù),由電量電價采集類微服務解析負荷用電量與電價關系曲線的形狀系數(shù),由峰谷電價采集類微服務解析分時電價;接著,負荷預測分析類微服務利用解析的負荷數(shù)據(jù)進行短期負荷預測,彈性矩陣分析類微服務利用電量電價曲線形狀系數(shù)和分時電價數(shù)值計算出負荷響應的彈性系數(shù);最后,負荷響應分析類微服務利用負荷預測、彈性系數(shù)和分時電價結果計算負荷響應量大小,由負荷控制類微服務形成負荷控制信號。
在實際系統(tǒng)中,配電物聯(lián)網臺區(qū)邊緣計算終端的數(shù)據(jù)來源于智能電表、傳感器和云主站等,邊緣計算終端業(yè)務通過部署于邊緣計算終端的各類微服務完成相應的數(shù)據(jù)處理、決策分析和就地控制。本文主要研究邊緣計算終端微服務的文件鎖數(shù)據(jù)同步機制,解決數(shù)據(jù)讀寫沖突問題。
邊緣計算終端微服務的文件鎖主要分為讀鎖和寫鎖兩種。讀鎖又稱為共享鎖,當微服務加讀鎖時,則可對數(shù)據(jù)庫表進行讀操作。寫鎖又稱為排斥鎖,當微服務加寫鎖時,則可對數(shù)據(jù)庫表進行寫操作。文件鎖的類型決定了微服務擁有的讀寫操作權限,合理有序的文件鎖加鎖保證了微服務數(shù)據(jù)的可靠有序讀寫。建立的邊緣計算終端微服務的文件鎖加鎖規(guī)則如附錄A 表A1 所示。
然后,建立微服務的文件鎖狀態(tài)轉移模型,如附錄A 圖A3 所示。其中共有6 種狀態(tài),包括無加鎖狀態(tài)、加讀鎖狀態(tài)、加寫鎖狀態(tài)、解鎖狀態(tài)、阻塞狀態(tài)、等待狀態(tài)。微服務的文件鎖狀態(tài)轉移過程可總結為3 種。1)正常讀-寫的狀態(tài)轉移過程為:無加鎖狀態(tài)→加讀/寫鎖狀態(tài)→解鎖狀態(tài)→無加鎖狀態(tài);2)讀-寫排斥的狀態(tài)轉移過程為:無加鎖狀態(tài)→加讀鎖→阻塞→等待→加讀鎖→解鎖→無加鎖狀態(tài);3)寫-讀、寫-寫排斥的狀態(tài)轉移過程為:無加鎖狀態(tài)→加寫鎖→阻塞→等待→加寫鎖→解鎖→無加鎖狀態(tài)。
受電力系統(tǒng)保護開關接線的啟發(fā),本文在建立的微服務層次結構、時序邏輯模型和文件鎖狀態(tài)轉移模型的基礎上,設計了邊緣計算終端微服務的文件鎖數(shù)據(jù)交互機制,用于支撐微服務數(shù)據(jù)的有序存取。邊緣計算終端微服務的文件鎖數(shù)據(jù)交互機制如圖1 所示。
圖1 邊緣計算終端微服務的文件鎖數(shù)據(jù)交互機制Fig.1 File lock based data interaction mechanism for microservices of edge computing terminal
配電臺區(qū)邊緣計算終端業(yè)務所含微服務都會經歷從數(shù)據(jù)庫讀取數(shù)據(jù)、執(zhí)行微服務和將數(shù)據(jù)寫入數(shù)據(jù)庫的過程。讀寫數(shù)據(jù)流母線將與閉合的一組讀鎖開關或寫鎖開關共同構成微服務與數(shù)據(jù)庫間的數(shù)據(jù)流通路徑。數(shù)據(jù)庫是數(shù)據(jù)存放的倉庫,采用垂直分庫和水平分表相結合的方式構建,通過垂直分庫可創(chuàng)建多個數(shù)據(jù)庫,每個數(shù)據(jù)庫中存放同類微服務的數(shù)據(jù),通過水平分表可在每個數(shù)據(jù)庫內創(chuàng)建多個表,每個表中存放不同配電臺區(qū)邊緣計算終端業(yè)務的微服務數(shù)據(jù)。
若沒有微服務的文件鎖數(shù)據(jù)同步機制,微服務的數(shù)據(jù)讀取開關和寫入開關則根據(jù)微服務自身讀寫需求閉合,易造成數(shù)據(jù)讀寫沖突問題,尤其在多微服務場景中更為顯著。通過微服務的文件鎖數(shù)據(jù)同步機制,使得各微服務的數(shù)據(jù)讀取開關和寫入開關合理有序閉合,從而避免微服務數(shù)據(jù)讀寫沖突,保證配電臺區(qū)邊緣計算終端業(yè)務的正常完成。
本文為了解決微服務的數(shù)據(jù)讀寫沖突問題,提出了邊緣計算終端微服務的文件鎖數(shù)據(jù)同步機制,所提出機制包括微服務分區(qū)機制、分區(qū)內同步機制和分區(qū)間同步機制。微服務的文件鎖加鎖不僅受微服務時序邏輯的影響,還受微服務所處同步分區(qū)、微服務類型、讀寫時間等的影響,是多因素耦合的復雜問題。而所提出機制充分考慮了這些影響,并能有效避免微服務的數(shù)據(jù)讀寫沖突。為了便于讀者理解,本文繼續(xù)以配電臺區(qū)邊緣計算終端電價型負荷響應業(yè)務為示例闡述所提出機制。
2.1.1 分區(qū)機制
本文提出的邊緣計算終端微服務的分區(qū)機制共有3 個步驟:1)根據(jù)微服務時序邏輯圖中的橫向前向路徑最大微服務數(shù),獲取分區(qū)列數(shù);2)根據(jù)微服務時序邏輯圖中的縱向最大微服務數(shù),獲取分區(qū)行數(shù);3)依次將微服務時序邏輯圖中的所有前向路徑上的微服務填入分區(qū)空位中,已填寫的微服務不再填寫。
依據(jù)提出的分區(qū)機制,對配電臺區(qū)邊緣計算終端電價型負荷響應業(yè)務中的微服務進行同步分區(qū),結果如圖2 所示。圖2 中共有7 個微服務,分別為微服務1(1.負荷數(shù)據(jù)微服務)、微服務2(2.電量電價微服務)、微服務3(3.峰谷電價微服務)、微服務4(4.負荷預測微服務)、微服務5(5.彈性矩陣微服務)、微服務6(6.負荷響應微服務)、微服務7(7.負荷控制微服務)。圖2 中的前向路徑①具有的最大微服務數(shù)為5,因此共有5 列,每列代表一個分區(qū)。圖2 中,縱向最大微服務數(shù)為2,因此共有2 行。將前向路徑①中的微服務1、3、5、6、7 填入第1 行,將前向路徑②中的微服務2 和微服務4 填入第2 行,剩余空位不填寫,最終得到了同步分區(qū)結果。圖中微服務間連線表示各微服務的前置關系。
圖2 微服務的同步分區(qū)機制示意圖Fig.2 Schematic diagram of synchronization partitioning mechanism for microservices
2.1.2 同步矩陣
微服務的文件鎖數(shù)據(jù)同步矩陣包括類型矩陣A、分區(qū)矩陣B和前置矩陣C。
類型矩陣A用于刻畫各微服務所屬的類型,記微服務個數(shù)為n,則類型矩陣A為1×n矩陣。矩陣元素1、2、3 分別表示采集類、分析類、控制類。
分區(qū)矩陣B用于刻畫各微服務所屬分區(qū),記微服務個數(shù)為n,則分區(qū)矩陣B為1×n矩陣。若微服務i與微服務j同屬于分區(qū)k,則將分區(qū)矩陣B的第i和第j列元素置為k。
前置矩陣C用于刻畫各微服務的前置微服務,記微服務個數(shù)為n,則前置矩陣C為n×n矩陣。若微服務i是微服務j的前置微服務,則將前置矩陣C的第i行第j列元素置為1。
2.2.1 分區(qū)內同步機制
因文件鎖中的讀鎖具有共享特性,同一分區(qū)內的同一類微服務可同時讀取相同的數(shù)據(jù)庫表。同一分區(qū)內的不同類微服務因讀取的數(shù)據(jù)庫表不同,不存在沖突。因此,分區(qū)內微服務的數(shù)據(jù)讀取過程不沖突。
因文件鎖中的寫鎖具有排斥特性,同一分區(qū)內的同一類微服務不允許同時向相同的數(shù)據(jù)庫表寫入數(shù)據(jù)。同一分區(qū)內的不同類微服務因寫入的數(shù)據(jù)庫表不同,不存在沖突。因此,建立分區(qū)內同步機制解決同一分區(qū)內的同類微服務同時寫入的沖突風險。
現(xiàn)以分區(qū)1 的微服務1 和微服務2 為例闡述分區(qū)內同步機制,如圖3 所示,該圖中共有2 種情況。假設微服務1 的數(shù)據(jù)讀取和微服務執(zhí)行時間之和小于微服務2,則微服務1 需要先寫入數(shù)據(jù),因此先加寫鎖。微服務2 在微服務1 寫入數(shù)據(jù)過程中不允許加寫鎖,因此,需要等待微服務1 寫入解鎖后才可加寫鎖寫入數(shù)據(jù),如圖3 中第1 種情況所示。若微服務1 在微服務2 執(zhí)行完成前寫入完畢,則微服務2 無須等待可直接寫入,如圖3 中第2 種情況所示。
圖3 分區(qū)內同步機制示意圖Fig.3 Schematic diagram of in-area synchronization mechanism in partition
2.2.2 分區(qū)內同步時間模型
分區(qū)內同步時間模型用于刻畫分區(qū)內同步機制下各微服務文件鎖加鎖的時序配合過程,具體如下:
式 中:Tini,h,a,m、Trl,h,a,m、Tro,h,a,m、Tex,h,a,m、Twl,h,a,m和Two,h,a,m分 別 為 分 區(qū)h的 第a類 微 服 務 中 的 第m個 微服務的起始時間戳、加讀鎖時間戳、解讀鎖時間戳、執(zhí)行完成時間戳、加寫鎖時間戳和解寫鎖時間戳;tc,h,a,m、tr,h,a,m和tw,h,a,m分 別 為 分 區(qū)h的 第a類 微 服 務中的第m個微服務的執(zhí)行時長、讀取時長和寫入時長;dr,h,a,m和dw,h,a,m分 別 為 分 區(qū)h的 第a類 微 服 務 中的第m個微服務的讀數(shù)據(jù)量和寫數(shù)據(jù)量;αr和αw分別為讀取和寫入時長系數(shù)。
2.3.1 分區(qū)間同步機制
為了避免微服務跨分區(qū)的讀寫沖突風險,需建立分區(qū)間同步機制,分區(qū)間同步機制包括了前置同步和非前置同步2 種。
1)前置同步機制
前置同步機制是指微服務需要等待其所有前置微服務完成寫入后才可加讀鎖讀取數(shù)據(jù),從而避免微服務的讀寫沖突。
現(xiàn)以分區(qū)1 和分區(qū)2 的微服務為例闡述前置同步機制,如圖4 所示。微服務1 和微服務2 均為微服務3 和微服務4 的前置微服務,當微服務1 完成數(shù)據(jù)寫入后微服務3 和微服務4 準備加讀鎖讀取數(shù)據(jù)。但此時,微服務2 準備加寫鎖寫入數(shù)據(jù),將造成微服務的讀寫沖突。此時,微服務3 和微服務4 均需等待其前置微服務1 和微服務2 完成寫入后才加讀鎖。
圖4 前置同步機制示意圖Fig.4 Schematic diagram of pre-synchronization mechanism
2)非前置同步機制
非前置同步機制是指處于后一分區(qū)的微服務需等待前一分區(qū)同類微服務和與其前置微服務同類的微服務完成寫入后才可開始加讀鎖讀取數(shù)據(jù),從而避免微服務的讀寫沖突。
現(xiàn)以分區(qū)2 和分區(qū)3 的微服務為例闡述非前置同步機制,如圖5 所示。當微服務3 完成數(shù)據(jù)寫入后,微服務5 準備加讀鎖讀取數(shù)據(jù),但此時微服務4準備加寫鎖寫入數(shù)據(jù),將造成微服務的讀寫沖突。此時,微服務5 的前置微服務為微服務3,微服務4為微服務5 的前一分區(qū)內同類微服務,因此,微服務5 需等待微服務3 和微服務4 完成寫入后才可以開始加讀鎖。因非前置同步與前置同步在時序配合方法上相似,在后續(xù)文件鎖加鎖時間模型中,微服務4也可視作微服務5 的前置微服務來計算。
圖5 非前置同步機制示意圖Fig.5 Schematic diagram of non-pre-synchronization mechanism
2.3.2 分區(qū)間同步時間模型
分區(qū)間同步時間模型用于刻畫分區(qū)間同步機制下各微服務文件鎖加鎖的時序配合過程,具體如下:
式中:pj和pk分別為微服務j和微服務k;ckj為前置矩陣C中 第k行 第j列 元 素;Two,cr,h,pk為 分 區(qū) 間 同 步 機制 下 分 區(qū)h內 微 服 務k的 解 寫 鎖 時 間 戳;Tini,cr,h+1,pj、Trl,cr,h+1,pj、Tro,cr,h+1,pj和Tex,cr,h+1,pj分 別 為 分 區(qū) 間 同 步機制下分區(qū)h+1 內微服務j的起始時間戳、加讀鎖時 間 戳、解 讀 鎖 時 間 戳、執(zhí) 行 完 成 時 間 戳;tr,cr,h+1,pj、tc,cr,h+1,pj和dr,cr,h+1,pj分 別 為 分 區(qū) 間 同 步 機 制 下 分 區(qū)h+1 內微服務j的讀取時長、執(zhí)行時長和讀取數(shù)據(jù)量。
邊緣計算終端微服務的文件鎖加鎖結果求解流程如附錄A 圖A4 所示。本文文件鎖的加鎖不僅受時序邏輯的影響,還受微服務所處同步分區(qū)、微服務類型、讀寫時間等的影響。通過所提出方法,可以獲得在本文微服務文件鎖數(shù)據(jù)同步機制下,各微服務加讀鎖、解讀鎖、執(zhí)行完成、加寫鎖、解寫鎖的時間戳。
本文所提出機制的適用性分析:首先,本文每個配電臺區(qū)邊緣計算終端的業(yè)務由微服務構成,微服務間具有時序邏輯性,而不同時序邏輯結構均可采用本文4 種類型的支路構成,因此時序邏輯圖的構成是完備的。接著,本文提出的同步分區(qū)機制是在時序邏輯圖的基礎上,依據(jù)所有前向路徑,將微服務進行分區(qū),因此對于不同的時序邏輯圖而言,同步分區(qū)機制依然適用。最后,本文文件鎖的加鎖不僅受時序邏輯的影響,還受微服務所處同步分區(qū)、微服務類型、讀寫時間等的影響,所提出分區(qū)內同步和分區(qū)間同步機制均充分考慮了這些影響,并已給出了討論分析。因此,本文所提出機制對于其他具有微服務時序邏輯的配電臺區(qū)邊緣計算終端業(yè)務仍具有適用性。
本文所提出機制的技術實現(xiàn)與實時性分析:本文同步分區(qū)機制與微服務執(zhí)行延時無關。本文分區(qū)內同步機制避免微服務同時寫入沖突的方法,在技術實現(xiàn)中采用寫入請求先到先寫的方式來實現(xiàn)先執(zhí)行完的微服務先加寫鎖寫入數(shù)據(jù),不依賴于微服務執(zhí)行延時為確定值。本文分區(qū)間同步機制避免微服務讀寫沖突的方法,在技術實現(xiàn)中采用事件中斷的方式來實現(xiàn)每個微服務在其前置微服務寫鎖解鎖后加讀鎖讀取數(shù)據(jù),也不依賴于微服務執(zhí)行延時為確定值。因此,所提出機制的有效性不依賴于微服務執(zhí)行延時為確定值。而本文算例分析為了更好讓讀者易懂,以微服務延時為確定值的方式展示本文機制的有效性。此外,所提出機制的同步耗時受微服務數(shù)量、微服務時序邏輯結構、微服務分解度的影響,本文工作正為分析這些影響和降低同步耗時提供了手段,且所提出機制是解決邊緣計算終端數(shù)據(jù)讀寫沖突的一種直接有效手段,與微服務輕量級理念相一致。因此,所提出機制在適應實時性業(yè)務方面仍具有優(yōu)勢。
本文以配電臺區(qū)邊緣計算終端電價型負荷響應業(yè)務的微服務時序邏輯圖為例進行文件鎖數(shù)據(jù)同步機制有效性的驗證和算例分析,具體如附錄A 圖A2所示,仿真參數(shù)如表A2 所示。表中包含了業(yè)務所含各微服務、讀取數(shù)據(jù)量、寫入數(shù)據(jù)量、執(zhí)行時長及相應矩陣。本文在MATLAB 軟件環(huán)境上搭建面向配用電物聯(lián)網邊緣計算終端微服務的仿真平臺,硬件環(huán)境為:CPU 型號為Intel Core i7-9700,GPU 型號為AMD Radeon R7 430,內存容量為8 GB。
采用本文邊緣計算終端微服務的文件鎖數(shù)據(jù)同步機制,得到各微服務的文件鎖加鎖結果如附錄A表A3 所示。表中展示了各微服務的加讀鎖、解讀鎖、執(zhí)行完成、加寫鎖和解寫鎖狀態(tài)的時間戳。
由附錄A 表A3 可知,微服務1 在0.152 0 s 執(zhí)行完成,微服務2 在0.151 5 s 執(zhí)行完成,微服務2 先于微服務1 執(zhí)行完成,先加寫鎖。微服務2 寫入數(shù)據(jù)的時間段為0.151 5 s 至0.154 5 s,由于寫鎖的排斥特性,微服務1 等待至0.154 5 s 才加寫鎖,有效避免了寫入沖突,驗證了分區(qū)內同步機制的有效性。
微服務1 和微服務2 均為微服務3 的前置微服務,微服務1 在0.154 5 s 解寫鎖,微服務2 在0.158 1 s 解寫鎖,在分區(qū)間同步機制下微服務3 需等待至0.158 1 s 加讀鎖,有效避免了讀寫沖突,驗證了前置同步機制的有效性。
微服務3 為微服務5 的前置微服務,微服務4 為微服務5 的非前置微服務,微服務3 在0.312 6 s 解寫鎖,微服務4 在0.415 9 s 解寫鎖,在分區(qū)間同步機制下微服務5 需等待至0.415 9 s 加讀鎖,有效避免了讀寫沖突,驗證了非前置同步機制的有效性。
各類數(shù)據(jù)庫的讀寫記錄如附錄A 表A4 所示。表中展示了各微服務對數(shù)據(jù)庫的讀、寫操作記錄和讀、寫耗時。該讀寫結果與微服務的時序邏輯具有一致性,說明讀寫的數(shù)據(jù)庫對象正確。
根據(jù)各微服務的寫入時刻、寫入時長、寫入數(shù)據(jù)量可得到各數(shù)據(jù)庫及邊緣計算終端的累計寫入數(shù)據(jù)量,如附錄A 圖A5 所示。邊緣計算終端的累計寫入數(shù)據(jù)量為各數(shù)據(jù)庫累計寫入數(shù)據(jù)量之和。
時序邏輯結構改變后,如附錄A 圖A6 所示,原本的微服務3 從串聯(lián)支路移到了并聯(lián)支路,與微服務2 和微服務3 構成并聯(lián)支路。采用本文邊緣計算終端微服務的文件鎖數(shù)據(jù)同步機制,得到時序邏輯結構改變后的文件鎖加鎖結果如表A5 所示,累計寫入數(shù)據(jù)量統(tǒng)計結果如圖A7 所示。時序邏輯結構改變對數(shù)據(jù)同步的影響,如表A6 所示。表中,讀寫耗時占比為讀寫總耗時與業(yè)務期望延時之比,同步耗時占比為同步總耗時與業(yè)務期望延時之比,本文該業(yè)務期望延時為1 s。
由附錄A 表A5 可知,在分區(qū)內同步機制下,微服務2 在0.151 5 s 執(zhí)行完成先加寫鎖,微服務3 需等待至0.154 5 s 加寫鎖,微服務1 需等待至0.157 5 s加寫鎖,有效避免了寫入沖突。
微服務4 和微服務5 在分區(qū)間同步機制下,在0.161 1 s 加讀鎖。由于微服務5 在0.312 6 s 執(zhí)行完成先加寫鎖,在0.315 0 s 解寫鎖,而此時微服務4 仍處于執(zhí)行過程中,無須加寫鎖,無寫入沖突。待微服務4 在0.414 1 s 執(zhí)行完成后,由于無寫入沖突,可直接加寫鎖寫入數(shù)據(jù)。
由附錄A 表A6 可知,時序邏輯結構改變對同步總耗時和業(yè)務總時長產生影響。在時序邏輯改變前,同步總耗時為0.105 8 s,業(yè)務總時長為0.881 0 s,時序邏輯改變后,同步總耗時為0.008 5 s,業(yè)務總時長為0.730 1 s,其原因在于時序邏輯改變后串聯(lián)支路數(shù)量減少有利于同步總耗時和業(yè)務總時長的減少。
在時序邏輯結構改變的基礎上,本文對比了采用文件鎖數(shù)據(jù)同步機制前后的結果,如附錄A 表A7所示。由表A7 可知,沒有采用文件鎖數(shù)據(jù)同步機制前雖沒有同步耗時開銷,但因為存在微服務同時寫入或同時讀寫的現(xiàn)象,形成了沖突時段。而采用文件鎖數(shù)據(jù)同步機制后雖產生了同步耗時的開銷,但有效避免了微服務的數(shù)據(jù)讀寫沖突問題,提高了數(shù)據(jù)讀寫的可靠性。時序邏輯結構改變后,微服務沖突個數(shù)從2 個增加至3 個,其原因在于并聯(lián)支路中微服務的數(shù)量增加,而采用文件鎖數(shù)據(jù)同步機制后,仍然能有效避免時序邏輯結構變化后帶來的沖突風險。
微服務分解度指業(yè)務分解為微服務的顆粒度大小,可由業(yè)務分解后的微服務數(shù)量體現(xiàn)。在附錄A圖A6 基礎上將采集類微服務1、2、3 合并為一個采集類微服務,將分析類微服務4、5、6 合并為一個分析類微服務,則該業(yè)務的微服務數(shù)量由7 變?yōu)?。
本文對比了微服務合并前后的結果,如附錄A表A8 所示。表中,讀寫耗時占比為讀寫總耗時與業(yè)務期望延時之比,同步耗時占比為同步總耗時與業(yè)務期望延時之比,本文該業(yè)務期望延時為1 s。
由附錄A 表A8 可知,微服務分解度對同步總耗時和業(yè)務總時長產生影響。合并后的微服務等效于被合并的微服務以串聯(lián)的方式執(zhí)行,使同步總耗時減少為0,但卻增加了業(yè)務總時長。合并后業(yè)務的總時長為1.187 5 s,顯然已經超出了該業(yè)務的期望延時,因此微服務分解度需兼顧同步總耗時和業(yè)務延時進行合理設計。
本文將所提出的文件鎖數(shù)據(jù)同步機制與隊列機制、獨立空間機制進行了對比,如附錄A 表A9 所示。由表A9 可知,在數(shù)據(jù)讀寫可靠性層面,3 種機制均能滿足要求;在實時性層面,本文機制介于隊列機制和獨立空間機制二者之間,隊列機制下的業(yè)務總時長最大,獨立空間機制下的業(yè)務總時長最??;在存儲空間占用層面,獨立空間機制下所需占用的存儲空間是本文機制和隊列機制的2 倍。因此,綜合考慮數(shù)據(jù)讀寫可靠性、實時性和存儲空間3 個方面,本文機制更具有優(yōu)勢。
采用隊列機制和獨立空間機制獲得的微服務數(shù)據(jù)讀寫時間結果分別如附錄A 表A10 和表A11 所示。由表A10 可知,在隊列機制下各微服務按隊列先后順序從數(shù)據(jù)庫讀取數(shù)據(jù)和寫入數(shù)據(jù),隊列機制保證了微服務數(shù)據(jù)讀寫的有序進行,避免數(shù)據(jù)讀寫沖突。采用隊列機制后,業(yè)務完成的時長為0.732 1 s,存儲空間占用量與本文機制相同。由表A11 可知,在獨立空間機制下各微服務無須等待彼此讀取數(shù)據(jù)和寫入數(shù)據(jù)的完成,從而降低了業(yè)務完成的時長。采用獨立空間機制后,業(yè)務完成的時長為0.724 6 s,雖然微服務通過額外開辟獨立存儲空間能有效避免數(shù)據(jù)讀寫沖突,實時性較強,但卻使得存儲空間占用增大。
本文提出了一種配電物聯(lián)網臺區(qū)邊緣計算終端微服務的文件鎖數(shù)據(jù)同步機制,用于解決微服務數(shù)據(jù)讀寫沖突問題。仿真結果表明,所提出機制能有效避免微服務的數(shù)據(jù)讀寫沖突,而微服務時序邏輯結構和微服務分解度均會對數(shù)據(jù)同步耗時產生影響,合理的微服務時序邏輯結構和微服務分解度有利于減少同步總耗時和業(yè)務總時長,更好滿足業(yè)務延時要求。本文工作為分析這些影響提供了有效手段,也為邊緣計算終端的微服務數(shù)據(jù)同步機制、微服務時序邏輯和微服務分解度的工程研發(fā)設計提供參考依據(jù)。此外,本文所提出的文件鎖數(shù)據(jù)同步機制相較于隊列機制在同步耗時和業(yè)務總時長方面更具優(yōu)勢,相較于獨立空間機制在存儲空間占用上更具優(yōu)勢。
本文工作既為后續(xù)研究考慮微服務數(shù)據(jù)同步機制的計算資源優(yōu)化配置與調度問題奠定基礎,也為后續(xù)研究配電臺區(qū)邊緣計算終端云邊協(xié)同業(yè)務的高并發(fā)數(shù)據(jù)同步問題奠定基礎。
附錄見本刊網絡版(http://www.aeps-info.com/aeps/ch/index.aspx),掃英文摘要后二維碼可以閱讀網絡全文。