明 哲,余 蕓,甘 杉
(南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東廣州 510000)
電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中分布式數(shù)據(jù)的處理對(duì)電力業(yè)務(wù)的管理效率有較大的影響,傳統(tǒng)方法采用在數(shù)據(jù)庫(kù)中復(fù)制數(shù)據(jù)的方式完成電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的處理,以此保證電力數(shù)據(jù)的一致性,但是該方式會(huì)增加電力系統(tǒng)的內(nèi)存開銷,不僅降低業(yè)務(wù)流轉(zhuǎn)的速度,而且還加大了電力系統(tǒng)的存儲(chǔ)負(fù)荷[1-2]。
為了解決上述問題,該文設(shè)計(jì)了新型的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)中分布式數(shù)據(jù)一致性算法,采用數(shù)據(jù)分層異步復(fù)制方式優(yōu)化現(xiàn)有算法中的數(shù)據(jù)復(fù)制方式,提高電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)處理效率。
傳統(tǒng)的數(shù)據(jù)庫(kù)分布式數(shù)據(jù)一致性算法在應(yīng)用時(shí),數(shù)據(jù)復(fù)制和轉(zhuǎn)發(fā)過程中沒有設(shè)置相應(yīng)的驗(yàn)證行為,導(dǎo)致電力業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)出現(xiàn)目標(biāo)誤識(shí)或者不識(shí)的故障[3-4],為了解決以上問題,在算法中融入了兩個(gè)階段的協(xié)議,分別是對(duì)電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的封鎖和解鎖協(xié)議。
在數(shù)據(jù)庫(kù)中設(shè)置協(xié)議可以避免一些不安全的行為,如部分隱藏的危險(xiǎn)電力業(yè)務(wù)數(shù)據(jù)跟隨通過驗(yàn)證的數(shù)據(jù)成功傳輸?shù)綌?shù)據(jù)庫(kù)中,對(duì)電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的安全造成威脅。兩個(gè)協(xié)議具有唯一性,一個(gè)周期內(nèi)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)轉(zhuǎn)發(fā),只能申請(qǐng)一個(gè)封鎖協(xié)議,只有對(duì)此封鎖協(xié)議解鎖后,才可以重新申請(qǐng)數(shù)據(jù)封鎖協(xié)議,避免出現(xiàn)解鎖密鑰不匹配,電力業(yè)務(wù)自動(dòng)銷毀的情況。具體的封鎖和解鎖協(xié)議與數(shù)據(jù)庫(kù)和電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)之間的關(guān)系如圖1所示。
圖1 協(xié)議與數(shù)據(jù)庫(kù)和電力業(yè)務(wù)之間關(guān)系圖
其中,TM 表示電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)管理器;LM 表示接收數(shù)據(jù)庫(kù);DPA 表示數(shù)據(jù)處理管理器[5]。
封鎖協(xié)議利用集中式封鎖技術(shù)完成部署,數(shù)據(jù)流轉(zhuǎn)過程中,由數(shù)據(jù)庫(kù)向電力系統(tǒng)內(nèi)的鎖管理器申請(qǐng)一個(gè)封鎖空間,并獲取鎖空間權(quán)限。此操作完成后,利用鎖管理器發(fā)送的數(shù)據(jù)封鎖的辨識(shí)碼,并向封鎖字典獲取解鎖密鑰,但是此密鑰此時(shí)只秘密地存儲(chǔ)并轉(zhuǎn)發(fā)到解鎖協(xié)議中,封鎖協(xié)議不具有查看的權(quán)限[6-7]。然后獲取需要向數(shù)據(jù)庫(kù)中通信的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)條,獲取后直接將數(shù)據(jù)條封鎖,封鎖數(shù)據(jù)條數(shù)量與業(yè)務(wù)數(shù)據(jù)流轉(zhuǎn)數(shù)量保持一致,禁止私自增加或者減少電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的數(shù)量。最后釋放封鎖的數(shù)據(jù)流,目的是向解鎖協(xié)議和數(shù)據(jù)庫(kù)發(fā)送待通信通知[8-9]。
解鎖協(xié)議利用并發(fā)控制技術(shù)完成部署,解鎖流程為首先獲取電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)封鎖協(xié)議的封鎖空間序列號(hào),然后對(duì)應(yīng)序列號(hào)驗(yàn)證此封鎖協(xié)議是否是正規(guī)的封鎖信息,如果不是,立即銷毀;如果是,則進(jìn)行下一步操作。其次,獲取封鎖協(xié)議自帶的解鎖密鑰。獲取密鑰時(shí),解鎖協(xié)議需攜帶封鎖釋放數(shù)據(jù)和解鎖密鑰。最后解密封鎖協(xié)議封裝的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù),完成后釋放電力業(yè)務(wù)流轉(zhuǎn)發(fā)數(shù)據(jù)的鎖空間[10-12]。
電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)分布式數(shù)據(jù)一致性算法的目的是在不更改數(shù)據(jù)庫(kù)中主體數(shù)據(jù)的前提下,對(duì)電力業(yè)務(wù)流數(shù)據(jù)與數(shù)據(jù)庫(kù)中已存在的數(shù)據(jù)進(jìn)行匹配,如果存在相同電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù),則對(duì)數(shù)據(jù)庫(kù)內(nèi)的主體和副本數(shù)據(jù)進(jìn)行更改,如果不存在,則直接存入即可[13]。算法必須記錄所有傳入數(shù)據(jù)庫(kù)內(nèi)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的轉(zhuǎn)發(fā)時(shí)間戳和RD 地址,為后期數(shù)據(jù)庫(kù)內(nèi)電力信息的調(diào)用奠定基礎(chǔ)。算法的具體計(jì)算原理如圖2 所示。
圖2 一致性算法原理
電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性校驗(yàn)的關(guān)鍵是使數(shù)據(jù)庫(kù)中不存在重復(fù)或冗余的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)信息,分布式數(shù)據(jù)一致性算法判斷數(shù)據(jù)庫(kù)中是否存在相同電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)信息的過程,如下所示:
其中,ts(MD)表示數(shù)據(jù)庫(kù)中主體數(shù)據(jù)的時(shí)間戳信息;ts(RD) 表示數(shù)據(jù)庫(kù)中副本數(shù)據(jù)的時(shí)間戳信息;Update(RD) 表示封信副本信息的數(shù)據(jù);B表示數(shù)據(jù)復(fù)制算法;Read(RD)表示讀取數(shù)據(jù)庫(kù)中副本數(shù)據(jù)信息[14]。
電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性算法在一致性校驗(yàn)時(shí),不僅校驗(yàn)的是電力業(yè)務(wù)數(shù)據(jù)內(nèi)容,而且還依次校驗(yàn)了電力業(yè)務(wù)信息流中包含的分布式數(shù)據(jù),如節(jié)點(diǎn)數(shù)量、屬性、目錄地址、RD 地址等數(shù)據(jù),以此防止發(fā)生更新不相同的數(shù)據(jù)時(shí)造成數(shù)據(jù)丟失的情況。算法確定數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性后,在執(zhí)行算法時(shí),必須先刪除數(shù)據(jù)庫(kù)中冗余數(shù)據(jù)的全部注冊(cè)信息的主參數(shù)和基本參數(shù)后,再存儲(chǔ)新數(shù)據(jù)。為了防止因?yàn)樗惴ㄐr?yàn)錯(cuò)誤,導(dǎo)致數(shù)據(jù)庫(kù)中數(shù)據(jù)丟失,數(shù)據(jù)庫(kù)中待刪除數(shù)據(jù)信息副本的所有參數(shù)會(huì)臨時(shí)存儲(chǔ)一段時(shí)間[15-16]。
數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性算法的能耗計(jì)量公式如式(1)所示:
式(1)中,co表示電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)量;c1表示數(shù)據(jù)庫(kù)和電力傳輸業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)初始化的時(shí)間;X表示傳輸速率。
分布式數(shù)據(jù)分層復(fù)制操作的核心是分別處理數(shù)據(jù)庫(kù)中主本和副本的數(shù)據(jù),一方面可以將電力業(yè)務(wù)分布式數(shù)據(jù)流存儲(chǔ)到數(shù)據(jù)庫(kù)中,另一方面又可以備份數(shù)據(jù)庫(kù)中已經(jīng)更新的分布式數(shù)據(jù),保障數(shù)據(jù)庫(kù)內(nèi)信息的安全。
該文采用的分布式數(shù)據(jù)分層復(fù)制操作的指導(dǎo)算法為Directory 協(xié)議,此協(xié)議操作簡(jiǎn)單,可以快捷完成電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)復(fù)制的工作。數(shù)據(jù)信息復(fù)制的工作主要包括讀取和寫入兩個(gè)操作行為,當(dāng)數(shù)據(jù)庫(kù)中不存在重復(fù)的分布式數(shù)據(jù)時(shí),此協(xié)議只需要讀取通信的數(shù)據(jù),讀取后判斷此業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)信息是否與數(shù)據(jù)庫(kù)中分布式數(shù)據(jù)相同,如果不存在相應(yīng)的數(shù)據(jù),直接寫入到數(shù)據(jù)庫(kù)中即可。如果數(shù)據(jù)庫(kù)存在分布式數(shù)據(jù),則協(xié)議首先需要對(duì)數(shù)據(jù)庫(kù)中原始的分布式數(shù)據(jù)進(jìn)行讀取和刪除操作,再寫入轉(zhuǎn)發(fā)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù),完成分布式電力業(yè)務(wù)的復(fù)制。
通過以上的論述和分析,完成了電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中分布式數(shù)據(jù)一致性算法的設(shè)計(jì)。為了檢驗(yàn)算法的可行性,設(shè)計(jì)了對(duì)比實(shí)驗(yàn)。
測(cè)試前需要提前準(zhǔn)備一個(gè)存在大量數(shù)據(jù)業(yè)務(wù)的電力系統(tǒng)、獨(dú)立的30 條電力業(yè)務(wù)數(shù)據(jù)條以及一個(gè)內(nèi)存空間足夠大并且存有數(shù)據(jù)的數(shù)據(jù)庫(kù),作為測(cè)試樣本。將文獻(xiàn)[3]基于信息分散算法的分布式數(shù)據(jù)實(shí)時(shí)存儲(chǔ)方法、文獻(xiàn)[4]基于一致性算法的電力系統(tǒng)分布式經(jīng)濟(jì)調(diào)度方法以及該文方法三個(gè)算法分別隸屬于三臺(tái)計(jì)算機(jī)。計(jì)算機(jī)內(nèi)錄入數(shù)據(jù)庫(kù),連接電力系統(tǒng),開始實(shí)驗(yàn)測(cè)試,記錄開始時(shí)間。
實(shí)驗(yàn)測(cè)試的流程是同時(shí)啟動(dòng)三臺(tái)計(jì)算機(jī),并且同時(shí)向三臺(tái)算法隸屬的電力系統(tǒng)部署和發(fā)送需要傳輸?shù)碾娏I(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)信息。當(dāng)三個(gè)系統(tǒng)全部完成電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)操作后,保存所有算法工作產(chǎn)生的數(shù)據(jù)記錄,關(guān)閉系統(tǒng)、斷開數(shù)據(jù)庫(kù)連接、關(guān)閉計(jì)算機(jī),結(jié)束實(shí)驗(yàn),進(jìn)行實(shí)驗(yàn)結(jié)果分析。
實(shí)驗(yàn)結(jié)束后,根據(jù)計(jì)算反饋的基本信息對(duì)比三個(gè)算法通信過程中的能耗和經(jīng)濟(jì)開銷,如圖3 所示。
圖3 能耗和經(jīng)濟(jì)開銷實(shí)驗(yàn)圖
圖3 中,樣本1-5 中均包含了300 個(gè)傳輸數(shù)據(jù)。由圖3 可知,文獻(xiàn)[3]算法在整個(gè)完成任務(wù)周期內(nèi)能耗開銷和經(jīng)濟(jì)開銷都是最高的,該文設(shè)計(jì)算法的開銷是最低的。因?yàn)樵陔娏I(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)操作中一定會(huì)存在能耗開銷和經(jīng)濟(jì)開銷,設(shè)計(jì)算法降低了隸屬系統(tǒng)的能耗和經(jīng)濟(jì)開銷,保證電力業(yè)務(wù)傳輸?shù)睦妗?/p>
分析數(shù)據(jù)庫(kù)接收500 個(gè)電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)后,得到三個(gè)算法傳輸電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的收斂速度,結(jié)果如圖4 所示。
根據(jù)圖4 可知,三個(gè)算法傳輸電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的收斂時(shí)間均為7 s,但是圖中三個(gè)算法最終匯聚的點(diǎn)不同,此匯聚點(diǎn)表示算法一致性收斂的速率。其中,該文設(shè)計(jì)算法的收斂速度最快,文獻(xiàn)[3]算法的收斂速度最慢。因此,根據(jù)三個(gè)算法完成任務(wù)的時(shí)間和電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)收斂速度,可以證明該文設(shè)計(jì)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性算法具有最佳收斂特點(diǎn),并且工作效率優(yōu)于現(xiàn)有的一致性算法。
圖4 不同算法一致性收斂速度實(shí)驗(yàn)圖
關(guān)于算法的響應(yīng)速率實(shí)驗(yàn)結(jié)果,如圖5 所示。
圖5 不同算法響應(yīng)延遲時(shí)間示意圖
圖5 展示的是三個(gè)算法在向數(shù)據(jù)庫(kù)中傳輸電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)的響應(yīng)延遲情況,由圖可知,三種算法在響應(yīng)過程中,隨著傳輸電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)量的增加,算法的響應(yīng)延遲效果越明顯。根據(jù)電力業(yè)務(wù)管理規(guī)定,業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)的響應(yīng)延遲時(shí)間不大于2 s,即為系統(tǒng)處于正常運(yùn)行狀態(tài)。傳輸10×103個(gè)電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)時(shí),文獻(xiàn)[3]算法和該文設(shè)計(jì)算法的響應(yīng)延遲時(shí)間均在2 s 以內(nèi),該文設(shè)計(jì)算法延遲時(shí)間更低,在0.5 s 左右,文獻(xiàn)[4]算法達(dá)到3.9 s,無法正常運(yùn)行。但是在經(jīng)歷了20×103個(gè)電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)轉(zhuǎn)發(fā)時(shí),文獻(xiàn)[3]算法的響應(yīng)延遲已經(jīng)達(dá)到了2.7 s,該文設(shè)計(jì)的算法響應(yīng)延遲持續(xù)為0.5 s 左右。在完成所有的電力業(yè)務(wù)流轉(zhuǎn)發(fā)到數(shù)據(jù)庫(kù)中的任務(wù)后,該文設(shè)計(jì)算法的響應(yīng)延遲時(shí)間最高為1 s,但是兩個(gè)對(duì)比算法的響應(yīng)延遲時(shí)間持續(xù)上升。由此可以證明設(shè)計(jì)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性算法的響應(yīng)延遲達(dá)到了認(rèn)證標(biāo)準(zhǔn),具有一定的可用性。
最后對(duì)數(shù)據(jù)庫(kù)中接收到的數(shù)據(jù)進(jìn)行檢驗(yàn),查看所有算法轉(zhuǎn)發(fā)的30 條電力業(yè)務(wù)數(shù)據(jù)成功轉(zhuǎn)發(fā)的條數(shù),為保證實(shí)驗(yàn)的嚴(yán)謹(jǐn)性,將誤傳率實(shí)驗(yàn)次數(shù)設(shè)置為8 次,由此得到數(shù)據(jù)轉(zhuǎn)發(fā)的誤傳率,得到的誤傳率實(shí)驗(yàn)結(jié)果如圖6 所示。
圖6 誤傳率實(shí)驗(yàn)結(jié)果
由圖6 可知,文獻(xiàn)[4]算法在通信電力業(yè)務(wù)數(shù)據(jù)時(shí),誤傳率最高;文獻(xiàn)[3]算法對(duì)應(yīng)數(shù)據(jù)庫(kù)次之,且誤傳率均高于該文算法,該文設(shè)計(jì)算法誤傳率最高為0.10%。
綜合上述實(shí)驗(yàn)結(jié)果可知,該文設(shè)計(jì)的電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中數(shù)據(jù)一致性算法具有較高的通信收斂速度,傳輸?shù)捻憫?yīng)延遲和誤傳率均符合應(yīng)用標(biāo)準(zhǔn)。
電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中分布式數(shù)據(jù)一致性算法不僅可以加強(qiáng)電力領(lǐng)域相關(guān)業(yè)務(wù)的管控,而且提高了電力業(yè)務(wù)的處理效率。集中式控制和并發(fā)式控制封鎖協(xié)議涵蓋了目前電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)一致性算法驗(yàn)證的多種狀態(tài),避免電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中出現(xiàn)格式單一匹配錯(cuò)誤、數(shù)據(jù)多次轉(zhuǎn)發(fā)情況的發(fā)生。在該文電力業(yè)務(wù)流轉(zhuǎn)數(shù)據(jù)庫(kù)中分布式數(shù)據(jù)一致性算法分析的基礎(chǔ)上,可以進(jìn)一步對(duì)一致性算法進(jìn)行優(yōu)化或者更改,應(yīng)用在電力業(yè)務(wù)流的其他工作程序中,達(dá)到電力業(yè)務(wù)處理流程節(jié)能、高效的效果。