?

基于分布式緩存的科技文獻信息動態檢索系統設計

2024-04-13 06:54鄧彬
電子設計工程 2024年7期
關鍵詞:檢索系統鏈表分布式

鄧彬

(中國科學技術信息研究所,北京 100000)

科技文獻信息是科研人員研究科學技術及創新的基礎[1-3]。以往查詢科技文獻信息時,依據索引卡片查詢文獻資料位置并獲取資料。隨著信息技術及互聯網技術的發展與普及,信息檢索技術應運而生[4-6]。當前信息檢索技術雖已為用戶提供便利,但仍然有改進空間,用戶在使用搜索引擎時,如何迅速將用戶所需信息及其隱式需求排列在搜索結果前排,已成為研究人員所研究的熱門話題。杜瑞忠等人提出利用雙向索引查詢關鍵字方式,在簡化搜索動態更新過程的同時對信息進行加密,該方案雖然提升了搜索速度及信息安全性,但未考慮用戶隱式需求導致搜索結果關聯度不夠[7];包翔等人提出以圖像內容為基礎創建檢索系統框架,通過提取圖像特征包組成視覺字典,并由直方圖形式描述圖像特征獲取檢索結果,該系統檢索結果精準度及關聯度較高,但由于局限性強等原因只適用于圖像檢索,無法滿足用戶對文字類需求信息的檢索需求[8]。

分布式緩存是利用分布式網絡存儲技術,將熱門信息存儲至離系統用戶最近的應用或設備中,可提升用戶訪問信息速度[9-10],因此,設計了基于分布式緩存的科技文獻信息動態檢索系統。

1 科技文獻信息動態檢索系統

1.1 檢索系統總體結構

科技文獻信息動態檢索系統能夠分解科技文獻網頁信息為結構化數據信息,并將該信息存儲至系統數據庫內,通過系統軟件運行實現數據庫內數據統計、關聯及排序等工作,為用戶提供最需要的科技文獻信息??萍嘉墨I信息動態檢索系統總體結構如圖1 所示??萍嘉墨I信息動態檢索系統的檢索流程為:用戶在用戶層輸入檢索需求后傳輸至處理層數據采集模塊,該模塊將采集到的信息通過網絡層通信模塊傳輸至數據層科技文獻信息數據庫存儲,采用分布式緩存方法對用戶以往檢索需求進行處理,并建立分布式存儲模塊內的熱數據庫及冷數據庫;將科技文獻信息數據庫內的信息通過網絡層傳輸至處理層檢索處理模塊,利用該模塊內科技文獻信息動態檢索方法對數據庫內信息進行檢索處理,并與數據層分布式存儲模塊內關聯數據進行排序重組,獲取檢索結果后輸出至用戶層展示檢索結果。

圖1 檢索系統總體結構

1.2 檢索系統硬件設計

1.2.1 通信模塊

通信模塊由Web 服務技術組成,結合Web 服務技術采用Java EE 應用程序搭建分層模型,完成檢索系統中各層數據的傳輸。通信模塊Web 服務技術結構如圖2 所示。

圖2 通信模塊Web服務技術結構

Web 服務技術的網絡層主要是對處理層與數據層的信息進行交互處理,同時處理接收請求或返回信息等;處理層主要為數據采集模塊提供服務,通過對各大搜索網站內的網頁信息進行解析處理,并將處理后的數據存儲至數據層,同時向數據庫發出檢索服務請求,整理數據庫及分布式存儲模塊與用戶請求相關聯的數據;用戶層的用戶界面顯示由JSP動態網頁開發技術完成。通信模塊Web 服務技術結構可以降低各模塊間的耦合程度,還可以分離業務間處理邏輯與數據顯示情況,便于日后修改或擴充用戶層與處理層。

1.2.2 分布式存儲模塊

分布式存儲模塊內置控制器,模塊內數據的分布式緩存均由控制器控制??刂破鞑捎肅PLD技術實現讀寫緩存數據、加載模式寄存器以及數據刷新等操作[11]。該控制器為通用型,適用于控制所有存儲芯片,且控制器參數可通過系統程序設置,初步設置控制器突發長度為1、2、4、8 字及全頁;刷新時間為自動刷新,可依據實際情況進行調整;CAS 延遲時間為2 或3 個時鐘周期;支持的數據寬度為8位、16位、32位及64位;支持存儲芯片讀寫緩存數據等全部命令操作??刂破鹘Y構如圖3 所示。

圖3 分布式存儲模塊控制器結構

控制器內刷新模塊用于設置及調整刷新時間;管理模塊為管理芯片Bank 地址切換;命令仲裁器的作用是適時選擇合適的執行命令;控制定時器用于為時序信號進行定時;配置模塊主要配置存儲芯片模式寄存器,設置各種可編程模式;地址生成器用于生成芯片行、列地址及選通信號;命令生成器為輸出命令仲裁結果,生成芯片控制信號控制芯片。

