專利名稱:網(wǎng)絡(luò)緩存管理的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于互聯(lián)網(wǎng)和移動網(wǎng)絡(luò)搜索引擎系統(tǒng)中的數(shù)據(jù)搜索和緩存管理的系統(tǒng)和方法。更具體而言,本發(fā)明是關(guān)于一個采用分層緩存技術(shù)來采集和管理分布式網(wǎng)絡(luò)數(shù)據(jù),并將這些網(wǎng)絡(luò)數(shù)據(jù)內(nèi)容和索引數(shù)據(jù)提供給搜索引擎數(shù)據(jù)庫的方法和系統(tǒng)。
背景技術(shù):
眾所周知,計算機系統(tǒng)已被廣泛地用于數(shù)據(jù)庫管理,相關(guān)技術(shù)包括解析、索引及搜索數(shù)據(jù)。然而,超大數(shù)據(jù)庫還存在很多技術(shù)難點。而網(wǎng)絡(luò)數(shù)據(jù)可視為一種獨特的分布式的數(shù)據(jù),用戶通過有線或無線網(wǎng)絡(luò)來訪問這些網(wǎng)絡(luò)資源。
由于網(wǎng)絡(luò)數(shù)據(jù)分布在世界各地的不同計算機上,因此網(wǎng)絡(luò)用戶常期望能定位所需內(nèi)容。然而,現(xiàn)在還不能在網(wǎng)絡(luò)上搜索和瀏覽所有的網(wǎng)絡(luò)資源。檢索可理解為在互聯(lián)網(wǎng)上查找含有特定信息的資料,而瀏覽則是在網(wǎng)絡(luò)上無目的地“閑逛”。目前,還不太可能有效定位所有網(wǎng)絡(luò)資源。另外,由于全球網(wǎng)站數(shù)量及互聯(lián)網(wǎng)上的絕對信息量每天都在以指數(shù)級地增長,為了對網(wǎng)絡(luò)資源進行有效分類,而產(chǎn)生了大量搜索引擎系統(tǒng)。借助這些搜索引擎系統(tǒng),用戶使用由適當(dāng)?shù)年P(guān)鍵詞構(gòu)成的搜索命令搜索網(wǎng)絡(luò)資源。
基于結(jié)構(gòu)化的搜索引擎系統(tǒng)難以有效管理超大容量的、分布式的網(wǎng)絡(luò)資源。統(tǒng)計結(jié)果表明,采用這種技術(shù)僅能訪問互聯(lián)網(wǎng)上的15-20%的信息,而其它大部分還未被任何搜索引擎系統(tǒng)所索引。因此,迫切需要能有一種能加速搜索、索引、和傳輸網(wǎng)絡(luò)資源的技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的第一個目的是介紹一種從網(wǎng)絡(luò)數(shù)據(jù)對象的對象緩存建索引的方法;本發(fā)明的第二個目的是介紹一種將網(wǎng)絡(luò)數(shù)據(jù)對象及其索引通過緩存?zhèn)鬏斀o搜索引擎數(shù)據(jù)庫的方法;本發(fā)明的第三個目的是介紹一種通過瀏覽器緩存以及服務(wù)器緩存加速搜索網(wǎng)絡(luò)數(shù)據(jù)對象的方法。
本發(fā)明的第四個目的是介紹一種分層技術(shù)來組織和管理各層次對象緩存來加速搜索、索引、傳輸網(wǎng)絡(luò)數(shù)據(jù)的方法。
其解決方案如下1.網(wǎng)絡(luò)搜索引擎的緩存管理方法包括a)通過緩存來加速搜索、索引網(wǎng)絡(luò)數(shù)據(jù)對象,并將索引數(shù)據(jù)傳輸?shù)剿阉饕鏀?shù)據(jù)庫的方法;和b)采用分層技術(shù)來組織和管理分布式網(wǎng)絡(luò)中的各個層次上的緩存的方法。
2.根據(jù)上述1中的a)方法的實現(xiàn)步驟包括a)通過訪問保存在緩存內(nèi)的對象緩存來實現(xiàn)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問請求,這些對象緩存既能訪問得到對象所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象,且能被用戶訪問得到。將從對象緩存中提取出來的索引數(shù)據(jù)自動保存到緩存內(nèi),索引數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)對象一一對應(yīng)。最后,將索引數(shù)據(jù)從緩存內(nèi)轉(zhuǎn)移到搜索搜索引擎數(shù)據(jù)庫;b)從分層網(wǎng)絡(luò)結(jié)構(gòu)中的父緩存、子緩存、兄弟緩存收集已索引數(shù)據(jù),并將索引數(shù)據(jù)合并到搜索引擎數(shù)據(jù)庫中,以響應(yīng)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問;和c)采用對象緩存的方式,從分布式結(jié)構(gòu)中的遠程數(shù)據(jù)庫系統(tǒng)中收集已索引數(shù)據(jù),并將索引數(shù)據(jù)合并或備份到搜索引擎數(shù)據(jù)庫中,以響應(yīng)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問。
3.上述2所述的方法中的a)步驟還進一步包括步驟a)使用服務(wù)器搜索網(wǎng)絡(luò)。在服務(wù)器緩存中臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象,形成對象緩存,用戶訪問這些對象緩存來實現(xiàn)訪問它們所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象;b)用戶通過瀏覽器來訪問網(wǎng)絡(luò)數(shù)據(jù)對象,瀏覽器是用戶訪問網(wǎng)絡(luò)對象的接口;在瀏覽器緩存中臨時備份用戶所請求的網(wǎng)絡(luò)數(shù)據(jù)文件。用戶通過該瀏覽器訪問保存在瀏覽器的對象緩存來實現(xiàn)用戶對所要求的網(wǎng)絡(luò)數(shù)據(jù)對象的訪問。
4.上述1所述的方法中的a)步驟,還進一步包括a)決定對象緩存是否具有優(yōu)先級執(zhí)行權(quán);b)以一種可傳輸格式來壓縮所提取出來的索引數(shù)據(jù);和c)計算并保留某網(wǎng)絡(luò)數(shù)據(jù)對象的索引數(shù)據(jù)被提交給搜索引擎數(shù)據(jù)庫時間戳以及被檢索的次數(shù)。
5.上述1中的b)方法包括a)各網(wǎng)絡(luò)緩存之間除了父子關(guān)系外還有同屬關(guān)系來共同分擔(dān)緩存的負荷。每個對象緩存將獨立決定是否是從對象的主站點或該緩存的父緩存或鄰緩存中提取索引;b)采用域名服務(wù)器名稱加地址的映射緩存來優(yōu)化公用緩存,并采用基于多用途的網(wǎng)際郵件擴充協(xié)的頭來標(biāo)定對象的實時性;c)緩存管理支持封裝協(xié)議、無連接、代理http協(xié)議等三種訪問協(xié)議;d)用URL加基于多用途的網(wǎng)際郵件擴充協(xié)的頭來唯一識別一個緩存對象;e)用PGP認證對象緩存;和f)直接非阻滯磁盤和網(wǎng)絡(luò)I/O來提取摘要,以以便跨平臺和有效地管理線程、內(nèi)存和磁盤。
6.一個搜索引擎的網(wǎng)絡(luò)緩存管理系統(tǒng)包括a)一個對網(wǎng)絡(luò)數(shù)據(jù)對象的加索引并保存索引數(shù)據(jù)到搜索引擎數(shù)據(jù)庫的系統(tǒng);和b)一個用戶通過緩存來實現(xiàn)搜索訪問網(wǎng)絡(luò)對象的系統(tǒng);7.上述6中的a)系統(tǒng)包括a)一個網(wǎng)絡(luò)用戶能訪問得到的、用于臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象的的緩存;b)一個自動從對象緩存中來獲取和保存索引數(shù)據(jù)的存儲單元;c)一個能將索引數(shù)據(jù)傳輸?shù)綌?shù)據(jù)存儲系統(tǒng)的傳輸單元;d)一個從分布式的網(wǎng)絡(luò)緩存那里收集索引數(shù)據(jù)的收集單元;e)一個將采集到的索引數(shù)據(jù)合并到數(shù)據(jù)存儲系統(tǒng)的合并單元;和f)一個計算數(shù)據(jù)存儲系統(tǒng)訪問某一網(wǎng)絡(luò)數(shù)據(jù)對象次數(shù)的計算單元。
8.上述6中的b)系統(tǒng)包括a)一個用于網(wǎng)絡(luò)搜索的服務(wù)器緩存,臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象,并在其緩存內(nèi)形成對象緩存,用戶訪問對象緩存來實現(xiàn)訪問它們所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象;b)一個用戶用于訪問網(wǎng)絡(luò)對象的瀏覽器緩存,瀏覽器緩存將臨時備份用戶所請求的網(wǎng)絡(luò)數(shù)據(jù)對象,并在其緩存內(nèi)形成對象緩存,用戶通過訪問這些緩存對象來實現(xiàn)用戶對所要求的網(wǎng)絡(luò)數(shù)據(jù)對象的訪問;和c)一個用于決定判斷緩存是否具有優(yōu)先執(zhí)行級別的決策器,若該緩存沒有優(yōu)先執(zhí)行級別,則從保存在緩存上的緩存對象中提取網(wǎng)絡(luò)數(shù)據(jù)對象及其索引數(shù)據(jù)。
作為本發(fā)明的一個實例,是為響應(yīng)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的請求,用戶訪問該網(wǎng)絡(luò)數(shù)據(jù)對象是通過訪問它所對應(yīng)的對象緩存來實現(xiàn)。接著,從對象緩存中建立索引數(shù)據(jù)并自動保存。索引數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)對象一一對應(yīng)。最后,將索引數(shù)據(jù)從緩存?zhèn)鬏數(shù)剿阉饕鏀?shù)據(jù)庫中。
本發(fā)明的另一個實例是,將加索引的數(shù)據(jù)合并到搜索引擎數(shù)據(jù)庫中,及將新的加索引網(wǎng)絡(luò)數(shù)據(jù)對象也加入到搜索引擎數(shù)據(jù)庫以響應(yīng)用戶對該網(wǎng)絡(luò)數(shù)據(jù)對象的訪問請求。本發(fā)明的另一個實例是,保留網(wǎng)絡(luò)數(shù)據(jù)對象的索引數(shù)據(jù)被搜索引擎檢索的次數(shù)和時間。根據(jù)本發(fā)明的目的,在網(wǎng)絡(luò)數(shù)據(jù)對象的采集和檢索過程中用分層技術(shù)來管理搜索引擎中的對象緩存,周期性地掃描各對象,并在緩存中保存索引信息。在數(shù)據(jù)傳輸過程中,一個單獨的數(shù)據(jù)流便可獲取緩存內(nèi)的全部網(wǎng)絡(luò)數(shù)據(jù)對象及其索引數(shù)據(jù),而不是為每個對象單獨發(fā)出請求。
參考圖及圖的詳細描述可能更易于理解本發(fā)明及其使用。
圖1描述本發(fā)明的應(yīng)用實例的系統(tǒng)結(jié)構(gòu)圖;圖2描述本發(fā)明運行所需的分布式網(wǎng)絡(luò)環(huán)境。
圖3描述應(yīng)用戶請求而訪問網(wǎng)絡(luò)數(shù)據(jù)對象的過程;
圖4描述對網(wǎng)絡(luò)數(shù)據(jù)對象加索引,并將加索引后的網(wǎng)絡(luò)數(shù)據(jù)對象提供給搜索引擎數(shù)據(jù)庫的過程。
圖5描述用分層技術(shù)來組織和管理各層次對象緩存的結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明的網(wǎng)絡(luò)緩存管理的方法和系統(tǒng)的具體應(yīng)用包括以下三個部分其一,用戶通過訪問保存在緩存內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)對象的對象緩存來實現(xiàn)對這些網(wǎng)絡(luò)數(shù)據(jù)對象的訪問,以響應(yīng)用戶對它們的請求。對象緩存既能訪問這些網(wǎng)絡(luò)數(shù)據(jù)對象,又能被用戶訪問得到。其二,在對象緩存中提取索引數(shù)據(jù),并自動保存在緩存中,索引數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)對象確保一一對應(yīng)。其三,將索引數(shù)據(jù)從緩存?zhèn)鬏數(shù)剿阉饕鏀?shù)據(jù)庫。
描述以上五個圖來闡述本發(fā)明的具體實用辦法。
圖1描述了本發(fā)明的應(yīng)用系統(tǒng)結(jié)構(gòu)圖。如圖1所示,用于處理網(wǎng)絡(luò)數(shù)據(jù)對象的中間系統(tǒng)webAgent 108A包括注冊表105、存儲管理系統(tǒng)104、查詢管理103及數(shù)據(jù)采集107等四個部分組成。注冊表105和存儲管理系統(tǒng)104用于維護一個用于記錄所有的webAgent108A所包含的網(wǎng)絡(luò)數(shù)據(jù)對象表。對于每個網(wǎng)絡(luò)數(shù)據(jù)對象,注冊表105將記錄它們所對應(yīng)的唯一標(biāo)識、時間戳及時間期限。每個網(wǎng)絡(luò)數(shù)據(jù)文件包含它所對應(yīng)的唯一標(biāo)識和由WebSpider 109所產(chǎn)生的摘要。每個對象作為一個文件存儲在文件系統(tǒng)中,由存儲管理系統(tǒng)104統(tǒng)一管理。
根據(jù)配置文件向webSpider109和webAgent108B發(fā)出更新請求來周期性采集數(shù)據(jù)。webSpider 109提交一個自某一由webAgent 108A指定的時間以來,創(chuàng)建、刪除、更新過的網(wǎng)絡(luò)數(shù)據(jù)對象的列表。webSpider109分析這個列表,然后交由注冊表105處理。若是一個新創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)對象,就加一個唯一標(biāo)識到注冊105,相對應(yīng)的是其摘要也以存儲管理文件的形式添加到搜索引擎數(shù)據(jù)庫中,并將一個指針傳給索引程序。最后將注冊表105寫入硬盤里。若一個緩存對象被刪除了,就刪除其對應(yīng)的唯一標(biāo)識,同時由存儲管理程序和索引程序刪除對應(yīng)的摘要對象。若一個對象被更新了,就重新計算其時間期限。如果一個對象根據(jù)其時間期限被判定過期,則被刪除。若注冊表105中的記錄和儲存的數(shù)據(jù)不一致,垃圾清理程序?qū)⑺鼈儚淖员?05和數(shù)據(jù)存儲系統(tǒng)104中一并清除。正是這些機制保證了數(shù)據(jù)的有效性。
查詢管理系統(tǒng)103負責(zé)向網(wǎng)絡(luò)發(fā)布信息。當(dāng)它接收到一個查詢請求,將其轉(zhuǎn)換為內(nèi)部的表示方式,傳遞給搜索引擎,搜索引擎回傳搜索結(jié)果。結(jié)果的內(nèi)容依據(jù)引擎的不同而有所不同,查詢管理根據(jù)結(jié)果組織成一定的格式給用戶。如果這個用戶是其它的webAgent,則會將整個摘要返回給它。一個webAgent108A或108B可由多個webSpider和多個webAgent組成,構(gòu)成多層次網(wǎng)絡(luò)結(jié)構(gòu)。圖1中的復(fù)制子系統(tǒng)107是一種廣域內(nèi)的弱統(tǒng)一文件復(fù)制系統(tǒng),并用于備份webAgent108A。整個搜索引擎的日常管理也是通過查詢管理系統(tǒng)103來完成的。例如,啟動、關(guān)閉、重啟索引服務(wù),再如強制刪除過期的對象、歸檔日志、強制更新等。
圖2描述了本發(fā)明運行所需的網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)環(huán)境包括多個服務(wù)器202a-202g通過網(wǎng)絡(luò)200而相互連接。而服務(wù)器202a-202g響應(yīng)客戶請求的一般方法是例文件服務(wù)器存儲數(shù)據(jù)對象,當(dāng)用戶發(fā)送請求獲取某數(shù)據(jù)對象時,服務(wù)器將對象的備份發(fā)送給用戶。服務(wù)器202a-202g中的每一個服務(wù)器在網(wǎng)絡(luò)中類似于一個客戶,如通過服務(wù)器202g連接到網(wǎng)絡(luò)200上的個人計算機201給服務(wù)器202g發(fā)送命令請求某數(shù)據(jù)對象。服務(wù)器202g對作為客戶的個人計算機201而言是服務(wù)器。由于服務(wù)器有所需數(shù)據(jù)對象,則發(fā)送指令給服務(wù)器,如服務(wù)器202a,來請求該服務(wù)器202g并搜索網(wǎng)絡(luò)200。服務(wù)器202a則是服務(wù)器202g的服務(wù)器,而服務(wù)器202g是它的客戶。服務(wù)器202g臨時存儲從服務(wù)器202a上獲取的數(shù)據(jù)對象備份。另外,個人計算機201也將保存從服務(wù)器202g上獲取到的數(shù)據(jù)對象的臨時備份。
本發(fā)明的一個應(yīng)用實例是服務(wù)器202g有一個應(yīng)用程序,該應(yīng)用程序能從緩存對象中的URL內(nèi)容中提取索引數(shù)據(jù)。接著,提取出來的索引數(shù)據(jù)傳輸?shù)綌?shù)據(jù)存儲系統(tǒng),如搜索引擎數(shù)據(jù)存儲系統(tǒng)203。數(shù)據(jù)存儲系統(tǒng)203通過服務(wù)器202f連接到網(wǎng)絡(luò)200。本發(fā)明的另外一個應(yīng)用實例是包括瀏覽器或其它應(yīng)用系統(tǒng)個人的計算機201,它也能從個人計算機上的對象緩存里的URL內(nèi)容中提取索引數(shù)據(jù);然后,提取出來的數(shù)據(jù)被傳輸?shù)剿阉饕鏀?shù)據(jù)存儲系統(tǒng)203或其他目的數(shù)據(jù)存儲系統(tǒng)中。本發(fā)明的再一個應(yīng)用實例類似服務(wù)器202a-202g連接到網(wǎng)絡(luò)200的其它分布式系統(tǒng),它有一個軟件應(yīng)用系統(tǒng),也能從臨時保存在服務(wù)器202a-202g的對象緩存里的URL內(nèi)容中提取索引數(shù)據(jù)。
文獻中介紹了很多索引的方法,不同互聯(lián)網(wǎng)的搜索引擎和其它軟件產(chǎn)品使用不同的數(shù)據(jù)索引方法。常用的索引方法有方向文件摘要(如B+樹、哈希索引、署名文件)及從上下文提取簡單關(guān)鍵詞等方法。在本發(fā)明中,URL建立索引時是采用一種能被用于不同的搜索引擎系統(tǒng)的索引數(shù)據(jù),并能快捷地轉(zhuǎn)換成適用于不同搜索引擎系統(tǒng)的格式。由于一個索引文件的長度可能超過原文件的長度,因而可使用一種快捷的標(biāo)準壓縮技術(shù)來對加索引后URL進行壓縮。搜索引擎一旦收到壓縮文件后,對其進行解壓和格式轉(zhuǎn)換成搜索引擎所要求的格式。
提供給搜索引擎數(shù)據(jù)存儲系統(tǒng)203的索引數(shù)據(jù)不僅包括用戶訪問過對象的索引數(shù)據(jù),還包括URL的訪問頻率和時間戳。因此,被數(shù)據(jù)存儲系統(tǒng)203接收到的索引數(shù)據(jù)也可用于統(tǒng)計分析,即統(tǒng)計分析在數(shù)據(jù)存儲系統(tǒng)203上的某URL的被訪問次數(shù),可確定該URL的訪問情況。
圖3描述了為響應(yīng)用戶請求而訪問URL過程。如圖3所示,該過程從模塊301開始,然后執(zhí)行到模塊302。模塊302描述了關(guān)于用戶是否請求一個URL地址。如果URL地址未被請求,則循環(huán)執(zhí)行模塊302;否則,轉(zhuǎn)到模塊303。模塊303描述了采用現(xiàn)有通用的方法從網(wǎng)絡(luò)上搜索包含被請求的URL地址的服務(wù)器。模塊304描述URL地址是否被檢測到的決策過程。若URL地址未檢測到,則轉(zhuǎn)到模塊308,返回出錯信息并中止進程;否則轉(zhuǎn)到模塊305,從服務(wù)器提取URL地址所對應(yīng)的URL數(shù)據(jù)。模塊306則對提取后的URL數(shù)據(jù)進行臨時備份,在模塊307中訪問提取數(shù)據(jù)的臨時備份,進程結(jié)束。
圖4描述一個獲取加索引的URL內(nèi)容并將其提供給搜索引擎數(shù)據(jù)庫的過程。如圖所述,該過程從模塊401開始,然后到模塊402,模塊402判別是否有高優(yōu)先級別,諸如訪問新文件、傳輸臨時文件等高優(yōu)先的命令。若有高優(yōu)先級請求,在模塊404中執(zhí)行高優(yōu)先級請求;否則,則轉(zhuǎn)到模塊403,判斷是否還有臨時備份對象未被索引。若沒有,進程轉(zhuǎn)到模塊402,否則,轉(zhuǎn)到模塊405,從URL的臨時備份中提取索引數(shù)據(jù)。接著,在模塊406中以可傳輸格式壓縮提取出來的索引數(shù)據(jù)。在模塊407中將壓縮后的索引數(shù)據(jù)傳輸?shù)剿阉饕娴臄?shù)據(jù)庫系統(tǒng),索引數(shù)據(jù)合并到搜索引擎數(shù)據(jù)庫中或用于統(tǒng)計分析。
圖5所提供一個采用分層技術(shù)來組織各層次的對象緩存的結(jié)構(gòu)圖。如圖所示,在本發(fā)明的所提供的對象緩存管理系統(tǒng)中,各對象緩存管理子系統(tǒng)之間除了父子關(guān)系外,還有同屬關(guān)系,以分擔(dān)緩存服務(wù)器的負荷。在這分層結(jié)構(gòu)中的每個對象緩存獨立決定是否是從對象的主站點還是從該緩存的父緩存或鄰緩存中提取索引,解決的基本方法如下若對象的URL中包含有子連接,則直接從對象的主站點提取該對象,而不是從分層緩存結(jié)構(gòu)中提取。這一特性使得緩存能直接從對象的主站點來區(qū)分cgi-bin等不可緩存URL和本地URL。相似的,若該URL的域名與可配置的子連接串相匹配,則該對象將由與該域名綁定的父緩存來解決;否則,當(dāng)一個緩存收到一個對未點擊的URL請求時,將執(zhí)行一個遠程呼叫進程,請求所有的鄰節(jié)點及父緩存檢測該URL是否已被它們接受,而該緩存將在最低反應(yīng)時間內(nèi)收到該對象。
一個緩存解決″未點擊過″的對象的方法是通過發(fā)送一個″查詢″數(shù)據(jù)包到它的所有鄰節(jié)點、父緩存和請求對象主節(jié)點。每個鄰節(jié)點和父接口返回一個″已點擊過″或″未點擊過″的響應(yīng)信息,響應(yīng)信息由對象在緩存中的狀態(tài)決定。如果對象的主節(jié)點運行用戶數(shù)據(jù)包協(xié)議的反射守候進程,對象就返回一個″已點擊過″信息。緩存將從最快返回″已點擊過″信息的節(jié)點中獲得對象,不論其來自于對象的原節(jié)點還是其他的緩存。如果所有的緩存沒有響應(yīng)且原節(jié)點比所有的父緩存慢,緩存從最快的父緩存中獲得對象;否則,若對象原節(jié)點的響應(yīng)時間接近于最快的緩存,緩存從對象的原節(jié)點獲得對象。只有在父緩存已失敗而其子緩存還未檢測到,該緩存才增加較大的延時。在這種情況下,父子緩存超時,該對象的參照延時2秒。隨著層次加深,根緩存需負責(zé)更多的子緩存,為避免根緩存超載,本發(fā)明在實現(xiàn)中,緩存只分級到帶寬足夠大的局域網(wǎng)或主干網(wǎng)。
另外對Gopher、HTTP、FTP對象,本發(fā)明的提供一個維護最近用過的域名服務(wù)器名稱加地址映射緩存來優(yōu)化公用緩存行為。本發(fā)明采用基于多用途的網(wǎng)際郵件擴充協(xié)議的頭來標(biāo)定對象,確保其實時。緩存以單個事件驅(qū)動的方式運行,以非塊的形式讀寫到磁盤和緩存客戶端。當(dāng)一個對象的前幾個字節(jié)剛到緩存,緩存客戶端之間就開始讀寫。對每個實例,緩存派生一個新的獨立進程來獲得ftp文件,但自己獲得HTTP和Gopher對象。緩存獨立管理磁盤上的和被裝載在虛擬地址空間的對象,也為虛擬內(nèi)存中的對象維護其所對應(yīng)的元數(shù)據(jù),以減少對元數(shù)據(jù)的潛在訪問。
本發(fā)明提供的緩存管理系統(tǒng)支持三種訪問協(xié)議封裝、無連接及代理http協(xié)議。封裝協(xié)議封裝緩存到緩存數(shù)據(jù)包,并允許用求和檢驗端點或數(shù)字簽名等方法進行端點到端點的錯誤檢測。該協(xié)議也使父緩存將對象的最新實況傳輸給子緩存。緩存用基于用戶數(shù)據(jù)報協(xié)議的無連接協(xié)議來執(zhí)行父子決策。為快捷起見,該協(xié)議也允許緩存在沒有建立TCP連接時交換小對象。封裝協(xié)議和無連接協(xié)議都支持端點到端點的可靠性,而代理http協(xié)議則大多瀏覽器所支持的協(xié)議。在系統(tǒng)中,客戶通過FTP,Gopher,或HTTP等標(biāo)準通信協(xié)議從緩存進程中訪問對象,用戶用代理也可訪問防火墻后的www。
由于缺少標(biāo)準方法來設(shè)定對象本身的時效,本發(fā)明并不對所有對象進行緩存,如受密碼保護的對象不能進行緩存。然而緩存相當(dāng)于一個應(yīng)用網(wǎng)關(guān),對象一旦被發(fā)送出去就被清除。緩存相似地清除沒有被緩存的URL。限制最大可緩存對象的長度目的是為了緩存能保存更多的數(shù)據(jù)對象。
由于URL并沒有給對象進行獨特性命名,因此,本發(fā)明采用URL加多用途的網(wǎng)際郵件擴充協(xié)議的頭來唯一識別一個對象。例如,若客戶的瀏覽器不能看到腳本,www服務(wù)器可返回一個腳本對象的文本文件。為了減少重復(fù)錯誤,本發(fā)明采用兩種方法對緩存進行保底首先,當(dāng)DNS查表錯誤發(fā)生時,保存5分鐘的緩存結(jié)果;第二,當(dāng)提取對象中發(fā)生錯誤時,保存可設(shè)置的、一定時間內(nèi)的緩存結(jié)果,缺省為5分鐘。
www瀏覽器支持不同的認證機制,用多用途的網(wǎng)際郵件擴充協(xié)議的頭中的編碼在瀏覽器和服務(wù)器之間相互認證?;镜恼J證機制包括交換密碼。為防止偷聽,用公用鑰匙進行認證,服務(wù)器將其公鑰聲明在純文本中。但因隱私而加密被交換的其余部分,該方法易于欺騙IP。對于那些需保密和認證的緩存,本發(fā)明采用PGP機制,在外面交換公鑰。
正如上述的http安全機制,本發(fā)明所提供的瀏覽器和服務(wù)器之間傳輸協(xié)議如下當(dāng)服務(wù)器傳輸一個未授權(quán)信息給緩存時,緩存將其傳輸回客戶并從緩存中清除該URL。用既定的安全模式的客戶瀏覽器請求用戶和密碼命令,并重新發(fā)布“獲取URL”,用加密于多用途的網(wǎng)際郵件擴充協(xié)議頭來認證。該緩存檢測用于認證的多用途的網(wǎng)際郵件擴充協(xié)議頭、不可緩存對象,并將提取出來的文件返回給用戶,但同時清除該對象的所有記錄。注意在純文本認證模式下,包括在緩存內(nèi)的純文本,任何人都能監(jiān)聽認證數(shù)據(jù)。因此,緩存沒有弱化已較弱的安全模式。在基于公鑰或PGP模式下,緩存或其它竊聽者不能解析認證數(shù)據(jù)。
由于命令來自緩存IP地址而不是用戶的IP地址,因此代理緩存也能通過基于IP地址的認證。然而,由于IP地址易被監(jiān)聽,本發(fā)明中充分利用端口優(yōu)勢。代理緩存沒有防止服務(wù)器給服務(wù)器上的文件加密或數(shù)字簽字。最后,若網(wǎng)絡(luò)數(shù)據(jù)對象沒被數(shù)字簽名,則一個粗心的系統(tǒng)管理員可能在其代理緩存內(nèi)插入無效數(shù)據(jù)。但是代理緩存沒有嚴重減弱web保密性。
本發(fā)明的緩存管理系統(tǒng)還提供有效的線程管理??紤]到跨平臺的便利性,緩存對直接基于BSD選擇循環(huán)上的非阻滯磁盤和網(wǎng)絡(luò)I/O進行摘要提取。除不能ftp URL外,緩存避免fork進程。由于協(xié)議的太復(fù)雜,很難適合那些循環(huán)選擇狀態(tài)下的機器,因此本發(fā)明通過外部進程來提取ftp的URL,緩存執(zhí)行其本身的DNS緩存,即當(dāng)該DNS緩存丟失時非阻滯DNS查表。當(dāng)參照字符被輸入到緩存,這些字符將被非阻滯I/O端口同步轉(zhuǎn)寄到所有地址,這些地址索引同一對象,并寫入到磁盤。停止緩存運轉(zhuǎn)的唯一方法是若緩存使用一個虛擬內(nèi)存對象作為缺省值,緩存通過管理它的虛擬影像來避免缺省對象。緩存內(nèi)部采用非優(yōu)先執(zhí)行權(quán),內(nèi)部完成步驟安排,因此無需鎖定文件或數(shù)據(jù)結(jié)構(gòu)。然而在緩存的客戶看來,緩存是多線程的。
本發(fā)明的緩存管理系統(tǒng)還提供內(nèi)存管理。在虛擬內(nèi)存中,緩存保存URL、TTL、參考數(shù)目、參考磁盤文件及不同標(biāo)示等緩存對象的裸數(shù)據(jù)。對每個對象需要48字節(jié)加URL的字符長度。緩存也在虛擬中保存經(jīng)常被訪問的對象。然而,當(dāng)分配給常被訪問的對象的虛擬內(nèi)存的數(shù)目超出預(yù)設(shè)置值時,緩存清除常被訪問對象,直到虛擬內(nèi)存的使用率降低到一定水平,注意到這些對象保存在磁盤上,而收回分配給它們的虛擬內(nèi)存影像。當(dāng)用httpd加速器加載到緩存時,被訪問對象的虛擬內(nèi)存的緩存將顯得格外有用。
盡管還有另外備份,對象該為通過未阻滯I/O端口將對象寫入緩存。用URL做索引關(guān)鍵詞的哈希表將用緩存對象做參照??删彺鎸ο蟊3衷诰彺鎯?nèi)直到它們被分配的TTL的緩存過期,并清除出緩存或用瀏覽器的“重調(diào)”來用戶手工清除。若一個索引訪問一個過時的對象,緩存用HTTP的“修改則獲取”規(guī)則來刷新對象的TTL。緩存保存這URL和每個對象數(shù)據(jù)結(jié)構(gòu)到虛擬內(nèi)存,但將對象本身保存到磁盤。
當(dāng)磁盤空間超過極限,緩存進入它的垃圾收集模式。在該模式下,緩存拋棄最早保存在對象哈希表里的對象。當(dāng)磁盤使用率在最低極限以下,緩存跳出垃圾收集模式。若磁盤使用達到最大配置時,它立即從哈希表的下一行拋棄最早對象。緩存管理多個磁盤和并保持它們之間的負荷平衡。在每個磁盤上創(chuàng)建100個目錄,在不同磁盤和目錄之間進行輪流創(chuàng)建對象。因此,一個管理四個磁盤和千萬個對象緩存的每一個目錄平均保存2500文件。由于目錄項平均大約24字節(jié),平均目錄將增加到154k字節(jié)的磁盤塊。
如上述,本發(fā)明提供了一個將加索引后的URL內(nèi)容提供給一個搜索引擎數(shù)據(jù)的方法和系統(tǒng)。與眾不同的是,URL索引內(nèi)容是從URL的臨時備份中提取。然而,當(dāng)本發(fā)明描述成從互聯(lián)網(wǎng)等網(wǎng)絡(luò)中提取對象時,該發(fā)明也可應(yīng)用到可通過互聯(lián)網(wǎng)能獲取的其它數(shù)據(jù)。另外,本發(fā)明并不局限于以太網(wǎng),還可用于其它網(wǎng)絡(luò)。例如,本發(fā)明可應(yīng)用于局域網(wǎng)內(nèi)提取數(shù)據(jù)文件的索引數(shù)據(jù)以響應(yīng)這些網(wǎng)絡(luò)內(nèi)的用戶訪問網(wǎng)絡(luò)資源。從被訪問文件的對象緩存中提取文件的索引數(shù)據(jù),傳輸、合并到該網(wǎng)絡(luò)中的搜索引擎數(shù)據(jù)庫中。也可理解為從具有分布式結(jié)構(gòu)的網(wǎng)絡(luò)用戶上的對象緩存中提取索引數(shù)據(jù),并將索引數(shù)據(jù)傳輸和合并到可檢索數(shù)據(jù)庫中。值得注意的是,雖然該發(fā)明是基于功能齊全的計算機系統(tǒng),該發(fā)明中的一些技術(shù)也可應(yīng)用已有發(fā)明來改進它們的性能,該發(fā)明也不局限于數(shù)據(jù)的載體。
權(quán)利要求
1.網(wǎng)絡(luò)搜索引擎的緩存管理方法包括a)通過緩存來加速搜索、索引網(wǎng)絡(luò)數(shù)據(jù)對象,并將索引數(shù)據(jù)傳輸?shù)剿阉饕鏀?shù)據(jù)庫的方法;和b)采用分層技術(shù)來組織和管理分布式網(wǎng)絡(luò)中的各個層次上的緩存的方法。
2.根據(jù)權(quán)利要求1中的a)方法的實現(xiàn)步驟包括a)通過訪問保存在緩存內(nèi)的對象緩存來實現(xiàn)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問請求,這些對象緩存既能訪問得到對象所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象,且能被用戶訪問得到。將從對象緩存中提取出來的索引數(shù)據(jù)自動保存到緩存內(nèi),索引數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)對象一一對應(yīng)。最后,將索引數(shù)據(jù)從緩存內(nèi)轉(zhuǎn)移到搜索搜索引擎數(shù)據(jù)庫;b)從分層網(wǎng)絡(luò)結(jié)構(gòu)中的父緩存、子緩存、兄弟緩存收集已索引數(shù)據(jù),并將索引數(shù)據(jù)合并到搜索引擎數(shù)據(jù)庫中,以響應(yīng)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問;和c)采用對象緩存的方式,從分布式結(jié)構(gòu)中的遠程數(shù)據(jù)庫系統(tǒng)中收集已索引數(shù)據(jù),并將索引數(shù)據(jù)合并或備份到搜索引擎數(shù)據(jù)庫中,以響應(yīng)用戶對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問。
3.權(quán)利要求2所述的方法中的a)步驟還進一步包括步驟a)使用服務(wù)器搜索網(wǎng)絡(luò)。在服務(wù)器緩存中臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象,形成對象緩存,用戶訪問這些對象緩存來實現(xiàn)訪問它們所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象;b)用戶通過瀏覽器來訪問網(wǎng)絡(luò)數(shù)據(jù)對象,瀏覽器是用戶訪問網(wǎng)絡(luò)對象的接口;在瀏覽器緩存中臨時備份用戶所請求的網(wǎng)絡(luò)數(shù)據(jù)文件。用戶通過該瀏覽器訪問保存在瀏覽器的對象緩存來實現(xiàn)用戶對所要求的網(wǎng)絡(luò)數(shù)據(jù)對象的訪問。
4.權(quán)利要求1所述的方法中的a)步驟,還進一步包括a)決定對象緩存是否具有優(yōu)先級執(zhí)行權(quán);b)以一種可傳輸格式來壓縮所提取出來的索引數(shù)據(jù);和c)計算并保留某網(wǎng)絡(luò)數(shù)據(jù)對象的索引數(shù)據(jù)被提交給搜索引擎數(shù)據(jù)庫時間戳以及被檢索的次數(shù)。
5.權(quán)利要求1中的b)方法包括a)各網(wǎng)絡(luò)緩存之間除了父子關(guān)系外還有同屬關(guān)系來共同分擔(dān)緩存的負荷。每個對象緩存將獨立決定是否是從對象的主站點或該緩存的父緩存或鄰緩存中提取索引;b)采用域名服務(wù)器名稱加地址的映射緩存來優(yōu)化公用緩存,并采用基于多用途的網(wǎng)際郵件擴充協(xié)的頭來標(biāo)定對象的實時性;c)緩存管理支持封裝協(xié)議、無連接、代理http協(xié)議等三種訪問協(xié)議;d)用URL加基于多用途的網(wǎng)際郵件擴充協(xié)的頭來唯一識別一個緩存對象;e)用PGP認證對象緩存;和f)直接非阻滯磁盤和網(wǎng)絡(luò)I/O來提取摘要,以以便跨平臺和有效地管理線程、內(nèi)存和磁盤。
6.一個搜索引擎的網(wǎng)絡(luò)緩存管理系統(tǒng)包括a)一個對網(wǎng)絡(luò)數(shù)據(jù)對象的加索引并保存索引數(shù)據(jù)到搜索引擎數(shù)據(jù)庫的系統(tǒng);和b)一個用戶通過緩存來實現(xiàn)搜索訪問網(wǎng)絡(luò)對象的系統(tǒng);
7.權(quán)利要求6中的a)系統(tǒng)包括a)一個網(wǎng)絡(luò)用戶能訪問得到的、用于臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象的的緩存;b)一個自動從對象緩存中來獲取和保存索引數(shù)據(jù)的存儲單元;c)一個能將索引數(shù)據(jù)傳輸?shù)綌?shù)據(jù)存儲系統(tǒng)的傳輸單元;d)一個從分布式的網(wǎng)絡(luò)緩存那里收集索引數(shù)據(jù)的收集單元;e)一個將采集到的索引數(shù)據(jù)合并到數(shù)據(jù)存儲系統(tǒng)的合并單元;和f)一個計算數(shù)據(jù)存儲系統(tǒng)訪問某一網(wǎng)絡(luò)數(shù)據(jù)對象次數(shù)的計算單元。
8.權(quán)利要求6中的b)系統(tǒng)包括a)一個用于網(wǎng)絡(luò)搜索的服務(wù)器緩存,臨時備份網(wǎng)絡(luò)數(shù)據(jù)對象,并在其緩存內(nèi)形成對象緩存,用戶訪問對象緩存來實現(xiàn)訪問它們所對應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)對象;b)一個用戶用于訪問網(wǎng)絡(luò)對象的瀏覽器緩存,瀏覽器緩存將臨時備份用戶所請求的網(wǎng)絡(luò)數(shù)據(jù)對象,并在其緩存內(nèi)形成對象緩存,用戶通過訪問這些緩存對象來實現(xiàn)用戶對所要求的網(wǎng)絡(luò)數(shù)據(jù)對象的訪問;和c)一個用于決定判斷緩存是否具有優(yōu)先執(zhí)行級別的決策器,若該緩存沒有優(yōu)先執(zhí)行級別,則從保存在緩存上的緩存對象中提取網(wǎng)絡(luò)數(shù)據(jù)對象及其索引數(shù)據(jù)。
全文摘要
本發(fā)明是關(guān)于互聯(lián)網(wǎng)和移動網(wǎng)絡(luò)搜索引擎系統(tǒng)中的數(shù)據(jù)搜索和緩存管理的系統(tǒng)和方法,采用分層緩存技術(shù)來采集和管理分布式網(wǎng)絡(luò)數(shù)據(jù)對象,并將網(wǎng)絡(luò)數(shù)據(jù)對象和索引數(shù)據(jù)提供給搜索引擎數(shù)據(jù)庫及網(wǎng)絡(luò)用戶。該方法包括如下三個子方法其一,通過訪問保存在網(wǎng)絡(luò)緩存內(nèi)的對象緩存來實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)對象的訪問。緩存對象與網(wǎng)絡(luò)數(shù)據(jù)對象一一對應(yīng)。緩存對象能訪問得到其所對應(yīng)的網(wǎng)絡(luò)對象,且能被網(wǎng)絡(luò)用戶訪問得到。其二,將從對象緩存中提取出來的索引數(shù)據(jù)自動保存在網(wǎng)絡(luò)緩存中,索引數(shù)據(jù)與對象緩存所對應(yīng)的網(wǎng)絡(luò)對象一一對應(yīng)。其三,將索引數(shù)據(jù)從緩存?zhèn)鬏數(shù)剿阉饕鏀?shù)據(jù)庫或提供給網(wǎng)絡(luò)用戶。
文檔編號H04L29/06GK1804831SQ200510001969
公開日2006年7月19日 申請日期2005年1月13日 優(yōu)先權(quán)日2005年1月13日
發(fā)明者陳翌, 何余良 申請人:陳翌, 何余良