动态管理数据中心搜索的系统和方法

文档序号:6480010阅读:248来源:国知局
专利名称:动态管理数据中心搜索的系统和方法
技术领域
本发明涉及搜索,尤其是涉及对资源进行管理以处理数据中心搜索。背景技术
数据中心搜索在过去的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·杰克逊 申请人:自适应计算企业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1