何勰緋 萬加富
摘 要: 傳統(tǒng)DBA數據庫控制方法對系統(tǒng)參數進行設置和配置時,存在控制效率低以及能耗高的問題。提出基于JADE的數據庫自適應負載控制方法,設計以JADE平臺為基礎的數據庫自適應負載控制系統(tǒng)。系統(tǒng)由搜索和查詢兩部分構成,通過Agent之間相互協(xié)作來完成總體系統(tǒng)的負載控制。通過數據庫爬蟲Agent在數據庫中搜集信息,形成原始數據庫;應用KNN算法對原始數據庫進行分類,實現(xiàn)數據庫負載控制。查詢部分通過JSP頁面中的用戶接口Agent實現(xiàn)與用戶的交互;采用JDBC橋技術實現(xiàn)查詢Agent對數據庫的訪問。實驗結果表明,采用所提方法控制數據庫負載,可提高數據庫的實現(xiàn)價值、吞吐率以及資源利用率。
關鍵詞: JADE; 數據庫; 自適應; 負載控制; Agent
中圖分類號: TN911?34; TP311.13 文獻標識碼: A 文章編號: 1004?373X(2017)16?0050?03
Abstract: The traditional DBA database control method exists low efficiency and high energy consumption for system parameter setting and allocation, so the JADE?based adaptive load control method of database is proposed to design the database adaptive load control system based on JADE platform. The system is composed of search and query. The load control of the overall system is completed by the mutual collaboration between Agents. The information is collected in the database by Agent, and the original database is formed. KNN algorithm is used to classify the original database to realize the load control of the database. The query part realizes the interaction with the users through the user interface Agent in the JSP page, and uses the JDBC bridge technology to query the Agent access to the database. The experimental results show that the proposed method for the database load control can improve the value, throughput and resource utilization of database.
Keywords: JADE; database; adaptive load control; Agent
由于當前科學技術水平不斷提升,信息技術被作為生產力衡量的標準,信息數據量呈幾何性的增長。應用數據庫憑借其對海量數據的管理和存儲優(yōu)勢從眾多數據庫系統(tǒng)中脫穎而出,成為時下的新寵。傳統(tǒng)DBA數據庫控制方法對系統(tǒng)參數進行設置和配置時,無法適應大量、復雜多變的數據庫負載情況,存在控制效率低以及能耗高的問題。本文提出基于JADE的數據庫自適應負載控制方法,增強系統(tǒng)穩(wěn)定性,提高系統(tǒng)自身使用價值。
1 數據庫自適應負載控制系統(tǒng)設計
1.1 系統(tǒng)體系結構設計
通過圖1可知,塑造的基于JADE的數據庫自適應負載控制系統(tǒng)由搜索和查詢兩大相對獨立的部分組成,這兩大部分通過分類數據庫相連接[1]。分類數據庫既可作為搜索部分的運行結果,又可作為查詢部分的數據源。搜索部分包括數據庫爬蟲Agent、自動分類Agent和原始數據庫[2];查詢部分包括用戶界面、用戶接口Agent和查詢Agent。
搜索部分可完成數據庫信息的搜索與集成,對數據庫信息進行歸類,等待用戶在數據庫中查詢。搜索部分的工作流程為:
(1) 服務器啟動網絡Agent,采用初始URL對爬蟲進行發(fā)送;
(2) 爬蟲Agent對從網絡中采集的初始URL進行分析篩選并將結果寫入原始數據隊列中[3];
(3) 數據庫頁面分類Agent對爬蟲Agent抓取的URL做進一步分類,通過分析數據屬性,篩選出數據大小較符合的負載命令數據庫優(yōu)先執(zhí)行,并反復執(zhí)行該命令,直到達到滿足條件時終止[4],信息分類結果將分別存儲在各類數據庫中。
采用JDBC橋技術實現(xiàn)查詢Agent對數據庫訪問,查詢部分工作流程為:
(1) 用戶通過JSP頁面中的用戶接口Agent獲取數據庫服務器中的關鍵詞;
(2) 用戶接口Agent請求數據庫內部服務器對其獲取關鍵詞進行查詢;
(3) 數據庫內部相應的查詢Agent通過對分類數據庫的訪問[5],并將查詢結果返回到用戶接口Agent中,通過JSP頁面呈現(xiàn)給用戶。
1.2 系統(tǒng)Agent設計
如圖2所示,Agent模塊由用戶接口Agent、查詢Agent、數據庫爬蟲Agent及數據庫頁面分類Agent組成。這些Agent是數據庫信息自適應負載控制的功能單元,它們據不同需求擁有明確的分工,基于外界指令形成不同的行為,協(xié)作完成數據庫信息自適應負載控制。endprint
用戶接口Agent負責用戶在用戶界面Agent輸入請求并接收到查詢結果。查詢Agent負責在數據庫中查詢從用戶Agent接收到的關鍵詞,將查詢結果反饋到用戶接口Agent。該Agent與用戶接口Agent和查詢Agent沒有任何聯(lián)系,所以并不與二者進行通信[6]。數據庫頁面分類Agent,運用KNN算法對數據庫爬蟲Agent提取到初步數據庫進行分析并分類,將各類鏈接進行整理,分別劃入相應數據庫。
管理Agent對數據庫爬蟲Agent及數據庫頁面分類Agent進行控制[7]。
2 自適應控制系統(tǒng)源代碼的實現(xiàn)
數據庫頁面分類Agent源代碼實現(xiàn)步驟:
import 有價值的包;
public class DivisionAgentcomplete Agent{
public valueless setup()
try{
//對數據庫進行訪問
}
Obtain(Not consider d){
//異常處理
}
get address;
}
添加動作:
class Control headerDivisionmovementr extendOne?off action
public void movement()
try // 提取URLList中的關鍵詞
while(urlRs.nex()){
//通過KNN算法在各數據表內錄入相應的URL
//自定義在URL提取的關鍵詞
//RetrievalKey(Character setAddr,Character setkeyWords)
}
Obtain(Not consider d){
//異常處理
myAgent.dofilter();
Public kicongRetrievalKey(Character set addr,Character set keyWords)
//在url數據列表中提取addr的keywords
}
以上是一個使用了KNN算法的數據庫頁面分類Agent,具體過程為,先建造一個擁有各種分類數據表的數據庫。通過數據庫頁面分類Agent對數據庫進行訪問,提取出關鍵詞與該頁面進行匹配,匹配成功的就在該分類變量上加權值[8]。經過反復訪問、匹配,再將最終得到幾個權值減去一個閾值并取最大值的分類,當這個結果大于零時,該頁面可歸納到該分類當中[9],相反的就要歸納到其他分類中。通過分析數據屬性,篩選出數據大小較符合負載命令數據庫優(yōu)先執(zhí)行。
3 實驗分析
3.1 實驗數據
實驗對某網站應用數據庫中20個控制間隔進行測試,各間隔包括20個負載請求,各負載請求均包含不同特征屬性,負載控制特征參數為響應時間、CPU消耗及內存消耗。這些負載特征用文本的形式記錄于文本文件中。采用本文提出的基于JADE自適應負載控制方法和傳統(tǒng)DBA負載控制方法,對這些負載特征進行控制,分析兩種控制方法負載控制性能。
實驗以20條數據為一個控制間隔,隨機抽取300條數據,分為20組進行實驗。表1為一個控制間隔內5個負載的特征參數。
3.2 實驗結果分析
基于上述描述的負載特征數據,實驗檢測本文方法和傳統(tǒng)DBA方法的負載實現(xiàn)價值、平均響應時間、CPU消耗、內存消耗以及吞吐率性能。設置實驗網站應用數據庫的CPU空閑值為60%、內存空閑是50 KB、各控制間隔遺傳代數為30。
通過圖3可知,在傳統(tǒng)DBA數據庫控制方法下,負載平均響應時間在1~14 s之間,處理響應并不穩(wěn)定,峰值較高。經過本文負載控制方法后,負載平均響應時間在2~6 s之間波動,在處理數據穩(wěn)定情況下,平均響應時間明顯縮短。在數據庫資源過載情況下,通過本文負載控制方法的控制下,應用數據庫系統(tǒng)平均響應時間較控制前明顯縮短,大幅度提高了數據庫處理效率。
4 結 論
本文提出了基于JADE的數據庫自適應負載控制方法。實驗結果表明,采用所提方法控制數據庫負載,可提高數據庫的實現(xiàn)價值、吞吐率以及資源利用率。
參考文獻
[1] 崔建群,江波,吳黎兵.基于移動應用層組播終端主動反饋的自適應負載均衡機制研究[J].計算機科學,2015,42(4):40?43.
[2] 郭晴,楊海霞,劉永泰.云計算環(huán)境下的復雜數據庫并行調度模型仿真[J].計算機仿真,2015,32(6):360?363.
[3] 郭鑫,任海鵬.三相PWM變換器的負載自適應控制[J].電子學報,2015,43(10):2088?2094.
[4] 任俠.基于動態(tài)自適應負載均衡的服務器集群優(yōu)化策略[J].工業(yè)控制計算機,2015,28(12):38?39.
[5] 唐亞,王振友.基于JADE的自動聚類算法[J].計算機系統(tǒng)應用,2016,25(9):183?187.
[6] 楊芳,郭宏剛.網絡入侵反追蹤節(jié)點最優(yōu)路徑推演平臺的設計與實現(xiàn)[J].現(xiàn)代電子技術,2016,39(22):14?17.
[7] 潘甦,張磊,劉勝美.基于未來負載預測的無線異構網絡自適應負載均衡算法[J].系統(tǒng)工程與電子技術,2015,37(6):1384?1390.
[8] 茹心芹,韋徵,王偉,等.微網逆變器不平衡負載控制技術研究[J].電力電子技術,2016,50(7):40?43.
[9] 薛忠斌,周烜,張延松,等.內存列存儲數據庫中優(yōu)化的混合自適應索引[J].計算機科學,2015,42(11):28?31.endprint