肖元縝 朱 明 蘇厚勤 徐 暢
1(東華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200051)2(安徽建筑大學(xué)政法學(xué)院 安徽 合肥 230601)
?
Redis MMDB在城市垃圾清運(yùn)監(jiān)管系統(tǒng)中的研究與應(yīng)用
肖元縝1朱明1蘇厚勤1徐暢2
1(東華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院上海 200051)2(安徽建筑大學(xué)政法學(xué)院安徽 合肥 230601)
摘要數(shù)據(jù)存儲(chǔ)和使用設(shè)計(jì)是應(yīng)用軟件系統(tǒng)的關(guān)鍵設(shè)計(jì)部分之一,關(guān)系到系統(tǒng)的業(yè)務(wù)處理、功能分解和應(yīng)用性能。在分析原系統(tǒng)組成和B/S構(gòu)架模式中頁面鏈接結(jié)構(gòu)特征基礎(chǔ)上,提出和設(shè)計(jì)了一種內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型和基于Markov決策模型的數(shù)據(jù)調(diào)度策略,通過JavaEE技術(shù)框架予以編程實(shí)現(xiàn)。實(shí)際應(yīng)用表明,研究、設(shè)計(jì)和描述的內(nèi)存數(shù)據(jù)庫應(yīng)用技術(shù)與數(shù)據(jù)調(diào)度策略具有數(shù)據(jù)訪問命中率較高、響應(yīng)速度快和數(shù)據(jù)災(zāi)備恢復(fù)機(jī)制的技術(shù)特點(diǎn),達(dá)到了設(shè)計(jì)預(yù)期目標(biāo)。
關(guān)鍵詞內(nèi)存數(shù)據(jù)庫城市垃圾監(jiān)管數(shù)據(jù)交換策略頁面分析
0引言
隨著我國城市規(guī)模拓展和城鎮(zhèn)化建設(shè)步伐加快,我國城市垃圾的產(chǎn)生量日益增長(zhǎng),據(jù)統(tǒng)計(jì),自1979年以來,城市垃圾的產(chǎn)生量達(dá)到平均每年8%~10%的增長(zhǎng)速度[1]。但是由于缺少有效的生活垃圾監(jiān)管途徑,使得垃圾收集、運(yùn)輸效率低下[2],全國多個(gè)城市已經(jīng)處于垃圾無法及時(shí)清運(yùn)和處理的尷尬境地。因此,如何采用現(xiàn)代化信息技術(shù)手段,對(duì)城市生活垃圾的清運(yùn)和處理流程進(jìn)行更高效地監(jiān)控和管理,越來越受到各級(jí)政府部門的重視和社會(huì)各界的關(guān)注。
文獻(xiàn)[3]提出了基于地理信息系統(tǒng)GIS和物聯(lián)網(wǎng)技術(shù)的餐廚垃圾管理系統(tǒng)。該系統(tǒng)使用射頻識(shí)別RFID技術(shù)和傳感器技術(shù)來進(jìn)行餐廚垃圾數(shù)據(jù)的采集和標(biāo)識(shí),通過GIS系統(tǒng)對(duì)餐廚垃圾清運(yùn)過程進(jìn)行定位監(jiān)控。文獻(xiàn)[4]利用紅外感應(yīng)技術(shù)采集垃圾信息,實(shí)現(xiàn)了對(duì)垃圾的分類收集和處理。
本文設(shè)計(jì)的城市垃圾監(jiān)管系統(tǒng),運(yùn)用GIS、RFID等技術(shù),將采集到的垃圾站相關(guān)信息數(shù)據(jù)、車輛載重?cái)?shù)據(jù)和位置等相關(guān)數(shù)據(jù),封裝成消息報(bào)文通過通用分組無線服務(wù)GPRS通信方式傳輸給后臺(tái)管理系統(tǒng),并能夠?qū)ο到y(tǒng)中的監(jiān)管設(shè)備發(fā)送控制指令,達(dá)到對(duì)城市生活垃圾的清運(yùn)和處理流的有效監(jiān)控和管理。在實(shí)現(xiàn)中,本文提出采用內(nèi)存數(shù)據(jù)庫技術(shù)來存儲(chǔ)系統(tǒng)日常處理需要的“熱點(diǎn)”數(shù)據(jù),盡可能滿足系統(tǒng)并發(fā)處理的生產(chǎn)、應(yīng)用需要,進(jìn)而提高整個(gè)監(jiān)管系統(tǒng)的處理性能。
1系統(tǒng)概述
1.1系統(tǒng)構(gòu)架模式
本文描述的城市垃圾監(jiān)管系統(tǒng),以物聯(lián)網(wǎng)技術(shù)為基礎(chǔ),完整監(jiān)管從垃圾產(chǎn)生、車輛清運(yùn)和卸載的整個(gè)過程,相關(guān)管理人員和操作人員可以通過瀏覽器方便、快捷地獲取城市生活垃圾信息和監(jiān)管垃圾清運(yùn)過程。設(shè)計(jì)與實(shí)現(xiàn)的系統(tǒng)構(gòu)架模式如圖1所示。
圖1 系統(tǒng)的構(gòu)架模式視圖
系統(tǒng)主要分為兩層:
1) 設(shè)備層。由車載設(shè)備和后臺(tái)設(shè)備組成。
車載設(shè)備功能是根據(jù)預(yù)設(shè)的通信傳輸參數(shù),將采集到的數(shù)據(jù)封裝成消息包,通過GPRS通信方式發(fā)送給后臺(tái)管理系統(tǒng),并接收來自后臺(tái)管理系統(tǒng)參數(shù)數(shù)據(jù)和控制指令數(shù)據(jù)。采集的數(shù)據(jù)有兩類:①安裝在各類垃圾站點(diǎn)的射頻識(shí)別電子標(biāo)簽RFIDET(electronic tag of RFID)所包含的垃圾站的相關(guān)信息數(shù)據(jù);②通過傳感器自動(dòng)采集車輛載重?cái)?shù)據(jù)和車輛位置等相關(guān)信息數(shù)據(jù)。
后臺(tái)設(shè)備安裝在后臺(tái)管理系統(tǒng)機(jī)房,通過標(biāo)簽打印機(jī)打印含有系統(tǒng)唯一編號(hào)和垃圾站點(diǎn)相關(guān)信息的射頻識(shí)別電子標(biāo)簽RFIDET,作為垃圾站等作業(yè)點(diǎn)和車載設(shè)備的唯一識(shí)別憑證。
2) 后臺(tái)管理系統(tǒng)層。由一系列服務(wù)器、工作站和Web客戶端等組成,主要完成對(duì)系統(tǒng)中的各類數(shù)據(jù)進(jìn)行處理、存儲(chǔ)、使用和查詢統(tǒng)計(jì)展現(xiàn),其中包括:
? 生活垃圾清運(yùn)數(shù)據(jù),包括生活垃圾稱重?cái)?shù)據(jù)和車載設(shè)備運(yùn)行狀態(tài)數(shù)據(jù),從設(shè)備層接收;
? 參數(shù)數(shù)據(jù),由監(jiān)管子系統(tǒng)發(fā)送給設(shè)備層的車載設(shè)備,是控制車載設(shè)備運(yùn)行模式的數(shù)據(jù);
? 控制數(shù)據(jù),是監(jiān)管子系統(tǒng)和車載設(shè)備間為實(shí)現(xiàn)某一特定任務(wù)而產(chǎn)生的一組數(shù)據(jù),包括監(jiān)管子系統(tǒng)發(fā)送給車載設(shè)備的指令數(shù)據(jù)包和車載設(shè)備執(zhí)行指令后向監(jiān)管子系統(tǒng)返回的執(zhí)行結(jié)果數(shù)據(jù)包;
? 用戶數(shù)據(jù),系統(tǒng)管理人員和操作人員的相關(guān)數(shù)據(jù),包括管理人員和操作人員的自身屬性、系統(tǒng)權(quán)限和操作記錄三方面的數(shù)據(jù)內(nèi)容。
1.2后臺(tái)管理系統(tǒng)模塊劃分
圖2 后臺(tái)管理系統(tǒng)功能模塊視圖
考慮到系統(tǒng)的擴(kuò)展性和分布式部署需求,將后臺(tái)管理系統(tǒng)劃分為監(jiān)管子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng),組成各子系統(tǒng)的功能模塊劃分如圖2所示。
監(jiān)管子系統(tǒng)。主要完成生活垃圾數(shù)據(jù)、菜蔬數(shù)據(jù)、控制數(shù)據(jù)以及用戶數(shù)據(jù)的信息處理和展現(xiàn)。監(jiān)管子系統(tǒng)采用基于TCP/IP協(xié)議的GPRS通信方式與車載設(shè)備進(jìn)行通信,一方面,對(duì)接收到的消息包通過循環(huán)冗余校驗(yàn)碼進(jìn)行校對(duì)、根據(jù)預(yù)定規(guī)則對(duì)消息包的數(shù)據(jù)內(nèi)容進(jìn)行解析;另一方面,向車載設(shè)備發(fā)送指令參數(shù)消息包和控制指令消息包,實(shí)時(shí)控制車載設(shè)備運(yùn)行模式。
監(jiān)管子系統(tǒng)通過基于TCP/IP協(xié)議的遠(yuǎn)程過程調(diào)用協(xié)議RPC(Remote Procedure Call Protocol)與數(shù)據(jù)管理子系統(tǒng)進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)存取,支持系統(tǒng)日常管理以及前臺(tái)監(jiān)控界面的展現(xiàn)功能。
2)數(shù)據(jù)管理子系統(tǒng)。以封裝的形式將整個(gè)系統(tǒng)中的數(shù)據(jù)訪問服務(wù)獨(dú)立出來,對(duì)外提供數(shù)據(jù)服務(wù)接口以供監(jiān)管子系統(tǒng)調(diào)用,屏蔽了數(shù)據(jù)庫存取的細(xì)節(jié)信息,便于以后功能擴(kuò)展。對(duì)每個(gè)數(shù)據(jù)服務(wù)接口,在數(shù)據(jù)管理子系統(tǒng)內(nèi)部都有對(duì)應(yīng)的具體實(shí)現(xiàn),實(shí)現(xiàn)中對(duì)數(shù)據(jù)服務(wù)接口傳入的參數(shù)合法性(如參數(shù)范圍、類型)進(jìn)行驗(yàn)證,驗(yàn)證通過后再根據(jù)預(yù)先寫在文件中的模板,將參數(shù)和模板組合成具體的數(shù)據(jù)查詢語句發(fā)送給數(shù)據(jù)庫;按照接口約定的形式對(duì)數(shù)據(jù)庫返回的數(shù)據(jù)進(jìn)行重新組合后,返回給外部系統(tǒng)。
1.3系統(tǒng)關(guān)鍵問題分析
數(shù)據(jù)管理子系統(tǒng)以內(nèi)存數(shù)據(jù)庫作為主要存儲(chǔ)器,利用其吞吐量大、存取速率快的優(yōu)勢(shì)保證系統(tǒng)的數(shù)據(jù)服務(wù)性能[5];同時(shí)采用磁盤數(shù)據(jù)庫作為備份存儲(chǔ)器,提供數(shù)據(jù)的持久化存儲(chǔ)服務(wù)。數(shù)據(jù)管理子系統(tǒng)接收到數(shù)據(jù)訪問請(qǐng)求后,處理流程如圖3所示。
圖3 數(shù)據(jù)訪問流程圖
系統(tǒng)接收到數(shù)據(jù)訪問請(qǐng)求后,將先在內(nèi)存數(shù)據(jù)庫查找,若目標(biāo)數(shù)據(jù)存在,則直接將目標(biāo)數(shù)據(jù)返回給外部系統(tǒng);若目標(biāo)數(shù)據(jù)不在內(nèi)存中,則從磁盤數(shù)據(jù)庫中將目標(biāo)數(shù)據(jù)調(diào)入至內(nèi)存,再將目標(biāo)數(shù)據(jù)返回給外部系統(tǒng)。
在圖3所示的數(shù)據(jù)訪問流程中,主要存在下述3個(gè)問題需要解決:
(1) 內(nèi)存不足
內(nèi)存是相對(duì)昂貴的存儲(chǔ)介質(zhì),在實(shí)際應(yīng)用系統(tǒng)中,能夠使用的內(nèi)存容量相對(duì)很有限;相比之下,在系統(tǒng)開始運(yùn)行后,生活垃圾清運(yùn)數(shù)據(jù)處于不斷增多的過程中,內(nèi)存數(shù)據(jù)庫無法將大量的生活垃圾清運(yùn)數(shù)據(jù)一次性全部容納進(jìn)去。
(2) 數(shù)據(jù)服務(wù)性能
監(jiān)管子系統(tǒng)的前臺(tái)展示模塊中提供了當(dāng)前城市生活垃圾清運(yùn)狀態(tài)監(jiān)管功能,由于城市垃圾清運(yùn)狀態(tài)在不斷變化,前臺(tái)展示采用了定時(shí)輪詢模式,即以一定頻率,按照固定的時(shí)間間隔通過通信模塊調(diào)用數(shù)據(jù)服務(wù)接口,向數(shù)據(jù)管理子系統(tǒng)發(fā)送RPC請(qǐng)求,獲取與垃圾清運(yùn)情況相關(guān)的最新數(shù)據(jù),將生活垃圾清運(yùn)數(shù)據(jù)的最新情況展現(xiàn)在監(jiān)管桌面。為了保證展示的省垃圾清運(yùn)數(shù)據(jù)具有高實(shí)時(shí)性,輪詢的時(shí)間間隔必須盡可能小。在系統(tǒng)訪問高峰期,由于多個(gè)客戶端同時(shí)接入監(jiān)管子系統(tǒng)進(jìn)行監(jiān)控操作,將在監(jiān)控子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)間產(chǎn)生高并發(fā)量地?cái)?shù)據(jù)訪問。
根據(jù)圖3所示的數(shù)據(jù)訪問流程,城市垃圾清運(yùn)數(shù)據(jù)在內(nèi)存中被訪問到的命中率是影響數(shù)據(jù)服務(wù)性能的重要因素。若監(jiān)管子系統(tǒng)每次請(qǐng)求的清運(yùn)信息數(shù)據(jù)都存在于內(nèi)存數(shù)據(jù)庫中,數(shù)據(jù)存取行為將僅僅發(fā)生在內(nèi)存中,此種情況下數(shù)據(jù)服務(wù)性能達(dá)到最好;但若外部系統(tǒng)每次數(shù)據(jù)訪問請(qǐng)求都無法直接從內(nèi)存數(shù)據(jù)庫中獲取數(shù)據(jù),此種情況下由于多了一次將數(shù)據(jù)向內(nèi)存數(shù)據(jù)庫的讀取遷移操作,數(shù)據(jù)服務(wù)性能甚至于比單純的磁盤數(shù)據(jù)庫存儲(chǔ)機(jī)制差。如何保證和提高垃圾清運(yùn)數(shù)據(jù)信息在內(nèi)存中被訪問到的命中率,是影響監(jiān)管子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)所有數(shù)據(jù)服務(wù)性能的重要因素。
(3) 掉電時(shí)內(nèi)存數(shù)據(jù)安全
內(nèi)存是一種易失性的存儲(chǔ)介質(zhì),在出現(xiàn)軟件出錯(cuò)、設(shè)備或電源故障時(shí),內(nèi)存中數(shù)據(jù)的可信性面臨危機(jī)或直接被丟失。如何保證在系統(tǒng)發(fā)生故障后,能將內(nèi)存中的數(shù)據(jù)恢復(fù)到故障發(fā)生前的狀態(tài),是影響系統(tǒng)數(shù)據(jù)服務(wù)可靠性的一個(gè)技術(shù)難題[6]。
2內(nèi)存數(shù)據(jù)庫應(yīng)用設(shè)計(jì)
2.1一種內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型設(shè)計(jì)
如圖2所示,監(jiān)管子系統(tǒng)的所有在線生產(chǎn)應(yīng)用功能均依附數(shù)據(jù)管理子系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和封裝好的數(shù)據(jù)查詢服務(wù)機(jī)制實(shí)現(xiàn),傳統(tǒng)的完全通過訪問磁盤數(shù)據(jù)庫的做法易產(chǎn)生I/O瓶頸,不能很好地支持并發(fā)訪問。
內(nèi)存數(shù)據(jù)具有易失性的特點(diǎn),當(dāng)內(nèi)存中的數(shù)據(jù)發(fā)生改變時(shí),可以采用圖4所示的一種內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型將數(shù)據(jù)變化的日志記錄下來并及時(shí)地存放到磁盤文件中。一旦系統(tǒng)中支持內(nèi)存數(shù)據(jù)庫應(yīng)用的設(shè)備發(fā)生故障,可以通過磁盤數(shù)據(jù)庫中的備份數(shù)據(jù)和日志文件對(duì)內(nèi)存數(shù)據(jù)庫進(jìn)行恢復(fù)。
在圖4 所示的存儲(chǔ)模型中:M1是內(nèi)存數(shù)據(jù)庫,作為數(shù)據(jù)管理子系統(tǒng)數(shù)據(jù)的主要存儲(chǔ)實(shí)體,數(shù)據(jù)讀寫操作都在M1上進(jìn)行;M2是內(nèi)存中的一塊存儲(chǔ)區(qū)域,存放M1的事務(wù)日志;M3是磁盤數(shù)據(jù)庫,作為監(jiān)管系統(tǒng)的備份數(shù)據(jù)存儲(chǔ)實(shí)體;M4是磁盤日志文件。當(dāng)事務(wù)對(duì)數(shù)據(jù)進(jìn)行更新時(shí),首先在M1上進(jìn)行修改,并將事務(wù)日志寫入到M2中,設(shè)定一個(gè)較短的時(shí)間間隔將M2的日志同步到磁盤文件M4內(nèi)。一旦內(nèi)存占用率到達(dá)預(yù)設(shè)閾值時(shí),啟動(dòng)磁盤同步過程,將M1和M2中的數(shù)據(jù)同步到磁盤數(shù)據(jù)庫M3中,在M4中寫入同步時(shí)間點(diǎn)并清空M2中的日志記錄。
圖4 一種內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型圖
一旦系統(tǒng)發(fā)生故障造成內(nèi)存數(shù)據(jù)丟失,可以通過M3中數(shù)據(jù)內(nèi)容和M4中的日志文件記錄,將對(duì)應(yīng)時(shí)間點(diǎn)后的數(shù)據(jù)更新在M3中進(jìn)行恢復(fù),再將M3內(nèi)的數(shù)據(jù)拷貝至M1中,從而在提升數(shù)據(jù)服務(wù)性能的情況下,也保證了數(shù)據(jù)服務(wù)的可靠性。
圖4 所示的內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型為應(yīng)用內(nèi)存數(shù)據(jù)庫的可靠性提供了一種內(nèi)存數(shù)據(jù)故障或丟失的恢復(fù)處理機(jī)制。
2.2數(shù)據(jù)交換策略設(shè)計(jì)
由于系統(tǒng)中可用內(nèi)存容量受到實(shí)際情況的限制,只能將部分?jǐn)?shù)據(jù)常駐內(nèi)存數(shù)據(jù)庫以支持在線生產(chǎn)應(yīng)用。在這種情況下,外部系統(tǒng)在一個(gè)工作日內(nèi)的數(shù)據(jù)訪問請(qǐng)求在內(nèi)存數(shù)據(jù)庫中得到目標(biāo)數(shù)據(jù)反饋占所有訪問請(qǐng)求的比例,即命中率,是衡量?jī)?nèi)存數(shù)據(jù)庫服務(wù)性能的一個(gè)重要指標(biāo)。因此,必須采取一種數(shù)據(jù)調(diào)度策略,盡可能多地在數(shù)據(jù)訪問請(qǐng)求到來之前將該請(qǐng)求所需的數(shù)據(jù)調(diào)入到內(nèi)存中。
監(jiān)管子系統(tǒng)的所有在線生產(chǎn)應(yīng)用功能均采用B/S(Browser/Server)架構(gòu),管理人員和操作人員在系統(tǒng)中的監(jiān)控行為,主要通過訪問Web服務(wù)器所提供的一系列監(jiān)控頁面來實(shí)現(xiàn)。這些頁面間通過超鏈接的方式連接起來,以供相關(guān)人員根據(jù)監(jiān)控目標(biāo)進(jìn)行跳轉(zhuǎn)。通過對(duì)城市垃圾監(jiān)管系統(tǒng)內(nèi)的頁面進(jìn)行初步分析后發(fā)現(xiàn),各個(gè)頁面中的超鏈接存在差異并且頁面展示的數(shù)據(jù)對(duì)象相對(duì)確定,系統(tǒng)中頁面跳轉(zhuǎn)行為的結(jié)果,僅與當(dāng)前所處的頁面有關(guān)。
Markov決策模型是一種在不確定環(huán)境下的序列決策模型,該模型通過建立概率轉(zhuǎn)移矩陣,根據(jù)系統(tǒng)當(dāng)前時(shí)刻所處的狀態(tài)在矩陣中所對(duì)應(yīng)的位置,來預(yù)測(cè)系統(tǒng)在下一時(shí)刻將會(huì)發(fā)生的狀態(tài)變化[7]。監(jiān)管系統(tǒng)中頁面之間的關(guān)系完全滿足Markov決策模型的應(yīng)用場(chǎng)景,通過以下四步,可以將Markov決策模型應(yīng)用到系統(tǒng)之中,支撐系統(tǒng)的數(shù)據(jù)調(diào)度策略:
1) 將系統(tǒng)中的每一個(gè)頁面作為Markov模型的一個(gè)狀態(tài)空間,通過預(yù)估評(píng)價(jià)分析頁面之間的鏈接關(guān)系,初步建立頁面關(guān)系矩陣;
2) 分析頁面中所展示的數(shù)據(jù)內(nèi)容,獲取頁面與系統(tǒng)數(shù)據(jù)間的映射規(guī)則,并將系統(tǒng)數(shù)據(jù)按照頁面映射規(guī)則劃分多個(gè)數(shù)據(jù)子集;
3) 根據(jù)第2)步所得的映射規(guī)則,對(duì)第1)步中的頁面關(guān)系矩陣進(jìn)行變換,得出概率轉(zhuǎn)移矩陣,并使用對(duì)應(yīng)的數(shù)據(jù)子集替換頁面成為新的狀態(tài)空間;
4) 在系統(tǒng)運(yùn)行時(shí),根據(jù)系統(tǒng)中實(shí)際產(chǎn)生的頁面跳轉(zhuǎn)行為,對(duì)概率轉(zhuǎn)移矩陣進(jìn)行調(diào)整,保證概率轉(zhuǎn)移矩陣能動(dòng)態(tài)地適應(yīng)系統(tǒng)的變化。
以上分析表明,可以根據(jù)Markov決策模型,建立頁面數(shù)據(jù)預(yù)估評(píng)價(jià)體系,通過系統(tǒng)當(dāng)前所處的狀態(tài)空間,將系統(tǒng)所有數(shù)據(jù)中下一時(shí)刻“最有可能”被訪問的數(shù)據(jù)預(yù)先調(diào)入到內(nèi)存,提高訪問請(qǐng)求所需目標(biāo)數(shù)據(jù)駐留內(nèi)存的概率,提高數(shù)據(jù)服務(wù)的性能。
2.3頁面對(duì)象數(shù)據(jù)預(yù)估分析
在城市垃圾監(jiān)管系統(tǒng)中,操作人員通過Index主頁進(jìn)入系統(tǒng)。從Index頁面開始,沿著每一級(jí)頁面中的鏈接逐步查找目標(biāo)內(nèi)容,即目標(biāo)頁面。
查找目標(biāo)頁面的過程概述如下所述:
步驟1:從Index頁面查找目標(biāo)頁面內(nèi)容;
步驟2:若當(dāng)前頁即為目標(biāo)頁或當(dāng)前頁面沒有超鏈接標(biāo)志,轉(zhuǎn)步驟4;
步驟3:點(diǎn)擊當(dāng)前頁面的超鏈接,轉(zhuǎn)步驟2;
步驟4:查找結(jié)束。
圖5 頁面鏈接關(guān)系圖
所有頁面均可從Index主頁出發(fā),經(jīng)過一個(gè)或多個(gè)鏈接跳轉(zhuǎn)找到需訪問的目標(biāo)頁面。通過對(duì)系統(tǒng)中各層頁面的鏈接標(biāo)志符“href”的分析,可獲取頁面之間的鏈接關(guān)系如圖5所示,為方便表述這里僅設(shè)頁面總數(shù)為7,用元組
把系統(tǒng)中的所有頁面進(jìn)行統(tǒng)一的數(shù)字順序編號(hào),根據(jù)頁面鏈接關(guān)系,可以建立起n階頁面關(guān)系矩陣A(aij)nxn,其中aii=0(i=1,2,…,n),矩陣中行、列為系統(tǒng)中所有頁面的順序號(hào),元素aij為序號(hào)i的頁面鏈接序號(hào)j頁面的權(quán)重值。初始aij取值為1,表示頁面i鏈接頁面j,反之為0。
2.4數(shù)據(jù)映射轉(zhuǎn)換
因?yàn)轫撁嬲故镜臄?shù)據(jù)對(duì)象固定,數(shù)據(jù)內(nèi)容隨時(shí)間動(dòng)態(tài)變化,因此頁面和數(shù)據(jù)庫表的數(shù)據(jù)之間存在映射關(guān)系。記某頁面i,其在數(shù)據(jù)庫表的一個(gè)數(shù)據(jù)對(duì)象集可以記為Di與之對(duì)應(yīng)。根據(jù)不同的業(yè)務(wù)應(yīng)用,可以將數(shù)據(jù)對(duì)象集劃分為下述兩類:
1) 同一業(yè)務(wù)應(yīng)用中不同時(shí)期的數(shù)據(jù)對(duì)象集。這類數(shù)據(jù)對(duì)象集主要因歷史數(shù)據(jù)積累而成。由于同構(gòu)數(shù)據(jù)量大,通常按時(shí)間序采取分頁顯示機(jī)制。
頁面Pi按時(shí)間序采用分頁機(jī)制的數(shù)據(jù)集Di,不失一般性地可簡(jiǎn)潔表示為:
(1)
其中tinit為系統(tǒng)最初的收集數(shù)據(jù)時(shí)刻,tnow為當(dāng)前時(shí)刻,t為頁面的查詢時(shí)刻,其默認(rèn)值為當(dāng)前時(shí)刻,Qt為t時(shí)刻頁面中所需要展示的數(shù)據(jù)對(duì)象集。
2) 不同業(yè)務(wù)應(yīng)用的數(shù)據(jù)對(duì)象集。這類數(shù)據(jù)對(duì)象集劃分主要因?yàn)樗鶎?duì)應(yīng)的業(yè)務(wù)應(yīng)用不同而形成,集合之間的關(guān)系是數(shù)據(jù)調(diào)度策略的基本依據(jù)。根據(jù)2.3節(jié)所得的n階頁面關(guān)系矩陣A,通過式(2)將其轉(zhuǎn)換為數(shù)據(jù)對(duì)象集的概率轉(zhuǎn)移矩陣A*。
(2)
2.5數(shù)據(jù)調(diào)入策略
在系統(tǒng)運(yùn)行過程中,由系統(tǒng)隨機(jī)生成會(huì)話識(shí)別號(hào)標(biāo)識(shí)操作人員進(jìn)入系統(tǒng)后的訪問過程。當(dāng)數(shù)據(jù)訪問請(qǐng)求到達(dá)時(shí),執(zhí)行下述流程步驟進(jìn)行數(shù)據(jù)調(diào)入:
1) 若該請(qǐng)求所對(duì)應(yīng)的數(shù)據(jù)對(duì)象集合存在歷史數(shù)據(jù),則根據(jù)式(1)將對(duì)應(yīng)的數(shù)據(jù)對(duì)象集Di調(diào)入內(nèi)存,轉(zhuǎn)步3);
2) 直接將頁面所需的數(shù)據(jù)對(duì)象調(diào)入內(nèi)存;
4) 根據(jù)會(huì)話識(shí)別號(hào),獲取實(shí)際發(fā)生的頁面跳轉(zhuǎn)行為,將頁面關(guān)系矩陣A中的對(duì)應(yīng)項(xiàng)加1;
5) 根據(jù)系統(tǒng)的實(shí)際運(yùn)行情況設(shè)置兩個(gè)時(shí)間閾值T1和T2,T1?T2,每隔T1時(shí)間根據(jù)動(dòng)態(tài)變化后的頁面關(guān)系矩陣A通過式(2)更新概率轉(zhuǎn)移矩陣A*;每隔T2時(shí)間對(duì)頁面關(guān)系矩陣A中所有的元素值減半。
上述流程步驟是用于數(shù)據(jù)對(duì)象集Di的動(dòng)態(tài)調(diào)入調(diào)入策略。其中采用了數(shù)據(jù)訪問滿足“80-20”規(guī)律[8]的概率預(yù)估值,具體反映在第3)步。此外,第5)步A中元素值減半操作可以保證并發(fā)訪問時(shí)由頁面跳轉(zhuǎn)引起A矩陣元素值增長(zhǎng)過快而引起數(shù)據(jù)調(diào)入預(yù)估失真,防止系統(tǒng)頻繁作無謂的數(shù)據(jù)調(diào)入操作。
2.6數(shù)據(jù)調(diào)出
當(dāng)內(nèi)存占用率到達(dá)預(yù)設(shè)閾值時(shí),應(yīng)該執(zhí)行數(shù)據(jù)調(diào)出策略來釋放內(nèi)存空間以保證后續(xù)的數(shù)據(jù)調(diào)入。為避免調(diào)出過程產(chǎn)生磁盤I/O瓶頸,本文提出數(shù)據(jù)調(diào)出策略要求被調(diào)出內(nèi)存的數(shù)據(jù)集滿足下列準(zhǔn)則:
1) 最新接收的垃圾清運(yùn)信息數(shù)據(jù)不應(yīng)調(diào)出內(nèi)存,根據(jù)系統(tǒng)中可使用的內(nèi)存容量大小,可以設(shè)定數(shù)據(jù)的存活時(shí)間T。設(shè)備層上傳的最新垃圾清運(yùn)信息數(shù)據(jù)反應(yīng)了垃圾清運(yùn)的實(shí)時(shí)情況,屬于系統(tǒng)重點(diǎn)關(guān)注的數(shù)據(jù),極易成為系統(tǒng)的監(jiān)控應(yīng)用訪問對(duì)象,應(yīng)在T時(shí)間內(nèi)保存在內(nèi)存數(shù)據(jù)庫中;
2) 被訪問活躍的數(shù)據(jù)集不應(yīng)調(diào)出內(nèi)存,當(dāng)操作人員訪問系統(tǒng)時(shí),系統(tǒng)為每個(gè)操作人員分配了唯一的會(huì)話識(shí)別號(hào)。在該會(huì)話識(shí)別號(hào)失效前,由其最后一次數(shù)據(jù)訪問請(qǐng)求而調(diào)入的數(shù)據(jù)集稱為活躍數(shù)據(jù)集。根據(jù)前文所述的Markov模型,活躍數(shù)據(jù)集極易在下一時(shí)刻被系統(tǒng)訪問到,因此不應(yīng)將活躍數(shù)據(jù)集調(diào)出內(nèi)存。
在內(nèi)存中不滿足以上兩點(diǎn)準(zhǔn)則的數(shù)據(jù)集都應(yīng)在執(zhí)行數(shù)據(jù)調(diào)出策略的過程中被寫入到磁盤內(nèi)。
3實(shí)踐與分析
本文研究的內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型和內(nèi)存數(shù)據(jù)調(diào)度策略采用開源Redis內(nèi)存數(shù)據(jù)庫予以實(shí)踐。城市垃圾監(jiān)管系統(tǒng)上線運(yùn)行后,通過命中率和響應(yīng)時(shí)間兩個(gè)方面來衡量系統(tǒng)性能。
圖6 數(shù)據(jù)請(qǐng)求命中率曲線圖
圖6結(jié)果顯示系統(tǒng)每天請(qǐng)求訪問的數(shù)據(jù)命中率基本維持在75%左右,處于比較高的水平,大部分的數(shù)據(jù)請(qǐng)求都可以從內(nèi)存中獲取目標(biāo)數(shù)據(jù)。
數(shù)據(jù)訪問響應(yīng)時(shí)間也是系統(tǒng)一個(gè)關(guān)鍵指標(biāo),它能從一定程度上反映數(shù)據(jù)調(diào)度策略的效果。通過數(shù)據(jù)管理子系統(tǒng)每個(gè)接口的響應(yīng)時(shí)間,經(jīng)過系統(tǒng)運(yùn)行一個(gè)月后,結(jié)果如圖7所示。
由圖7可明顯看出,數(shù)據(jù)服務(wù)接口的響應(yīng)時(shí)間保持在40至60毫秒時(shí)間之間,數(shù)據(jù)管理子系統(tǒng)接口性能良好,能很好地支撐整個(gè)系統(tǒng)的監(jiān)管需求。
圖7 數(shù)據(jù)服務(wù)接口響應(yīng)時(shí)間曲線圖
4結(jié)語
本文針對(duì)大型城市垃圾監(jiān)管系統(tǒng)數(shù)據(jù)存儲(chǔ)和請(qǐng)求訪問的性能問題,提出、實(shí)踐和描述了一種內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型。通過B/S構(gòu)架軟件系統(tǒng)中代表數(shù)據(jù)訪問對(duì)象的頁面超鏈接結(jié)構(gòu)分析,提出一種基于頁面鏈接系數(shù)矩陣和Markov決策模型概率轉(zhuǎn)移矩陣的內(nèi)存數(shù)據(jù)調(diào)度策略,用于內(nèi)外存數(shù)據(jù)庫之間的數(shù)據(jù)調(diào)度。
本文研究的內(nèi)存數(shù)據(jù)庫應(yīng)用存儲(chǔ)模型和數(shù)據(jù)調(diào)度策略被部署在城市垃圾清運(yùn)監(jiān)管系統(tǒng)中的應(yīng)用實(shí)踐表明,在并發(fā)訪問高峰時(shí)段的性能明顯得到改進(jìn),命中率和訪問性能均達(dá)到了設(shè)計(jì)預(yù)期目標(biāo)。
參考文獻(xiàn)
[1] 薛朝紅,薛嵐.城市垃圾的處理對(duì)策[J].中國衛(wèi)生工程學(xué),2005(2):103-104.
[2] 余寧.物聯(lián)網(wǎng)技術(shù)在垃圾收運(yùn)監(jiān)管體系中的應(yīng)用[J].環(huán)境工程,2013,31(4):130-132.
[3] 尚利堃,杜明義,靖常峰,等.基于GIS和物聯(lián)網(wǎng)的多部門協(xié)同式餐廚垃圾管理[J].智能處理與應(yīng)用,2013(5):73-75.
[4] 李祥.基于物聯(lián)網(wǎng)技術(shù)的再生資源管理信息平臺(tái)研究[J].現(xiàn)代情報(bào),2011,31(12):2406-2413.
[5] 劉云生,李國徽,肖群.實(shí)時(shí)內(nèi)存數(shù)據(jù)庫的數(shù)據(jù)交換策略及評(píng)價(jià)[J].計(jì)算機(jī)研究與發(fā)展,1999,36(5):865-869.
[6] 王明中,謝劍英,陳應(yīng)麟,等.大宗數(shù)據(jù)實(shí)時(shí)處理優(yōu)化方法的研究及應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(5):46-48.
[7] 胡迪鶴.隨機(jī)環(huán)境中的Markov過程的構(gòu)造及等價(jià)定理[J].中國科學(xué):A輯,2004,34(3):268-282.
[8] 劉云生,李國徽.實(shí)時(shí)內(nèi)存數(shù)據(jù)庫的裝入[J].軟件學(xué)報(bào),2000,11(6):829-835.
ON Redis MAIN MEMORY DATABASE IN URBAN GARBAGE REMOVAL SUPERVISION SYSTEM AND ITS APPLICATION
Xiao Yuanzhen1Zhu Ming1Su Houqin1Xu Chang2
1(SchoolofComputerScienceandTechnology,DonghuaUniversity,Shanghai200051,China)2(SchoolofLawandPolitics,AnhuiJianzhuUniversity,Hefei230601,Anhui,China)
AbstractDesign of data storage and usage is one of the key parts of application software system,which affects business management,functional decomposition and application performance of the system.On the basis of analysing original system composition and the webpages link structure features in B/S architecture model,we proposed and designed a main memory database application and storage model and a Markov decision-making model-based data dispatch strategy,and programmed and implemented them by the JavaEE technical framework.Actual application indicated that the main memory database application technology and data dispatch strategy we studied,designed and described had the technical characteristics of high hit rate of data accessing,quick response and data backup and recovery mechanism,and achieved the expected target of the design.
KeywordsMain memory databaseUrban garbage supervisionData exchange strategyPage analysis
收稿日期:2014-12-25。肖元縝,碩士生,主研領(lǐng)域:計(jì)算機(jī)應(yīng)用技術(shù)。朱明,副教授。蘇厚勤,教授級(jí)高工。徐暢,碩士生。
中圖分類號(hào)TP3
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.05.024