專利名稱:動態管理數據中心搜索的系統和方法
技術領域:
本發明涉及搜索,尤其是涉及對資源進行管理以處理數據中心搜索。背景技術:
數據中心搜索在過去的15年里已經大為流行。通過經由萬維網提供搜索服務已經涌現出了諸如雅虎、AltaViSta、ASk. com和谷歌這樣的公司。通常,用戶通過在網頁上的文本框內輸入搜索詞來訪問網頁并搜索他們想要尋找的條目。搜索引擎在一個大型數據中心內處理這些查詢,該大型數據中心包含了數百、數千、甚至數十萬個單個的計算機,這些計算機聯網在一起,組成作為一個計算機環境的網格或集群。搜索引擎通常將搜索數據庫分布在多個計算機上。但是,當一個引起許多互聯網用戶的興趣的事件發生時,有關該事件的信息請求可能在短時間內使搜索引擎崩潰。例如,北京2008奧運會是一個推動了大量網絡搜索的事件,其中的大部分搜索都基本是相同的或包含了非常相似的要素。在一個典型的搜索引擎的數據中心內,這意味著包含有被高度關注的信息的一臺計算機或一組固定計算機被重復查詢。這些類似的查詢可以認為是同一領域。在這臺計算機或這組計算機上突然的工作負荷增加會導致服務質量下降。例如,在正常情況下一臺服務器可在0. 02秒內服務于一條查詢,在極端負荷情況下,一臺同樣的服務器可能在0. 08秒或更多的時間內才能服務于一條查詢。奧運會是引起搜索中的許多峰值的一個可預測的例子,但其他事件更難以預測, 例如,諸如颶風和地震這樣的自然災害以及諸如政治丑聞這樣的非自然災難。然而,與奧運會相關的搜索會持續超過兩個星期或更長時間,并且搜索量逐漸增加,而其他事件在很短的時間內就能從統計學上的不起眼搜索迅速飆升到占據總搜索中的相當比例。在許多情況下,這些大量的、事件引發的搜索是具有最高價值的搜索(即對用戶來說最重要),但是由于挨得很近的時間間隔和大量的請求,在計算機環境中包含必要數據的單個服務器很難作出反應。最終結果是最重要的搜索獲得最差的服務。此處所用到的數據搜索可應用于任何一類數據搜索或數據中心事務。網絡搜索可涉及一種類似于谷歌搜索的搜索,其中數據是谷歌所擁有的索引數據并且是通過網絡爬行 (web crawling)算法經由互聯網獲得的。搜索的數據可以是網頁本身,例如在許多用戶訪問像drudger印ort或CNN網址那樣的相同網頁的情況。因此,本領域需要的是一種改進的方法來管理搜索,使得能及時地服務于最為頻繁的搜索。
發明內容
本發明的其他特征和優點將在后面的描述中提及,并且部分將通過說明而更加清楚,或者可通過本發明的實施而得知。本發明的特征和優點可通過特別在所附權利要求中指出的手段和組合來實現并獲得。本發明的這些和其他特征將從后面的描述和所附權利要求中更完整地揭示出來,或者可通過這里所述的本發明的實施來了解。公開了用于動態管理數據中心搜索的系統、方法和有形的計算機可讀介質。該方法包括將與關于特定領域的事件相關的信息接收到數據庫,識別出在該數據庫中第一存儲位置的數據,該數據是響應于該特定領域的搜索而被識別出的數據,將該數據至少一次復制到至少一個新的存儲位置,并在所述至少一個新的存儲位置中分配更多特定領域的搜索。該方法可在至少一個第一存儲位置和至少一個新的存儲位置中進一步分配處理。該系統能夠隨機地、連續地或者以其他策略方式,例如按照地理信息,分配處理更多特定領域的搜索。如果通過搜索引擎提交的、針對某種汽車或政界候選人的搜索數量達到某個門限值, 使得響應時間縮短,則該系統可執行這里公開的步驟。在復制數據之后,該系統在其他的存儲位置中分配關于同一領域或主題的搜索,以提高響應時間。該方法可選地包括使用由所述第一存儲位置和至少一個存儲位置組成的擴展搜索空間。該方法還可包括識別出與所述特定領域的搜索有關的縮略事件,并通過從一個或多個存儲位置刪除重復數據,或者通過停止訪問這些存儲位置并在至少一個剩余的存儲位置中分配處理,從而取消擴展搜索空間。該方法還可包括借助網絡段來組織多個事件,識別出與特定領域的搜索相關的網絡段,并且將數據復制到緊挨著所識別出的網絡段處的至少一個新的存儲位置。該方法可以通過地理距離、網絡延時、中間網絡跳數、溫度和成本中的一項或多項來衡量遠近程度。諸如來自Cluster Resources的MOAB 或來自Platform Computing的軟件這樣的工作負荷管理器能夠執行或管理該方法的全部或一部分。
為了說明能夠得到本發明的上述和其他優點和特征的方式,將通過參照附圖所示的具體實施例對上面簡要說明的本發明做更詳細的描述。應理解的是,這些附圖僅示出了本發明的示例性實施例,因此不應認為是對其保護范圍的限制,將通過使用
并解釋本發明的其他特點和細節,圖中圖1示出了作為示例的系統實施例;圖2示出了管理搜索的第一種現有技術方法;圖3示出了管理搜索的第二種現有技術方法;圖4示出了作為示例的用于管理搜索的系統的實施例;圖5示出了作為示例的方法實施例;以及圖6示出了作為示例的用于預測性管理搜索的方法實施例。
具體實施例方式下面詳細討論本發明的各個實施例。盡管討論了具體的實施方式,但應當理解,它們僅僅是出于說明的目的而給出。相關領域的技術人員會意識到,也可以采用其他的組成和配置,而不會背離本發明的主旨和保護范圍。參照圖1,作為示例的系統包括通用計算設備100,該通用計算設備包括處理單元 (CPU) 120和將各個系統組成部件連接到處理單元120的系統總線110,所述系統組成部件包括系統存儲器,如只讀存儲器(ROM) 140和隨機存取存儲器(RAM) 150。也可采用其他系統存儲器130。可以理解的是,本發明可在具有不止一個CPU 120的計算設備上操作,或者在一組相互聯網的計算設備或其集群上操作,以便提供更高的處理能力。處理單元120 可包括通過軟件控制的通用CPU以及專用處理器。英特爾Xeon LV L7345處理器是通過軟件控制的通用CPU的一個例子。也可以把特殊的功能構建到單獨的計算機芯片設計中。 STMicroelectronics STAO13是對MP3音頻文件進行解碼的專用處理器的一個例子。當然, 處理單元可包括任何通用CPU、被配置為控制CPU的模塊和專用處理器,其中軟件被有效結合到實際處理器設計中。處理單元可以實質上是完全獨立的計算系統,包含多個內核或 CPU、總線、存儲器控制器、高速緩存等等。多核處理單元可以是對稱的或非對稱的。系統總線110可以是多種類型總線結構中的任一種,包括存儲器總線或存儲器控制器、外設總線以及使用多種總線體系中任一種的局域總線。存儲在ROM 140或類似單元中的基本輸入/輸出(BIOS)可提供有助于諸如在啟動期間在計算設備100內的各單元之間傳遞信息的基本例行程序。計算設備100還包括存儲設備,如硬盤驅動器160、磁盤驅動器、光盤驅動器、磁帶驅動器等等。存儲設備160通過驅動器接口連接到系統總線110。所述驅動器和相關的計算機可讀介質提供計算機可讀指令、數據機構、程序模塊和用于計算設備100的其他數據的非易失性存儲。一方面,執行特定功能的硬件模塊包含存儲在與必要硬件組成部件相連的實體計算機可讀介質中的軟件單元,所述必要硬件組成部件包括CPU、 總線、顯示器等等,以執行功能。這些基本組成部件對于本領域技術人員來說是熟知的,并可根據設備類型作出適當的改動,如設備是否為小型的手持式計算設備、臺式計算機或計算機服務器。盡管這里描述的示例性實施例采用了硬盤,本領域技術人員應當理解的是,其他類型的能夠存儲可由計算機訪問的數據的計算機可讀介質也可以用在示例性操作環境中,這樣的計算機可讀介質如盒式磁帶、閃存卡、數位激光視盤、磁帶盒、隨機存取存儲器 (RAM)、只讀存儲器(ROM)、包含比特流和類似信息的有線或無線信號。為了使用戶能夠與計算設備100進行交互,輸入設備190代表了任意數目的輸入機制,如用于語音的麥克風、用于手勢或圖形輸入的觸摸敏感屏、鍵盤、鼠標、運動輸入、語音等等。該輸入可由提交者用來指示語音搜索查詢的開始。設備輸出170也可以是本領域技術人員所熟知的多種輸出機制中的一種或多種。在一些實例中,多模式系統使得用戶能夠提供多種類型的輸入以便與計算設備100進行通信。通信接口 180在總體上控制和管理用戶輸入和系統輸出。本發明可以在任何特定的硬件設置上操作,對此沒有限制,因而這里的基本特征可以很容易地針對改進的硬件或固件設置(當它們被開發出來時)而被替換。為了進行清楚的解釋,作為示例的系統實施例被表述為由單個的功能模塊組成 (包括標注為“處理器”的功能塊)。這些模塊所代表的功能可通過使用共享或專用的硬件來提供,這些硬件包括但不限于能夠執行軟件的硬件、以及被有目的地構建以便像在通用處理器上執行的軟件那樣操作的硬件,如處理器。例如圖1中所示的一個或多個處理器的功能可通過一個共享的處理器或多個處理器來提供。(術語“處理器”的使用不應被理解為僅僅指能夠執行軟件的硬件。)作為示例的實施例可包括微處理器和/或數字信號處理器 (DSP)硬件、用于保存執行下面要討論操作的軟件的只讀存儲器(ROM)、以及用于保存結果的隨機存取存儲器(RAM)。也可以提供超大規模集成(VLSI)硬件實施例、以及定制VLSI電路與通用DSP電路的結合。不同實施例的邏輯操作如下實現(1)在通用計算機內的可編程電路上運行的一系列計算機實現的步驟、操作或程序,(2)在專用可編程電路上運行的一系列計算機實現的步驟、操作或程序,和/或C3)在可編程電路內的互連機器模塊或程序引擎。已經討論了能夠被配置為實現所述方法的一些基礎系統,所公開的內容需要得到一些用于管理搜索的現有技術方法的幫助。圖2示出了用于管理搜索的第一種現有技術方法。隊列202存儲了要提交到計算環境中消耗資源的任務或作業,所述資源如CPU周期、存儲器、數據庫訪問等等。當隊列202被填滿后,諸如工作負荷管理器204的軟件(其例子包括來自Cluster Resources或Platform的MOAB Cluster Suite 或其他軟件)將來自隊列202的任務/作業分配給計算環境206。在數據中心搜索上下文中,計算環境206可能包含在多臺計算機上的一個大數據集的不同部分。一方面,工作負荷管理器執行諸如智能調度、將任務/作業(如搜索請求)放入到計算環境206中、智能負荷平衡和其他工作負荷管理任務這樣的任務以及能力,正如在這里通過引用而并入的多個申請中所公開的那樣。 這種軟件能夠識別出可選的時序和資源以滿足搜索請求(作業),并將來自隊列的作業映射到具體的計算資源208,以最大化計算環境206的利用,同時滿足服務水平協議或其他標準。這里本公開內容將解釋工作負荷管理器204的能力如何能夠擴展到不僅管理將作業插入到計算環境中以消耗資源,而且在數據中心上下文中還管理計算環境來提高該環境對大量搜索或其他可能降低性能的事件作出反應的能力。
圖3示出了管理搜索的第二種現有技術方法300,其接受一系列事務或請求302、 如搜索,并映射與應答這些請求相關聯的存儲空間304,而不是通過處理器空間或通過工作負荷平衡事務。這種方法基本上是將大的搜索空間304均勻地和/或有策略地劃分到大量計算服務器上及其磁盤或存儲器306上,以便有助于搜索大的搜索空間。與一個系統具有帶有數據存儲器和高速緩存的多個計算系統的常規模式不同的是,這種方法有效地利用了大量數據空間的等同,潛在地所有都在處理器上高速緩存內,其允許以數據為中心、以數據為焦點的方式進行快速數據訪問。這種現有技術方法按照磁盤大小、存儲器大小或數據大小在存儲空間304內的節點306上靜態地分配數據。該方法包括傳輸層308,該傳輸層把到來的請求302映射到恰好擁有到來的請求302所要求的數據集的全部或一部分的適當的計算機服務器或節點306。每次有搜索或事務進入的時候,該系統通過傳輸層308將該搜索或事務影射到存儲空間304內的服務器306的正確集合。這基本上是一個好的模式,因為數據能夠在存儲器內被快速訪問,并且傳輸層的處理部分相對負擔較輕。但是,這種現有技術方法不適合且未調整到滿足特定事務集合中未預期的峰值。換句話說,如果許多用戶開始搜索相同領域或主題的數據,則這種現有技術方法不足以解決對計算環境的需求增長以對這些搜索作出響應。現在來看這里所描述的本發明。所公開的方法將通過工作負載管理軟件的性能來提供改進。所公開的方法利用工作負載管理軟件的性能來管理計算環境、對事件進行監控、 預留諸如存儲器的資源、激活觸發程序、并根據所請求的衡量標準來使環境中資源的利用率最大化。在先前的工作負荷管理軟件主要著眼于分配到環境中的一般性管理作業的情況下,本公開內容將該用途擴展到數據中心搜索以及如何管理在該上下文中的計算環境。圖 4示出了一個用于管理搜索的作為示例的系統實施例400。工作負載管理器402(或其他軟件/硬件或者其他用于管理環境中資源使用的機制)至少部分地管理該系統。當該系統接受事務或搜索404時,傳輸層406將到來的事務或搜索映射到存儲空間408內的適當資源。 在一個例子中,搜索引擎可具有網絡爬行算法來收集關于網頁的數據并將它們存儲在數據庫408中。當用戶例如在搜索引擎內搜索一個詞或短語時,數據庫408內的適當數據將被定位,使得用戶能夠被指向與搜索詞相匹配的網站。當在類似搜索中出現峰值時,工作負載管理器402接收到信息,即相同的節點、存儲器或節點集合412正在處理大量事務或與該數據相關的點擊事件。該系統能夠基于諸如服務等級協議(SLA)、隊列中的任務數、每秒點擊率、平均響應時間或者基于任意其它數據的門限值,對大量事務做出判斷。該門限值能夠針對不同的數據中心搜索而加以改變。例如,該系統可能會認為某一類別的搜索比其他類別的搜索更重要。在這種情況下,該系統向更為重要的類別分配一個較低的門限值,例如0. 2 秒而不是0. 5秒的平均響應時間,以便更好地服務于這個重要類別。該類別也可以是動態的。例如,與當前事件相關的搜索可通過SLA被分配從而具有最短的響應時間,以便最佳地服務于最受歡迎的搜索。在一個例子中,如果在辯論之后的當天針對兩位總統候選人的搜索具有超過0.2秒的響應時間,則該系統可改變門限值以觸發這里所公開的方法。就此而言,該系統能夠改善在某一特定領域內搜索的響應時間,以改進請求該領域內的搜索的大量用戶的體驗。特征412代表存儲空間408或者在計算設備網格或集群上分布的存儲位置中保存的數據。當某一特定位置或多個存儲位置中的數據響應于同一領域內的搜索被訪問多次時,特征412可以被稱為“熱點數據”。如果滿足某個門限值事件,則工作負荷管理器402 智能地將熱點數據412復制到可用或需求不那么大的存儲位置410,以創建擴展搜索空間 410。工作負荷管理器402可以使用預留、觸發、設置或者所并入的專利申請中提及的任意性能來管理這里所公開的任意處理和步驟。工作負荷管理器402對環境408有完全的了解和控制,并可以利用這里通過引用而結合的多種原理來控制422和似4環境408中的資源利用率。工作負荷管理器402還可以調整傳輸層406,從而在最初的存儲位置412和/或擴展搜索空間410上分配類似的數據中心事務418、420。工作負荷管理器402也可以利用除傳輸層之外的其他機制來管理對其他的領域內搜索的分配。就此而言,圖4示出了初始的搜索組414,其中計算環境通過訪問存儲位置412內的數據來作出響應。當該數據被復制到新的存儲位置410之后,則工作負荷管理器402能夠訪問初始存儲位置412、新的存儲位置 410或者同時訪問這兩者來管理同一領域內的其他搜索。在數據被復制并分配了搜索之后,該系統監視與這些領域特定的搜索相關聯的事件,如果事件發生或者經過一個閾值,該系統壓縮擴展搜索空間,使得在壓縮或減少事件之后提交的搜索由數據庫內的搜索空間來處理,從一個或多個存儲位置消除復制數據或者停止訪問一個或多個存儲位置,并調整算法以在至少一個剩余的存儲位置中分配處理。換句話說,當類似事務內的峰值消退時,工作負荷管理器402可減少甚至消除擴展搜索空間410 內的數據拷貝,或者停止訪問保存該數據的存儲空間。這種減少可以逐漸發生或者一次全部發生。該系統可以在指示出重要性或使用頻率的同時將數據拷貝留在擴展搜索空間內。 由于事務和搜索發展的趨勢,工作負荷管理器402能夠識別出熱點數據412,該熱點數據比擴展搜索空間內當前的數據更為緊急,并將其替換掉。一方面,存儲空間408內所示的不同方框可以是同一物理計算機的組成部分。例如,該系統可以將RAM、硬盤驅動器、閃存、可移動介質、以及多處理器內核的計算機中的每個內核的各個高速緩存作為單獨的存儲位置來對待。工作負荷管理器402也可以用不同的方法來管理搜索。同樣,需要注意的是,搜索數據可以是搜索引擎索引數據、直接的網站數據或者任何其它數據,如用于諸如語音處理或天氣預報等任意類型的分析的私營企業數據庫。該系統可將數據分配到其他數據存儲器上,如高速緩存、硬盤驅動器、磁帶驅動器、RAM、光驅、或任何未來開發的存儲器設備。如上所述,環境408中的數據是從網絡爬蟲程序(webcrawler)獲得的數據,而并非網站本身的數據。在另一個例子中,該數據是網站數據本身。在某些情況下,網站可包括流視頻。在這一上下文中,如果滿足事件閾值,如許多用戶訪問同一網站,該系統可以將所有網站數據中的任一部分復制到新的位置,并且搜索分配算法能夠將搜索映射到其它位置。系統作業或觸發事件可以被用于發起將數據復制到存儲空間410中,隨后管理領域內的搜索在不同存儲位置中的分配。工作負荷管理器402可以發起預留與新的存儲位置410相關的資源。其他網絡資源也可能需要被預留并用來服務于詢問。因此,CPU、帶寬、數據前期(pre-staging) 和后期(post-staging)作業等都可用于實現此處公開的步驟。在一個例子中,系統只能復制網站的視頻部分而不是更為靜態的部分。因此,當用戶輸入URL或訪問網站時,所傳輸的視頻可以從原始服務器或者從動態預留的服務器中的一個流式輸出,這些動態預留的服務器現在保存著服務于原始服務器自己無法以足夠的性能水平處理的特殊請求的視頻。正如已經提到的,這里所描述的原理也可應用于除網頁搜索以外的數據中心搜索,如局域網搜索或其他類型的搜索。這些原理也可以擴展到除搜索以外的數據中心業務, 如網絡托管(web hosting)。例如,一個如GoDaddy. com的網絡托管提供商維持了一個大型的計算機集群、網格或云,以銷售網絡托管服務器。盡管少數的一些網站有足夠的流量來充分或接近充分地利用托管計算機的資源,但絕大多數網站只有稀少的零星流量,并且實際上是在與其他用戶共享的機器上托管。偶爾會有如CNN. com或Slashdot. org這樣的熱門網站發布鏈接到小的網站上,并將大量網頁流量分散到虛擬服務器(modest server)上,而不需要處理涌流的資源,這樣的涌流使得服務器無法處理所有請求。網絡托管提供商可以提供應用這里所描述的原理的應用,從而動態地把網站的網頁服務能力擴展到比一般的計算機組更大的范圍上。在這種情況下,該事件可以是超過閾值的每秒HTTP請求數,或者是超過閾值的訪問某個特定網絡服務器或地址的網絡流量總數。該系統可以復制該網站,并為復制數據的新的存儲地址建立多個新的IP地址。用于完成將URL重新定位到不同IP地址的一個示例性機制可包括工作負荷管理器402,或者根據這里所討論的算法使DNS服務器中的IP地址輪換的其它機制,所述算法例如為當更多人請求某一特定的URL時,DNS服務器在原始IP地址或被復制的一個或多個網站的新的IP地址中的至少一個中分配解析后的IP地址。當該事件平息后(即請求crm. com的人減少),該系統將被復制的網站的動態擴展組壓縮回到原始尺寸和原始存儲器。當有著新IP地址的每個被復制的網站都被壓縮或者從可用列表中被刪除時,這種算法將不再將該IP地址插入到DNS服務器。當壓縮繼續時,只有原始IP地址將保留在DNS服務器中,并由原始網絡服務器服務于對該URL的將來請求。在這種方案中,網絡托管方可以為這種服務收取平穩的月費率,并以類似于投保的方式將擴展成本分攤給許多用戶,或者網絡托管方可以基于與擴展有關的實際成本來收費。 其中存在的其他改動和應用對本技術技術人員來說也是顯而易見的。圖5示出了一個示例性的方法實施例。該方法實施例將結合被配置為實施該方法的系統來進行討論。該系統可包括諸如工作負荷管理器等的組成部件,一個或多個諸如計算機集群或網格的計算環境,點播中心,云計算環境等等,連接工作負荷管理器與一個或多個計算環境的網絡,位于一個位置處或分布在多個位置處的與搜索相關的信息的數據庫, 任何相關的軟件,以及其他必要的組成部件。該系統接收與事件相關聯的信息,該事件和向數據庫(502)的特定領域的搜索有關。作為一個例子,一個互聯網搜索引擎每秒能夠接收數千個搜索詢問,該搜索引擎通過從搜索索引取回的信息來為這些搜索詢問提供服務。在這種情況下,所述事件是每秒在一個特定領域內的搜索詢問數目。搜索索引典型地是一個大的分布式數據庫,但也可以是存在于單個位置。搜索引擎維護關于搜索請求的日志。該搜索引擎可通過搜索詞對該日志進行排序,以便確定哪個搜索詞或搜索詞組合具有最高的點擊率或者是最流行的。該系統能夠以任何形式來監控點擊率,或者與環境有關的其他參數,以識別出已滿足的閾值。該系統能接收該日志的全部或一部分,作為與數據庫的搜索點擊率相關的信息。除了大量的搜索之外,與SLA有關的觸發事件可以表明針對某一特定類別的搜索詞的最低服務水平,或者超過某一特定時間量才完成的搜索(如一個超過0. 7秒的針對“Donald Trump “的搜索詢問)。該事件也可能不涉及點擊率。其可以涉及能耗、溫度、環境搜索以外的事件,如當前事件、天氣事件、政治行動、經濟事件等等。特定領域的搜索包括許多搜索層,這取決于所希望的服務質量。例如,特定領域的搜索的一個例子是“Hurricane Katrina”。盡管很少的一些附加搜索詞也可能被包括在內,但該領域內的絕大多數搜索將包括短語“Hurricane Katrina”。多層特定領域搜索的另一個例子是圣帕特里克節。該領域很寬泛,可能包括的搜索詞如三葉草、綠色、小矮人、金罐、3 月17日、愛爾蘭、掐人、游行等等。該系統能包括所有這些搜索詞以及它們在特定領域搜索內的變化。其他示例性的“事件”包括響應時間慢、特定領域存儲位置處的高溫、帶寬問題、 或者滿足閾值的因素組合。該系統識別數據庫內第一存儲位置處的數據,該數據是響應于特定領域搜索 (504)所識別出的數據。該系統能夠以許多方式響應于搜索來識別數據。例如,該系統能夠識別與前25條最流行的搜索或者每秒超過750次點擊的任何搜索相關的數據。這些數據典型地保存在某一存儲位置,或者保存在有限數目的多個存儲位置,這些存儲位置可以有效地作為一個位置來提及。存儲位置例如包括處理器高速緩存、RAM、固態驅動器、內部和外部硬驅動器和/或其他介質。在集群的一個節點內,數據可以同時駐留在硬盤上、RAM內、 以及處理器高速緩存內。所識別出的數據是作許多搜索的主題的“熱點數據”。該系統將該數據至少一次復制到至少一個新的存儲位置(506)。考慮到這個示例, 所述數據與關于最近發布的跑車的特定領域搜索有關。當對于該跑車的點擊率上升時,該系統將關于該跑車的數據復制到其他計算機或節點上的新的存儲位置。在單個節點能夠在 0. 25秒內服務于一個搜索請求的情景下,該系統將數據復制到足夠的節點,使得每個節點每秒處理不超過4個搜索請求。如果到來的搜索超過了所希望的服務閾值,則該系統可以相應地預留新的存儲位置。當選擇新存儲位置的數量時,服務響應時間只是眾多因素中的一個。其他因素包括位置、成本、復制時間、可用的機器、競爭的特定領域搜索、服務水平協議(SLA)、綠色計算、能耗、能量效率等。在選擇新存儲位置的數量時也存在其他分配情景。該系統在至少一個新存儲位置(508)中分配對更多的或附加的特定領域搜索的處理。用于執行這一任務的示例性算法大致與圖3和圖4所示的傳輸層308、406相似,但主要區別是工作負荷管理器可以智能地、動態地更新算法,以響應類似的數據中心事務中的峰值。當數據處于多個位置時,該系統應用算法來分配多個位置中的搜索。該系統能夠在所有存儲位置中隨機地分配對搜索的處理,或者連續地或基于其他標準分配這些處理。該算法的更為復雜的實現能夠以最少負荷、最少等待時間、最有效率的處理、最低溫度、最便宜的處理或其他網絡和/或存儲位置特征來將對搜索的處理分配到存儲位置。該算法可以基于時刻、服務質量約束、競爭的特定領域搜索、成本等等而加以改變。盡管保持了高的搜索數目,該系統仍將保持擴展搜索空間,并繼續在擴展搜索空間和原始搜索空間的至少一部分上分配搜索。適時地,對特定領域內的搜索的需求可能會減少,或者其他一些事情可能會影響對擴展搜索空間的需求。為了縮小存儲位置或搜索空間的數目,該系統可選地識別出與特定領域搜索(510)相關的減少事件并壓縮擴展搜索空間,使得對關鍵數據的搜索用位于比擴展搜索空間小、但具有至少一個存儲位置(512)的壓縮搜索空間內的數據來處理。在跑車的例子中,如果在制造商披露出該跑車每加侖最多跑3英里之后圍繞該跑車的熱議消失后,則假定針對該跑車的搜索大幅下降。當搜索下降到低于某個特定的閾值時,該系統通過刪除全部或一部分新的存儲位置中的數據,或者通過控制該算法使其不再包括分配中的那些存儲位置,從而壓縮擴展搜索空間。該系統可以通過一步或者逐步地通過一系列步驟完成這種操作。第一存儲位置可作為所有新的存儲位置的起始點(parent),并且不能壓縮,但是,在一方面,壓縮擴展搜索空間不限于預留原始存儲位置,只要至少一個位置仍包含關鍵數據。例如,該系統將地址0x0012處的原始存儲位置復制到存儲位置OxOA^、0xC3F0和0x82D2,其中每個存儲位置都可以在不同的計算機內。該系統可以首先壓縮0x0012,即使它是原始存儲位置。工作負荷管理器首先可以智能地判斷哪個存儲位置是最適合首先壓縮的。這可以基于時間(即哪個時區的人可能是醒著的)或地理信息等等。該系統能夠以任意順序通過去除存儲位置中的任一個來壓縮擴展搜索空間。在一個變體中,該系統通過網絡段進一步組織點擊率,識別出與針對關鍵數據的搜索相關聯的網絡段,并把關鍵數據復制到至少一個新的、靠近所識別出的網絡段的存儲位置。該系統可以通過地理距離、網絡延遲、中間的網絡跳數、成本和/或其他因素來測量遠近程度。例如,如果關鍵數據涉及綠灣包裝工橄欖球隊,且大部分搜索源自威斯康星州, 那么該系統可以將計算環境與威斯康星州之間的網絡連接識別為關鍵網絡段。該系統將關于綠灣包裝工橄欖球隊的關鍵數據復制到盡可能靠近該關鍵網絡段的地方。例如,如果計算環境不包括威斯康星州內的任何節點,則該系統可以將關鍵數據復制到芝加哥和/或明尼阿波利斯市的存儲位置,并且管理節點和網絡路徑的任何存儲器服務,以使得能夠提供按照SLA或其他要求所規定的短的響應時間。或者,例如如果到威斯康星州具有最小延遲的網絡路徑是來自得梅因的,該系統可以把關鍵數據復制到得梅因的存儲位置,并以類似的方式來提供節點和其他網絡資源。圖6示出了用于在數據中心搜索環境內預測性地擴展搜索空間的示例性方法。系統可通過下述方式預測性地擴展搜索空間接收與搜索詞使用的預期增長有關的信息,或者接收與專門針對要在數據庫(602)中的搜索空間內處理的某一特定主題的搜索有關的信息,識別出該數據庫內具有至少一個存儲位置的搜索空間內的數據,該數據是響應于特定領域的搜索(604)所識別的數據,通過把搜索空間內的數據復制到至少一個新的存儲位置(606)中來對搜索空間進行擴展,以及把更多或其他的特定領域的搜索分配到擴展搜索空間(608)中。換句話說,在復制數據后接收到的搜索隨后在至少一個擴展搜索空間、最好還包括原始搜索空間中被分配。與搜索詞使用的預期增長有關的信息可以和編制一份即將上映的暑期電影列表、并響應于對每個即將上映的電影的互聯網搜索的預期增長一樣簡單。例如,被復制的存儲位置的數目可以與每個電影預告片和預期的票房表現相關。在10 個人競選一個候選人提名的選舉情況下,該系統可以針對10個候選人中的每個人在提名前的數周內預測性地擴展搜索空間。識別特定領域數據的一個示例性的方式是通過一個特殊的管理搜索字段。管理員可以有一個谷歌搜索字段,使得檢索到的數據被識別為熱點數據,并立刻像這里所公開的那樣被復制。隨后,該管理員可以觀看奧運會并鍵入“邁克爾菲爾普斯400M視頻”,因而可以把相應的數據識別為熱點數據并相應地處理。這既可以手工完成也可以自動完成。也可采用基于新的網站數據的預測。例如,網頁爬行算法可以對網站和從中獲得的數據進行分析。如果近期部署或創建了能夠在某個特定領域中識別出的新網站,則該系統可以像這里所公開的那樣采取行動,預備好額外索引的數據,以管理對這些網站的預期搜索。在另一個例子中,該系統可以對博客進行分析,以識別出具有吸引力的標題或詞,并預測性地準備好對那些標題或詞做附加的搜索。通常,對關鍵數據的搜索是周期性的。周期性的搜索可能以每天、每周、每月、每年或其它周期發生。例如,對圣誕老人的搜索每年在12月期間出現峰值,對新聞的搜索平時每天在上午出現峰值,而對周期生長的蟬的搜索在不同地區每13年或17年會出現峰值。為了解決這些周期性的搜索,該系統可以進一步在按日期和時間組織的日志中保存接收到的信息,基于該日志預測預期增長的時間表,并基于所預測的時間表來擴展搜索空間。如上所述,可以搜索的數據是任何數據。在一方面,該數據是從爬行和索引網站獲得的索引數據。另一方面,該數據是網站本身。在這種情況下,所述系統可以識別諸如對某個特定網站的響應時間或點擊率這樣的事件,并動態地復制網站本身,使得對特定URL 的請求被分配到至少一個新的存儲位置。壓縮例如可通過修改(即縮減或縮短)對這些資源的預留而發生,使得它們可用于其他的工作負荷。例如當對一個網站處的流視頻演示存在過多的請求,并且需要額附加的服務器來管理這些請求時,這可能是有用的。在這種情況下,數據不僅可以被復制到新的存儲位置,而且可以提供和/或分配附加的服務器、CPU、 帶寬等,以管理這些搜索/請求。工作負荷管理器可以根據所結合的申請中的不同原理來處理和管理計算環境內所有這些配置/資源預留和分配請求。例如,管理器可以預留一組 CPU,或許在節點上重新提供一個適當的操作系統(可以是微軟的Windows到Linux),將數據復制到高速緩存內,并發起所觸發的作業,以開始從新的節點向來自用戶的附加搜索請求流式傳輸視頻數據。這里所提到的計算環境可以是任何資源計算、集群、網格、云計算環境、點播中心、 服務器群(server farm)等等。本公開內容所述的工作負荷管理器可以被配置為管理任何類型計算環境中的數據搜索。因此,無論數據是網絡爬行索引數據、網站數據本身、還是任何其他類型的數據庫,這里所公開的原理均可以改善針對在這種數據庫內的請求或搜索的搜索時間和服務響應。本發明范圍內的實施例也可以包括用于攜帶或具有存儲在其上的計算機可執行指令或數據結構的計算機可讀介質。這種計算機可讀介質可以是任何能夠由包括上面討論的任何專用處理器的功能設計的通用計算機或專用計算機存取的可用介質。舉例來說, 而非限制,這種計算機可讀介質可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁盤存儲設備、或者任何其他能夠被用于攜帶或保存所需程序代碼裝置的介質,所述程序代碼裝置為計算機可執行指令、數據結構、或處理器芯片設計的形式。當通過網絡或其它通信連接(硬線、無線、或者是硬線和無線的結合)向計算機傳輸或提供信息時,計算機適當地將該連接視為計算機可讀介質。從而,任何這種連接被適當地成為計算機可讀介質。上述各種方案的組合也應當包括在計算機可讀介質的范圍之內。例如,計算機可執行指令包括使通用計算機、專用計算機、或專用處理設備執行特定功能或功能組的指令和數據。計算機可執行指令也包括由單機或網絡環境中的計算機所執行的程序模塊。一般來說,程序模塊包括例行程序、程序、對象、部件、數據結構和在專用處理器設計中固有的功能等,其執行特定的任務或實現特定的抽象數據類型。與計算機可執行指令、相關的數據結構和程序模塊代表了用于執行這里所公開的方法步驟的程序代碼裝置的示例。這種可執行指令或相關數據結構的特定順序代表了用于實現這些步驟中所描述的功能而采取的相應動作的示例。本領域技術人員將會意識到,本發明的其他實施例可以在具有多種類型的計算系統結構的網絡計算環境中實現,這些計算系統結構包括個人電腦、手持設備、多處理器系統、基于微處理器的或可編程的消費電子產品、網絡PC、迷你計算機、大型計算機 (mainframe computer)等等。實施例也可以在分布式計算環境中實現,其中通過本地處理設備和經由通信網絡相連(經由硬線連接、無線連接或它們的組合)的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于本地及遠程的存儲設備中。
以上所述的各個實施例僅僅是通過示例的方式來提供,不應構成對本發明的限制。例如,這里的原理可以應用到互聯網或內部網上的文本、圖像、視頻或電影的搜索。本領域技術人員將會意識到,這里所描述的原理可通過修改而應用于對圖像、語音、音頻、視頻、多模式搜索等的搜索。當在個人電腦中處理器內核數量增加且與之相關的高速緩存增加時,相同的原理甚至可以應用于單個的臺式計算機。本領域技術人員將很容易認識到,可以對本發明做出不同的修改和變化,不必遵循這里圖示和描述的示例性實施例和應用,而不會背離本發明的真實意圖和保護范圍。
權利要求
1.一種動態管理數據中心搜索的方法,該方法包括將與涉及特定領域搜索的事件有關的信息接收到數據庫;識別出數據庫中第一存儲位置處的數據,該數據是響應所述特定領域搜索所識別的數據;將該數據至少一次復制到至少一個新的存儲位置;并且在至少一個新的存儲位置中分配對更多特定領域搜索的處理。
2.如權利要求1所述的方法,其中所述分配還在所述第一存儲位置中分配更多特定領域搜索。
3.如權利要求1所述的方法,其中所述分配還隨機地分配對更多特定領域搜索的處理。
4.如權利要求1所述的方法,其中所述分配還連續地分配對更多特定領域搜索的處理。
5.如權利要求1所述的方法,其中所述第一存儲位置和至少一個存儲位置包括擴展搜索空間,該方法還包括識別出涉及特定領域搜索的減少事件;并通過停止訪問一個或多個存儲位置,并在減少事件后在至少一個剩余的存儲位置中分配特定領域搜索,對擴展搜索空間進行壓縮。
6.如權利要求1所述的方法,該方法還包括 通過網絡段組織多個事件;識別出與特定領域搜索相關的網絡段;并且將數據復制到靠近所識別出的網絡段的至少一個新的存儲位置。
7.如權利要求6所述的方法,其中通過地理距離、網絡延遲、中間網絡跳數、溫度和成本中的一項或多項來測量遠近程度。
8.如權利要求1所述的方法,其中該方法通過工作負荷管理器來管理。
9.一種預測性地擴展數據中心搜索環境中的搜索空間的方法,該方法包括 將與涉及特定領域搜索的預期事件相關的信息接收到數據庫;識別出在數據庫中具有至少一個存儲位置的搜索空間內的數據,該數據是響應于所述特定領域搜索所識別的數據;通過將搜索空間中的數據復制到至少一個新的存儲位置來擴展搜索空間;并且至少在擴展搜索空間中分配更多的特定領域搜索。
10.如權利要求9所述的方法,該方法還包括 監控與特定領域搜索相關的減少事件;基于所識別的減少事件壓縮擴展搜索空間,使得在減少事件之后提交的搜索由至少一個剩余的存儲位置來處理。
11.如權利要求9所述的方法,該方法還包括在按照日期和時間組織的日志內保存接收到的信息; 基于該日志預計預期事件的時間表;并且基于預計的時間表,在預期事件之前擴展搜索空間并在擴展搜索空間中分配特定領域搜索。
12.如權利要求9所述的方法,該方法還包括識別出與涉及特定領域搜索的預期事件相關的網絡段,并且將數據復制到靠近所識別的網絡段的至少一個新的存儲位置。
13.如權利要求12所述的方法,其中通過地理距離、網絡延遲、中間網絡跳數、溫度和成本中的一項或多項來測量遠近程度。
14.如權利要求9所述的方法,其中該方法是通過工作負荷管理器來處理的。
15.一種用于動態管理數據中心搜索的系統,該系統包括被配置為將與涉及特定領域搜索的事件相關的信息接收到數據庫中的模塊; 被配置為識別出數據庫中的第一存儲位置處的數據的模塊,該數據是響應于特定領域搜索所識別的數據;被配置為將所述數據至少一次復制到至少一個新的存儲位置的模塊,以及被配置為在所述至少一個新的存儲位置中分配對更多特定領域搜索的處理的模塊。
16.如權利要求15所述的系統,其中被配置為進行分配的模塊還在所述第一存儲位置中分配處理。
17.如權利要求15所述的系統,其中所述第一存儲位置和至少一個存儲位置包括擴展搜索空間,該系統還包括被配置為識別涉及特定領域搜索的減少事件的模塊;和被配置通過停止訪問一個或多個存儲位置并在至少一個剩余的存儲位置中分配處理來壓縮擴展搜索空間的模塊。
18.如權利要求15所述的系統,其中該系統是通過工作負荷管理模塊管理的。
19.一種存儲有計算機程序的有形計算機可讀介質,該計算機程序具有用于動態管理數據中心搜索的指令,該指令包括將與涉及特定領域搜索的事件有關的信息接收到數據庫;識別出數據庫中第一存儲位置處的數據,該數據是響應于特定領域搜索所識別的數據;將所述數據至少一次復制到至少一個新的存儲位置;并且在至少一個新的存儲位置中分配對更多特定領域搜索的處理。
20.如權利要求19所述的有形計算機可讀介質,其中所述指令是通過工作負荷管理器管理的。
全文摘要
一種用于管理數據中心搜索的方法。該方法包括接收與領域搜索有關的事件信息,識別出數據庫中第一存儲位置處的數據,將該數據復制到新的存儲位置,并在存儲位置之間分配對其他領域搜索的處理。對處理的分配可以隨機進行、連續進行或者以其他方式進行。該方法包括由能夠識別出減少事件的存儲位置組成的擴展搜索空間,壓縮搜索空間,并移除所復制的數據。該方法還包括通過與領域搜索相關的網絡段來組織多個事件的功能。
文檔編號G06F17/30GK102209964SQ200880131906
公開日2011年10月5日 申請日期2008年10月3日 優先權日2008年10月3日
發明者D·B·杰克遜 申請人:自適應計算企業股份有限公司