1.3 檢索系統軟件設計

1.3.1 動態檢索的分布式緩存方法

系統在數據層分布式存儲模塊設計動態檢索的分布式緩存方法,通過用戶使用系統所產生的最近訪問時間及歷史訪問次數制定緩存替換策略,插入熱數據至系統緩存數據中,替換溫數據及冷數據,提升用戶訪問數據的緩存命中率,降低由系統緩存產生的計算開銷及不必要的磁盤訪問。動態檢索的分布式緩存方法流程如圖4 所示。

圖4 動態檢索的分布式緩存方法流程

用戶通過登錄檢索系統進入用戶端,系統依據用戶對數據的最近訪問時間及歷史訪問次數判斷數據熱度,并將熱度最高的數據優先排列形成數據序列,數據序列中的數據按照從前到后的順序依次為熱數據、溫數據、冷數據,當緩存占用率超出系統緩存閾值時剔除冷數據緩存。若用戶發起讀寫請求,采用邏輯劃分方式將原有數據序列劃分為多個數據序列進行更新,可以降低鎖粒度及I/O 時延。

考慮到系統發生網絡擁塞或內存節點故障時會導致緩存信息丟失,動態檢索的分布式緩存采用定期打包的方式整理緩存數據并寫入邏輯,利用檢查點將打包后的緩存數據持久化至數據庫中[12]。針對已丟失的緩存信息,可以依據數據庫日志信息進行重建。該方式可以確保檢索系統在緩存信息丟失的狀態下正常運行,增強檢索系統的容錯性。

動態檢索的分布式緩存方法核心是緩存替換策略,緩存替換策略的作用是提升緩存命中率,當檢索系統緩存已滿時需及時剔除冷數據,選取用戶最近未訪問且訪問次數最少的冷數據緩存作為剔除對象,以此類推獲取更多內存空間緩存新數據[13]。該策略以用戶最近及歷史訪問記錄為基礎,判斷冷數據范圍并替換用戶需求數據,同時設計緩存完整數據與僅緩存元數據的兩級緩存,既提升了數據緩存量,又確保了冷數據剔除的準確性。緩存替換策略鏈表結構如圖5 所示。

圖5 緩存替換策略鏈表結構

最近訪問數據鏈表與最常訪問數據鏈表中的數據塊均依據訪問時間進行有限序列排列。若用戶正在訪問某數據,檢索系統緩存該數據塊時,將該數據塊插入最近訪問數據鏈表中,以此替換鏈表中最后一個數據塊;若該鏈表中即將被替換的數據塊被用戶二次訪問,則將該數據塊插入最常訪問數據鏈表1號數據塊處,其余數據塊后退一步,淘汰鏈表末尾數據塊完成緩存替換。

若用戶訪問某數據時,緩存占用率超出系統緩存閾值,則刪除鏈表內最近最少使用的數據元素,同時將與該數據對應的元數據信息存儲至最近訪問淘汰頁鏈表與最常訪問淘汰頁鏈表中,淘汰頁鏈表僅存儲訪問索引,不存儲數據。在刪除鏈表數據元素至淘汰頁鏈表時,鏈表內數據元素均傳輸至與其相對應的淘汰頁鏈表內,并釋放被刪除數據塊在原鏈表內所占空間[14]。

若用戶所訪問的數據在淘汰頁鏈表內,則需從數據庫內讀取用戶所需數據元素,同時將該數據插入最近訪問數據鏈表中。動態檢索的分布式緩存方法能夠通過各淘汰頁鏈表內發生的偽命中次數,動態調整最近訪問數據鏈表與最常訪問數據鏈表應包含元素的數量。

動態檢索的分布式緩存方法通過建立元數據緩存,迅速讀取剛被淘汰的緩存數據,且依據用戶最近訪問時間及歷史訪問次數識別熱數據,提升緩存內數據塊被用戶選擇的潛力。

1.3.2 科技文獻信息動態檢索

檢索系統處理層檢索處理模塊選取Lucene 項目設計完整科技文獻信息動態檢索引擎,該項目是一個以Java 為基礎的可擴展開源搜索項目,具有全文檢索及搜尋引擎架構。檢索系統在Lucene 搜尋引擎架構的基礎上,通過確定檢索科技文獻目標信息并重組相似類型科技文獻索引信息,提升系統檢索速度。為確定檢索科技文獻目標信息位置,分別從目標信息位于標題處及正文處兩個方面進行優化確定,設置檢索系統科技文獻信息數據庫中目標信息位于標題處的權重表達式為:

式中,a為檢索科技文獻目標信息;d為數據庫內全部網絡資源的索引信息;δ為目標信息出現于標題內的次數;ωa∈d,title為目標信息在查詢標題處的位置權重;σa∈d,title為目標信息的關鍵詞數量。

