陳順德,鐘一俊,周明磊,洪建光
(浙江省電力公司信息通信分公司,杭州310007)
基于本地緩存技術(shù)的電網(wǎng)GIS性能優(yōu)化方法研究
陳順德,鐘一俊,周明磊,洪建光
(浙江省電力公司信息通信分公司,杭州310007)
隨著浙江電網(wǎng)GIS建設(shè)不斷推進(jìn),系統(tǒng)性能需求得到越來越廣泛的重視。針對(duì)電網(wǎng)GIS客戶端登陸時(shí)間過長的問題,提出一種基于本地緩存技術(shù)的電網(wǎng)GIS性能優(yōu)化方法,設(shè)計(jì)新增本地硬盤緩存電網(wǎng)資源空間數(shù)據(jù)功能,并對(duì)本地序列化緩存、內(nèi)存數(shù)據(jù)增量更新、本地緩存處理過程等關(guān)鍵技術(shù)點(diǎn),展開了分析研究。最后,將該技術(shù)應(yīng)用于配電GIS客戶端,測試結(jié)果表明,通過從本地緩存加載電網(wǎng)數(shù)據(jù)方式,極大地提高了登錄速度,取得了良好的應(yīng)用效果。
電網(wǎng)GIS;本地緩存;性能;登錄時(shí)間
隨著電網(wǎng)GIS(地理信息系統(tǒng))應(yīng)用的不斷普及,構(gòu)建集中式部署的企業(yè)級(jí)電網(wǎng)GIS成為省級(jí)供電企業(yè)選擇的發(fā)展方向。2010年起,浙江省電力公司開始企業(yè)級(jí)電網(wǎng)GIS的建設(shè),實(shí)現(xiàn)了輸、變、配等電網(wǎng)資源的結(jié)構(gòu)化管理和圖形化展現(xiàn),以面向服務(wù)的架構(gòu)為各類業(yè)務(wù)應(yīng)用提供電網(wǎng)圖形和分析服務(wù)。目前,電網(wǎng)GIS已經(jīng)涵蓋全省3 965條輸電線路,16 972條配電線路,1 597座變電站,23 268個(gè)低壓臺(tái)區(qū),累計(jì)存儲(chǔ)千萬級(jí)規(guī)模的電網(wǎng)資源空間數(shù)據(jù)。
在服務(wù)器全省集中部署模式下,為了滿足用戶的性能需求,電網(wǎng)GIS采用分區(qū)+空間索引的數(shù)據(jù)庫設(shè)計(jì)方式,結(jié)合內(nèi)存對(duì)象數(shù)據(jù)庫、柵格/切片地圖本地存儲(chǔ)等數(shù)據(jù)緩存技術(shù),減少了數(shù)據(jù)庫服務(wù)器和網(wǎng)絡(luò)的處理壓力。但隨著電網(wǎng)資源空間數(shù)據(jù)不斷地增加,仍暴露出新的性能問題。特別是在偏遠(yuǎn)地區(qū),受網(wǎng)絡(luò)帶寬和客戶機(jī)配置所限,電網(wǎng)GIS客戶端登錄時(shí)間可能長達(dá)幾10 min,大大降低了用戶使用積極性。針對(duì)這個(gè)問題,提出一種基于本地緩存技術(shù)的電網(wǎng)GIS性能優(yōu)化方法,旨在提高電網(wǎng)GIS客戶端登錄速度。
數(shù)據(jù)緩存介于應(yīng)用程序和物理數(shù)據(jù)源之間,存儲(chǔ)介質(zhì)包括內(nèi)存和硬盤,其作用是降低應(yīng)用程序?qū)ξ锢頂?shù)據(jù)源訪問的頻次,從而提高應(yīng)用的運(yùn)行性能。根據(jù)不同的數(shù)據(jù)緩存區(qū)應(yīng)用位置,可將緩存技術(shù)分為客戶機(jī)端本地緩存、服務(wù)器端集中緩存及分布式緩存技術(shù)。
擬將客戶機(jī)端本地硬盤緩存技術(shù)應(yīng)用于電網(wǎng)GIS,該技術(shù)是通過客戶機(jī)端程序?qū)⒎?wù)器端獲取的數(shù)據(jù)寫入本地硬盤緩存,當(dāng)需要再次訪問該數(shù)據(jù)時(shí),可以選擇直接從本地緩存文件中讀取數(shù)據(jù),而不用訪問服務(wù)器,以減輕服務(wù)器和網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān)。
電網(wǎng)GIS主要由基礎(chǔ)地理空間數(shù)據(jù)和電網(wǎng)資源空間數(shù)據(jù)等組成。對(duì)于變化量較小的基礎(chǔ)地理空間數(shù)據(jù),服務(wù)器端利用地圖切片技術(shù),進(jìn)行預(yù)處理生成切片文件,客戶機(jī)端按需將部分切片文件下載至本地緩存,無需重復(fù)訪問服務(wù)器端數(shù)據(jù)。對(duì)于變化量較大的電網(wǎng)資源空間數(shù)據(jù),服務(wù)器端將其存儲(chǔ)在Oracle關(guān)系數(shù)據(jù)表中,客戶機(jī)端利用內(nèi)存數(shù)據(jù)庫技術(shù),并基于AutoCAD空間數(shù)據(jù)模型,實(shí)現(xiàn)與服務(wù)器端的模型映射及數(shù)據(jù)互操作,但暫未應(yīng)用本地硬盤緩存技術(shù)。
設(shè)計(jì)增加本地硬盤緩存電網(wǎng)資源空間數(shù)據(jù)功能,期望減少對(duì)服務(wù)器、網(wǎng)絡(luò)處理的壓力,并縮短客戶機(jī)端數(shù)據(jù)加載等待時(shí)間,提高系統(tǒng)的易用性。但這種空間換時(shí)間的技術(shù)可能存在服務(wù)器端和客戶機(jī)端數(shù)據(jù)沖突等技術(shù)難題,需要針對(duì)關(guān)鍵技術(shù)進(jìn)行專題研究。
2.1 本地序列化緩存
對(duì)象序列化是對(duì)象持久化的一種實(shí)現(xiàn)方法,它將不同對(duì)象的屬性和方法轉(zhuǎn)化為序列化的格式存儲(chǔ)和傳輸,并通過反序列化將保存的信息重建對(duì)象。秉承面向?qū)ο蟮木幊趟枷?,電網(wǎng)GIS已對(duì)本地內(nèi)存讀取的電網(wǎng)資源空間數(shù)據(jù)進(jìn)行對(duì)象化處理,客戶機(jī)端程序支持以設(shè)備對(duì)象為單位的數(shù)據(jù)訪問方式,具備對(duì)象序列化本地緩存條件。
選擇.NET Framework平臺(tái)提供的序列化機(jī)制,采用二進(jìn)制序列化格式,實(shí)現(xiàn)在本地硬盤中對(duì)電網(wǎng)資源空間數(shù)據(jù)的持久化保存。
2.2 內(nèi)存數(shù)據(jù)增量更新
新增本地緩存功能后,本地內(nèi)存既可從Oracle中加載數(shù)據(jù),也可從本地硬盤中加載數(shù)據(jù),但由于電網(wǎng)GIS具備并發(fā)編輯控制功能,無論選用何種加載方式,在數(shù)據(jù)編輯前仍須從Oracle中同步最新數(shù)據(jù)至本地內(nèi)存,并支持內(nèi)存數(shù)據(jù)增量更新操作,以消除本地硬盤和后臺(tái)數(shù)據(jù)庫數(shù)據(jù)不一致的隱患。
通過在電網(wǎng)資源空間數(shù)據(jù)表中增加“最后更新時(shí)間”字段,以及在本地緩存文件中記錄保存時(shí)間的方法,在內(nèi)存加載硬盤緩存數(shù)據(jù)過程中,對(duì)本地保存時(shí)間與最后更新時(shí)間進(jìn)行比較,篩選出自本地保存時(shí)間后更新的電網(wǎng)資源空間數(shù)據(jù),實(shí)現(xiàn)增量加載。
考慮到電網(wǎng)GIS支持長事務(wù)處理的特點(diǎn),存在增量加載完整性漏洞,需要設(shè)置時(shí)間提前策略,通過冗余加載部分本地保存時(shí)間前的數(shù)據(jù),避免遺漏更新數(shù)據(jù)。
2.3 本地緩存處理過程
電網(wǎng)GIS本地緩存處理過程涉及Oracle數(shù)據(jù)庫、本地內(nèi)存程序、本地緩存文件等存儲(chǔ)介質(zhì),三者之間的關(guān)系如圖1所示,包括保存變更至Oracle數(shù)據(jù)庫、全量/增量加載至本地內(nèi)存程序、批量生成本地緩存文件、本地緩存加載至本地內(nèi)存程序等4個(gè)處理過程。以下將著重介紹后面2個(gè)處理過程。
2.3.1 批量生成本地緩存文件
生成本地緩存文件的處理邏輯如下:
(1)確保電網(wǎng)GIS客戶端已退出編輯狀態(tài),所有修改結(jié)果都寫入Oracle數(shù)據(jù)庫,且將本次修改對(duì)象的狀態(tài)改為已保存,從而釋放并發(fā)編輯鎖;
(2)寫出MSN(數(shù)據(jù)庫模型版本序列號(hào)),用于加載時(shí)判斷模型是否發(fā)生變化。如果序列號(hào)過期,則不允許加載本地緩存文件。
(3)寫出地理圖Document(文檔)更新USN(序列號(hào)),記錄本地緩存文件保存時(shí)間,用于內(nèi)存數(shù)據(jù)增量更新;
(5)寫出所有Block對(duì)象,并寫出圖形對(duì)象列表及路徑對(duì)象列表;
(6)從降低復(fù)雜性角度考慮,不寫出系統(tǒng)配置(如組織機(jī)構(gòu)、模板等)、一次接線圖、單線圖等數(shù)據(jù)。
2.3.2 本地緩存加載至本地內(nèi)存程序
本地緩存加載的處理邏輯如下:
(1)從Oracle數(shù)據(jù)庫加載組織機(jī)構(gòu)、模板定義等配置數(shù)據(jù);
(2)在緩存文件加載前,檢查MSN有效性;
(3)從緩存文件中依次加載block對(duì)象、路徑對(duì)象列表及圖形對(duì)象列表;
第三、表1中學(xué)生評(píng)教工作的初衷是為了褒獎(jiǎng)和促進(jìn)教師教學(xué)的積極性,需要體現(xiàn)教師的認(rèn)真負(fù)責(zé)和嚴(yán)格要求學(xué)生的正能量,教育本身包含有約束管教的使命,因此這種方法依然有繼續(xù)使用的價(jià)值和意義,但需要做出以下兩方面的調(diào)整:①對(duì)學(xué)生評(píng)教的內(nèi)容進(jìn)行調(diào)整,引導(dǎo)學(xué)生積極正面地評(píng)價(jià)教學(xué);②降低和減小學(xué)生評(píng)教結(jié)果對(duì)教師綜合評(píng)價(jià)的百分比。
(4)加載完成后,可選手工啟動(dòng)增量更新機(jī)制,下載從緩存文件USN到數(shù)據(jù)庫USN間的增量數(shù)據(jù),更新至本地內(nèi)存程序中。
3.1 測試方法
浙江電網(wǎng)GIS上線之初,曾組織開展配電GIS客戶端用戶登錄測試工作,統(tǒng)計(jì)不同測試地點(diǎn)、不同數(shù)據(jù)加載范圍下的登錄時(shí)間,暴露出加載數(shù)據(jù)時(shí)間過長的問題。本次測試工作是上次登錄測試的回歸驗(yàn)證,在增加本地緩存功能的基礎(chǔ)上,通過模擬相同的測試環(huán)境,選擇“從服務(wù)器加載電網(wǎng)數(shù)據(jù)”和“從本地緩存加載電網(wǎng)數(shù)據(jù)”2種方式,記錄加載成功所用時(shí)間,比較分析配電GIS客戶端性能現(xiàn)狀。
3.2 結(jié)果分析
選取金華、嘉興、臺(tái)州等3個(gè)地區(qū)電力局的88個(gè)有效測試結(jié)果,以折線圖方式展現(xiàn),如圖2所示。圖中自上而下的3條曲線A,B,C分別為原加載登錄時(shí)間、從服務(wù)器加載登錄時(shí)間、從本地緩存加載登錄時(shí)間等測試數(shù)據(jù)集合,分析可得以下結(jié)論:
(1)曲線B明顯低于曲線A,說明通過采用性能優(yōu)化方法,配電GIS客戶端從服務(wù)器加載數(shù)據(jù)至本地內(nèi)存的消耗時(shí)間明顯變少,由平均231 s降為平均76 s;
(2)曲線C明顯低于曲線B,說明采用本地緩存技術(shù)后,配電GIS客戶端登陸時(shí)間有了質(zhì)的變化,平均值由76 s進(jìn)一步降低到25 s??紤]到部分測試客戶機(jī)配置偏低或進(jìn)程過多等因素影響,理論上從本地緩存加載登陸時(shí)間可以更短,完全滿足用戶登錄瀏覽的需求。
電網(wǎng)GIS是否滿足用戶的功能性及非功能性等多層次需求,直接關(guān)系到系統(tǒng)應(yīng)用的實(shí)用化程度。隨著電網(wǎng)GIS的深化應(yīng)用,用戶會(huì)更加重視系統(tǒng)的性能需求。針對(duì)客戶機(jī)端登錄時(shí)間過長的問題,提出一種新的性能優(yōu)化方法,增加對(duì)電網(wǎng)資源空間數(shù)據(jù)的本地硬盤緩存及本地內(nèi)存增量更新等功能,并將其運(yùn)用于電網(wǎng)GIS客戶端程序,取得了較好效果。
[1]高立群,俞家文,丁俊松.NET Framework中序列化與反序列化方法的分析與應(yīng)用[J].微計(jì)算機(jī)應(yīng)用.2007,29(11):1178-1182.
[2]周芹,李紹俊,宋關(guān)福,等.基于Oracle Spatial的空間數(shù)據(jù)庫緩存的關(guān)鍵技術(shù)[J].地球信息科學(xué),2007,9(3):40-44.
[3]錢成越.基于AutoCAD數(shù)據(jù)建立GIS空間數(shù)據(jù)庫的方法初探[J].測繪與空間地理信息,2010,33(4):157-159.
[4]邱建康.基于AutoCAD的ArcGIS空間數(shù)據(jù)庫互操作實(shí)現(xiàn)[J].城市勘探,2010(5):54-56.
[5]焦鋒,劉群,邢文建.客戶機(jī)/服務(wù)器下的數(shù)據(jù)緩存技術(shù)[ J].遼寧工程技術(shù)大學(xué)學(xué)報(bào),2004,24(2):226-228.
[6]陶衛(wèi)平.內(nèi)存數(shù)據(jù)庫關(guān)鍵技術(shù)探討[J].大眾科技,2012,14(159):16-17.
[7]李平,吳國妹.Oracle Spatial與ArcSDE空間數(shù)據(jù)上載及應(yīng)用比較[J].信息技術(shù),2007(5):169-171,184.
(本文編輯:陸瑩)
Investigation on Optimization Method of Grid GIS Performance Based on Local Cache Technology
CHEN Shun de,ZHONG Yi jun,ZHOU Ming lei,HONG Jian guang
(Information Communications Branch of Zhejiang(Provincial)Electric Power Company,Hangzhou 310007,China)
With the construction advancement of Zhejiang power grid GIS,the system performance requirements are increasingly widely recognized.Aiming at overlong login time of GIS client,the paper proposes grid GIS optimization method based on local cache technology.New local hard disk cache grid resource spatial data capability is designed,and local serialization cache,update of memory data growth volume and key technical points like local cache processing procedure are analyzed and investigated.Finally,the technology is applied in power distribution GIS client,test result of which shows that by loading the grid data from the local cache,the login speed is greatly promoted and good application result has been achieved.
grid GIS;local cache;performance;login time
TM727:TP317.4
:B
:1007-1881(2013)11-0033-03
2013-08-13
陳順德(1966-),男,福建漳州人,工程師,從事電力信息化管理工作。