黃 穎, 郭明強, 謝 忠, 吳 亮
(1.武漢中地數(shù)碼科技有限公司,湖北 武漢 430074;2.中國地質(zhì)大學 信息工程學院,湖北 武漢 430074)
集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法
黃 穎1, 郭明強2, 謝 忠2, 吳 亮2
(1.武漢中地數(shù)碼科技有限公司,湖北 武漢 430074;2.中國地質(zhì)大學 信息工程學院,湖北 武漢 430074)
針對現(xiàn)有集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)性能優(yōu)化策略的特點和弊端進行分析,提出集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,重點研究網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存體系結(jié)構(gòu)、可擴展的高性能內(nèi)存緩存控制設(shè)計、內(nèi)存緩存工作流程,最終實現(xiàn)集群環(huán)境下基于內(nèi)存緩存的網(wǎng)絡(luò)空間信息服務(wù)的加速,解決傳統(tǒng)WebGIS模型中存在的I/O瓶頸問題。最后,使用五個常用的網(wǎng)絡(luò)空間信息服務(wù)類型對文中提出的方法進行實驗,結(jié)果證明與傳統(tǒng)的集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)相比,文中設(shè)計的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法能夠有效地提升服務(wù)并發(fā)處理能力,具有良好的可擴展性。
網(wǎng)絡(luò)空間信息服務(wù);集群;緩存;高性能;可擴展
在大數(shù)據(jù)時代,空間數(shù)據(jù)的海量特性日益凸顯出來[1],為了應(yīng)對海量空間數(shù)據(jù)在網(wǎng)絡(luò)環(huán)境下的大規(guī)模用戶并發(fā)訪問,高性能已成為網(wǎng)絡(luò)空間信息服務(wù)[2-7]需要解決的首要問題[8]。制約網(wǎng)絡(luò)空間信息服務(wù)并發(fā)處理能力的因素眾多,必須從其體系架構(gòu)出發(fā),分析網(wǎng)絡(luò)空間信息服務(wù)體系中各個層次的存儲、傳輸和計算流程[9-10],找到性能瓶頸所在,針對性地對性能瓶頸進行優(yōu)化,才能夠提升網(wǎng)絡(luò)空間信息服務(wù)的并發(fā)處理能力。
為了應(yīng)對網(wǎng)絡(luò)空間信息服務(wù)面臨的海量空間數(shù)據(jù)發(fā)布和大規(guī)模用戶并發(fā)訪問的挑戰(zhàn),已有較多的學者對網(wǎng)絡(luò)空間信息服務(wù)的性能優(yōu)化進行了深入研究,并取得了顯著的研究成果,如漸進式傳輸[11-12],負載均衡[13-15]和并行計算[16-17]。這三種方法均未解決海量空間數(shù)據(jù)的大規(guī)模用戶并發(fā)訪問時的存儲設(shè)備的I/O瓶頸問題,此瓶頸是目前嚴重制約網(wǎng)絡(luò)空間信息服務(wù)并發(fā)處理性能的關(guān)鍵。因此,本文研究并設(shè)計了一種集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法,采用高性能內(nèi)存緩存技術(shù)將空間數(shù)據(jù)請求內(nèi)容進行緩存,減少海量空間數(shù)據(jù)在存儲設(shè)備上的I/O次數(shù),以有效地提升網(wǎng)絡(luò)空間信息服務(wù)的并發(fā)處理性能。
為了解決傳統(tǒng)網(wǎng)絡(luò)空間信息服務(wù)集群體系結(jié)構(gòu)存在的弊端,解決大規(guī)模用戶并發(fā)訪問場景下空間數(shù)據(jù)存儲設(shè)備存在的I/O瓶頸問題,本文提出了一種網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存架構(gòu),如圖1所示。其主要的改進之處:
1)圖1中的Load Balancer(負載均衡器)在調(diào)度來自客戶端的并發(fā)請求任務(wù)時,不再每次都將請求轉(zhuǎn)發(fā)給GIS Server Cluster(GIS服務(wù)器集群)中的服務(wù)結(jié)點進行處理,而是先從Cache Server Cluster(內(nèi)存緩存集群)中檢索當前請求任務(wù)對應(yīng)的結(jié)果緩存,若緩存命中,則直接將緩存的結(jié)果返回給客戶端,如果緩存未命中,才從GIS Server Cluster中選擇一個最優(yōu)的服務(wù)結(jié)點處理當前請求任務(wù)。這樣在大規(guī)模用戶并發(fā)訪問下,可以減少相同的并發(fā)請求任務(wù)被重復(fù)地發(fā)送到GIS Server Cluster中,從而減少GIS服務(wù)器對空間數(shù)據(jù)庫的訪問次數(shù),有效解決空間數(shù)據(jù)存儲設(shè)備I/O瓶頸問題。
2)圖1中架構(gòu)與傳統(tǒng)網(wǎng)絡(luò)空間信息服務(wù)集群最大的不同在于增加了Cache Server Cluster,目前服務(wù)器硬件配置發(fā)展速度快,內(nèi)存容量已能輕易擴展至128 GB甚至更高,在海量空間數(shù)據(jù)應(yīng)用場景下,可以借助多個內(nèi)存緩存服務(wù)器組成的緩存集群,擴充網(wǎng)絡(luò)空間信息服務(wù)集群的內(nèi)存緩存容量,緩存容量越大,緩存的命中率就越高,GIS 服務(wù)器和空間數(shù)據(jù)存儲設(shè)備的負載就越低,從而最大程度的避免I/O瓶頸對網(wǎng)絡(luò)空間信息服務(wù)并發(fā)處理能力的影響。
圖1 網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存架構(gòu)
內(nèi)存緩存技術(shù)目前已廣泛應(yīng)用于各個大型互聯(lián)網(wǎng)服務(wù)網(wǎng)站中,具有代表性的內(nèi)存緩存技術(shù)有Memcached和Redis,亞馬遜和阿里云均提供了支持這兩種內(nèi)存緩存的云服務(wù)產(chǎn)品,用于支持大規(guī)模用戶并發(fā)訪問場景下的并發(fā)請求結(jié)果數(shù)據(jù)緩存,網(wǎng)絡(luò)空間信息服務(wù)的每一個網(wǎng)絡(luò)請求地址均對應(yīng)一個請求結(jié)果,這種特性非常符合內(nèi)存緩存技術(shù)的特點。因此,可以將Memcached和Redis內(nèi)存緩存技術(shù)引入到網(wǎng)絡(luò)空間信息服務(wù)中,實現(xiàn)基于內(nèi)存緩存的網(wǎng)絡(luò)空間信息服務(wù)的加速。
為了支持不同的內(nèi)存緩存技術(shù),本文設(shè)計的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存架構(gòu)遵循了模塊可擴展的設(shè)計原則,如圖2所示,定義了一個通用的內(nèi)存緩存操作接口ICacheServer,不同的內(nèi)存緩存服務(wù)只需要實現(xiàn)該接口中定義的函數(shù)即可,如MemCacheServer用于支持Memcached內(nèi)存緩存服務(wù),RedisServer用于支持Redis內(nèi)存緩存服務(wù)。
CacheManager是提供給Load Balancer的內(nèi)存緩存集群的操作類,其提供了重要的內(nèi)存緩存的獲取和存儲函數(shù)。ThirdPartCacheConfig類是高性能內(nèi)存緩存的全局配置類,其包含了不同內(nèi)存緩存服務(wù)的配置信息、內(nèi)存緩存開關(guān)、緩存有效期、接口權(quán)限控制信息等參數(shù)配置。MemCacheConfig和RedisConfig分別是Memcached和Redis內(nèi)存緩存服務(wù)的參數(shù)配置類,CacheInterfaceControl是網(wǎng)絡(luò)空間信息服務(wù)接口的控制類,用于控制各個服務(wù)接口的緩存權(quán)限和緩存數(shù)據(jù)的有效期,實現(xiàn)接口粒度的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存控制。
當Load Balancer接收到來自客戶端的并發(fā)請求后,對每個請求的具體處理流程如下(見圖3)。
1)Load Balancer根據(jù)每個請求的類型獲取當前請求對應(yīng)的緩存項的Key,以瓦片地圖服務(wù)為例,可以使用瓦片地圖服務(wù)名稱,瓦片的行號、列號和級數(shù)來生成緩存項的Key,格式為{tileName}_{level}_{row}_{col};
圖2 可擴展的內(nèi)存緩存控制類
圖3 內(nèi)存緩存工作流程
2)同時根據(jù)接口類型獲取接口緩存權(quán)限控制類Control;
3)根據(jù)Key,Control和緩存數(shù)據(jù)的類型(T),調(diào)用CacheManager的GetCache方法從內(nèi)存緩存集群中檢索當前請求的Key對應(yīng)的結(jié)果數(shù)據(jù)緩存項,若緩存命中,則直接將檢索到的緩存數(shù)據(jù)返回給客戶端,結(jié)束。若緩存未命中,轉(zhuǎn)(4)。
4)將當前請求任務(wù)轉(zhuǎn)發(fā)到GIS Server Cluster中的GIS服務(wù)器結(jié)點,GIS服務(wù)器進行空間數(shù)據(jù)檢索、提取和處理后,將結(jié)果返回至Load Balancer。
5)Load Balancer調(diào)用CacheManger的SetCache方法將GIS服務(wù)器返回的結(jié)果存儲到內(nèi)存緩存集群中,Key存儲的內(nèi)容為GIS服務(wù)器返回的字節(jié)數(shù)組byte[]。同時將結(jié)果返回至客戶端。
為了驗證本文提出的高性能內(nèi)存緩存架構(gòu)的性能,本文使用網(wǎng)絡(luò)空間信息服務(wù)中常用的且適合進行內(nèi)存緩存的五大服務(wù)接口來進行驗證測試。WMTS GetTile是瓦片地圖服務(wù)接口,WMTS GetCapabilities是瓦片地圖服務(wù)元數(shù)據(jù)信息獲取接口,目錄服務(wù)接口是獲取網(wǎng)絡(luò)空間信息服務(wù)平臺發(fā)布的地圖服務(wù)目錄信息,地形服務(wù)是用于獲取三維地球上的地形數(shù)據(jù),三維模型服務(wù)用于獲取在三維視圖中顯示的三維模型數(shù)據(jù)。
本文使用位于高速局域網(wǎng)內(nèi)的服務(wù)器構(gòu)建試驗床,采用全國1:25萬地質(zhì)圖數(shù)據(jù)進行實驗,使用500并發(fā)訪問用戶量對本文提出的方法進行實驗,并與傳統(tǒng)集群下的網(wǎng)絡(luò)空間信息服務(wù)進行對比。
在網(wǎng)絡(luò)空間信息服務(wù)中,Load Balancer每秒能夠成功完成的請求數(shù)是衡量集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)并發(fā)處理性能的關(guān)鍵指標之一,每秒能夠成功處理的請求數(shù)越多,Load Balancer的并發(fā)處理能力越強。
圖4 負載均衡器每秒處理請求數(shù)
從圖4中可以分析得出:①傳統(tǒng)的無內(nèi)存緩存的網(wǎng)絡(luò)空間信息服務(wù)集群的每秒處理請求數(shù)顯著低于本文提出的采用高性能內(nèi)存緩存的集群架構(gòu)。以WMTS GetTile服務(wù)接口為例,在無內(nèi)存緩存情況下,Load Balancer的每秒處理請求數(shù)僅121次,而在新的架構(gòu)中可以提升到每秒700次以上,獲得超過5倍的性能提升。②在新的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存架構(gòu)中,主流的Memcached和Redis內(nèi)存緩存服務(wù)均能獲得穩(wěn)定的加速性能,大多數(shù)常用的網(wǎng)絡(luò)空間信息服務(wù)接口的并發(fā)處理能力均能達到約700次/s,表現(xiàn)出本方法對第三方內(nèi)存緩存服務(wù)的良好的可擴展性,有利于其它類型的內(nèi)存緩存服務(wù)快速穩(wěn)定的擴展到本文設(shè)計的網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存架構(gòu)中。
本文針對現(xiàn)有集群環(huán)境下的網(wǎng)絡(luò)空間信息服務(wù)體系架構(gòu)的弊端進行研究,重點考慮到網(wǎng)絡(luò)空間信息服務(wù)在大規(guī)模用戶并發(fā)訪問場景下的空間數(shù)據(jù)存儲設(shè)備I/O性能瓶頸,設(shè)計了新的具有高性能內(nèi)存緩存集群的網(wǎng)絡(luò)空間信息服務(wù)集群架構(gòu),實現(xiàn)了Memcached和Redis兩種主流的第三方內(nèi)存緩存服務(wù)的擴展,以減少負載均衡器和GIS服務(wù)器之間的請求次數(shù),有效地降低GIS服務(wù)器和空間數(shù)據(jù)庫的負載,從而有效地降低空間數(shù)據(jù)存儲設(shè)備的I/O次數(shù)。實驗中使用了常用的五種網(wǎng)絡(luò)空間信息服務(wù)接口進行驗證測試,實驗結(jié)果表明,與傳統(tǒng)的網(wǎng)絡(luò)空間信息服務(wù)體系結(jié)構(gòu)相比,本文提出的支持高性能內(nèi)存緩存的網(wǎng)絡(luò)空間信息服務(wù)集群能夠獲得顯著的性能提升,并且在Memcached和Redis兩種主流的內(nèi)存緩存服務(wù)中均表現(xiàn)穩(wěn)定,證明了本文提出的方法有效性和可擴展性。下一步工作會將亞馬遜和阿里云中的內(nèi)存緩存服務(wù)擴展到本文設(shè)計的網(wǎng)絡(luò)空間信息服務(wù)架構(gòu)中,以將其運用到云環(huán)境的生產(chǎn)與實踐中。
[1] ZHANG L, YANG C, TONG X, et al. Visualization of large spatial data in networking environments[J]. Computers and Geosciences, 2007,33(9):1130-1139.
[2] 劉曉童, 馬文波, 馬雪濤. 基于WebGIS的建設(shè)用地監(jiān)管系統(tǒng)設(shè)計與實現(xiàn)[J]. 交通科技與經(jīng)濟, 2013(6):114-117.
[3] 楊超,潘東峰.基于Flex和ArcGIS Server的WebGIS開發(fā)關(guān)鍵技術(shù)研究[J].測繪與地理信息空間,2016,39(6):90-92.
[4] 江明明. 基于WebGIS的城市地鐵施工監(jiān)測信息管理系統(tǒng)分析[J].測繪與地理信息空間,2016,39(9):86-87.
[5] 楊娟, 陶葉青. 基于WEBGIS的管理維護系統(tǒng)[J]. 交通科技與經(jīng)濟, 2009(6):110-112.
[6] 寧方志, 季民, 陳許霞. 基于WebGIS的武都精細化扶貧系統(tǒng)的設(shè)計與開發(fā)[J].測繪與地理信息空間,2016,39(7):39-41.
[7] 李月華.基于WebGIS的環(huán)境監(jiān)管云平臺設(shè)計與建設(shè)[J].測繪與地理信息空間,2016,39(1):121-124.
[8] WANG S, ANSELIN L, BHADURI B, et al. CyberGIS software: a synthetic review and integration roadmap[J]. International Journal of Geographical Information Science, 2013,27(11):2122-2145.
[9] YANG B, PURVES R, WEIBEL R. Efficient transmission of vector data over the Internet[J]. International Journal of Geographical Information Science, 2007,21(2):215-237.
[10] MUSTAFA N H, KRISHNAN S, VARADHAN G, et al. Dynamic simplification and visualization of large maps.[J]. International Journal of Geographical Information Science, 2006,20(3):273-302.
[11] YANG L, ZHANG L, MA J, et al. Efficient Simplification of Large Vector Maps Rendered onto 3D Landscapes[J]. Computer Graphics & Applications IEEE, 2011,31(2):14-23.
[12] ZHANG L, REN Y, GUO Z. Transmission and visualization of large geographical maps[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2011,66(1):73-80.
[13] 陳一驕, 盧錫城, 時向泉, 等. 一種面向會話的自適應(yīng)負載均衡算法[J]. 軟件學報, 2008,19(7):1828-1836.
[14] 李忠民, 喻占武, 朱莉. 基于空間數(shù)據(jù)內(nèi)容的動態(tài)負載均衡方法[J]. 武漢大學學報(信息科學版), 2009,34(5):622-625.
[15] 王浩, 喻占武, 李銳, 等. 基于開銷代價的網(wǎng)絡(luò)地理信息服務(wù)負載均衡算法研究[J]. 測繪學報, 2009,38(3):242-249.
[16] YANG C, WONG D W, YANG R, et al. Performance-improving techniques in web-based GIS[J]. International Journal of Geographical Information Science, 2005,19(3):319-342.
[17] PESQUER L, CORTéS A, PONS X. Parallel ordinary kriging interpolation incorporating automatic variogram fitting[J]. Computers & Geosciences, 2011,37(4):464-473.
ResearchonhighperformancememorycacheofWebGISunderclusterenvironment
HUANG Ying1, GUO Mingqiang2, XIE Zhong2, WU Liang2
(1.Wuhan Zondy Cyber Technology Ltd., Co., Wuhan 430074,China;2.School of Information & Engineering, China University of Geosciences, Wuhan 430074,China)
Aiming at the characteristics and drawbacks of existing performance optimizing strategies under WebGIS cluster environment, this paper proposes a new WebGIS model based on high performance memory cache under cluster environment, which mainly focuses on the high performance memory cache architecture of WebGIS, the scalable high performance memory cache module and the workflow of memory cache, thus realizing the high performance memory cache under WebGIS cluster environment, and solving the I/O bottleneck problem in traditional WebGIS model. Finally, five frequently-used services are used in WebGIS to conduct the simulation experiment. The result shows that, compared with the traditional WebGIS cluster environment, the new model based on high performance memory cache designed in this paper can effectively improve the concurrent processing capability of WebGIS cluster, which has good scalability.
WebGIS; cluster; memory cache; high performance; scalability
2016-11-21
國家博士后科學基金資助項目(2014M552115);中央高校基本科研業(yè)務(wù)費專項資金資助項目(CUGL140833) ;國家十二五科技支撐計劃(2011BAH06B04);國家自然科學基金資助項目(41701446);湖北省自然科學基金資助項目(2017CFB277);國土資源部地質(zhì)信息技術(shù)重點實驗室開放課題(2017-324)
黃 穎 (1981-),女,高級工程師,博士后.
著錄:黃穎, 郭明強, 謝忠,等.集群環(huán)境下網(wǎng)絡(luò)空間信息服務(wù)高性能內(nèi)存緩存方法[J].測繪工程,2018,27(1):47-51.
10.19349/j.cnki.issn1006-7949.2018.01.010
TP393.06
A
1006-7949(2018)01-0047-05
李銘娜]