設置檢索系統科技文獻信息數據庫中目標信息位于正文處的權重表達式為:

式中,ωa∈d,text與θ分別為目標信息出現于正文內的位置權重及次數;σa∈d,text為目標信息的關鍵詞數量;|f|為數據庫內待檢索特征詞的全部數量。確定檢索科技文獻目標信息位置后,設計科技文獻信息動態檢索流程,如圖6 所示。用戶在檢索系統搜索引擎中輸入檢索信息,檢索系統從科技文獻信息數據庫提取待索引信息數據為字符串型數據,分詞處理字符串同時寫入索引文件內,讀取索引文件內索引并對熱數據庫中的索引信息進行分詞處理,依據搜索索引判斷兩種信息是否為相似類型信息,若是相似類型信息,則將兩種信息依據關聯程度進行排序重組,獲取檢索結果;若不是相似類型信息,則將該信息返回至分布式存儲模塊內等待下次搜索。

圖6 科技文獻信息動態檢索流程

采用動態檢索的分布式緩存方法建立元數據緩存并獲取熱數據,利用目標信息在標題處及正文處的位置權重,設置檢索系統的加載內容,通過Lucene搜尋引擎架構檢測數據,獲取子類元數據同時與熱數據庫內的數據進行關聯排序重組,完成基于分布式緩存的科技文獻信息動態檢索系統軟件設計。

2 實例分析

為驗證所研究基于分布式緩存的科技文獻信息動態檢索系統整體性能,實驗將系統應用于某科技大學圖書館內,該學校師生共計22 578人,圖書館建筑面積5 219 m2,館內藏書25 萬余冊。實驗選取自動化測試工具JMeter 模擬不同的工作負載,并設置負載工具測試參數為128;系統存儲大小為256 GB;分布式存儲模塊大小為64 GB;分布式對象存儲大小為1 MB。

IOPS(系統每秒讀寫次數)是衡量系統存儲性能的關鍵指標。為驗證系統在負載狀態下的運行性能,通過JMeter 自動化測試工具為系統加載不同程度的請求數據,并對請求數據進行隨機讀寫操作請求,獲取測試系統IOPS 及讀寫寬帶等數據。不同負載下設計系統運行性能測試結果如圖7 所示。通常以4 kB 大小的數據塊為基準測試系統IOPS,采用JMeter 測試工具對系統加載4~40 kB 的請求數據,并對系統進行隨機讀寫的操作,IOPS 隨機讀取值為1 700~1 900,隨機寫入值為230~510,通過IOPS 隨機讀寫值可知,設計系統存儲數據不卡頓,隨機讀寫速度較快;圖7(b)中設置請求數據量為1~10 MB,隨機讀取帶寬為820~870 MB/s,隨機寫入帶寬為410~450 MB/s,由此可知,設計系統傳輸數據能力較強,系統響應時間較快。

圖7 檢索系統運行性能測試結果

全類平均正確率(MAP)是評價檢索系統多次查詢的平均準確率衡量指標,為驗證設計系統的檢索性能,實驗選取500 位在校學生作為研究對象,分別操作文獻[7]基于雙向索引的高效連接關鍵字查詢動態檢索加密系統、文獻[8]基于特征包的數字圖書館圖像檢索系統以及設計系統,每人檢索10 條科技文獻信息,通過MAP 指標對比三個系統的檢索性能,對比結果如圖8 所示。

圖8 三個系統檢索性能對比結果

由圖8 可知,通過50 位在校學生的多次查詢對比結果可知,三個系統的MAP 值均在0.85 以上,總體檢索性能都比較良好,其中系統的MAP 值始終位于0.95 以上,MAP 值明顯高于文獻[7]及文獻[8]系統,用戶輸入的檢索關鍵詞與系統檢索結果關聯度越高,MAP 值越高,由此可知系統的檢索性能較好。

3 結論

在傳統檢索系統中,文獻信息內出現的檢索字詞都會作為檢索結果展示出來,導致用戶體驗感較差?;诖?,設計基于分布式緩存的科技文獻信息動態檢索系統,采用分布式緩存及動態檢索的方式,同時考慮用戶最近經常訪問的文獻信息與檢索字詞在標題處及正文處的位置權重,結合數據庫內最新科技文獻資料,為用戶檢索出最優質的檢索結果,滿足用戶檢索需求,提升用戶的檢索體驗。

猜你喜歡
檢索系統鏈表分布式
基于二進制鏈表的粗糙集屬性約簡
跟麥咭學編程
收錄《信號處理》的檢索系統及數據庫
收錄《信號處理》的檢索系統及數據庫
本刊被以下檢索系統及數據庫收錄
本刊被以下檢索系統及數據庫收錄
基于鏈表多分支路徑樹的云存儲數據完整性驗證機制
分布式光伏熱錢洶涌
分布式光伏:爆發還是徘徊
基于DDS的分布式三維協同仿真研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合