CN107408127A - 用于索引队列的动态阈值门 - Google Patents

用于索引队列的动态阈值门 Download PDF

Info

Publication number
CN107408127A
CN107408127A CN201680013255.9A CN201680013255A CN107408127A CN 107408127 A CN107408127 A CN 107408127A CN 201680013255 A CN201680013255 A CN 201680013255A CN 107408127 A CN107408127 A CN 107408127A
Authority
CN
China
Prior art keywords
file
index
queue
throughput threshold
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680013255.9A
Other languages
English (en)
Other versions
CN107408127B (zh
Inventor
K·L·布朗
A·格拉巴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107408127A publication Critical patent/CN107408127A/zh
Application granted granted Critical
Publication of CN107408127B publication Critical patent/CN107408127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

电子文件由一个或多个动态吞吐量阈值门基于不同的索引队列的特性以及与所述文件中的每个文件相关联的静态文件特性而选择性地被分配至多个不同的索引队列。所述文件接着被索引。在检测到一个或多个经索引文件的动态特性的改变之后,所述吞吐量阈值门接着被修改以获得、维持、或修改针对一个或多个索引队列的期望的吞吐量。

Description

用于索引队列的动态阈值门
背景技术
计算机索引用来跟踪和引用能够以多种不同格式并且在世界各地的位置中作为电子文件来存储的数据。
当创建索引时,必须要扫描正在被索引的每个文件以确定数据文件的内容并且识别该数据被存储在何处以及该数据如何被存储。当索引文档被修改时,有时还必须重新扫描并重新索引那些文件。
经索引文件的“新鲜度”是指该文件在多久前被扫描和索引。索引的总体新鲜度有时能够通过由该索引所引用的所有文件的共同新鲜度来度量。该索引的效用同样能够通过其总体索引新鲜度来度量。
索引的效用还能够根据相关性以及包容性或完整性来度量。相关性的度量通常是指最相关内容是否被索引。最相关内容常常被包含在最近创建和/或存储的文件内。另一方面,包容性或完整性通常是指可用于进行索引的内容的总范围中已经被扫描和索引的内容和文件的数量或百分比。
由于电子文件的格式、大小、可访问性、和一致性方面的多样性以及在扫描和索引期间所利用的计算机资源的可用性的波动,常常难以以同时确保预先确定水平的新鲜度和预先确定水平的包容性/完整性的方式来配置索引软件。
在本文中所要求保护的主题不限于解决任何缺点或者仅在诸如在上文中所描述的那些环境中操作的实施例。相反,该背景技术仅被提供以示出在本文中所描述的一些实施例可以在其中实践的一个示例性技术领域。
发明内容
提供了该发明内容而以用简化形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护主题的范围。
如在本文中所描述的,各种方法、系统、和存储设备被提供有一个或多个动态吞吐量阈值门,其帮助控制将电子文件分配至不同的索引队列。
在一个实施例中,电子文件基于不同的索引队列的特性以及与所述文件中的每个文件相关联的静态文件特性而选择性地被分配至多个不同的索引队列。所述文件接着在适当的时候由一个或多个索引引擎来索引。在检测到一个或多个经索引文件的动态特性的改变之后,吞吐量阈值接着被修改以获得、维持、或修改针对一个或多个索引队列的期望的吞吐量。
额外的特征和优点在随后的描述中被阐述,并且将部分地从所述描述中显而易见,或者可以通过实践本文中的教导而习得。本发明的特征和优势可以通过在所附权利要求中特别指出的仪器和组合来实现并获得。本发明的特征将从以下的描述和所附权利要求中变得更加充分明显,或者可以通过实践之后所阐述的本发明而习得。
附图说明
为了描述能够获得上述和其他优点和特征的方式,将通过参考在附图中所示出的具体的实施例而呈现对在上文中简要描述的主题的特定描述。应当理解的是,这些附图仅描绘了典型的实施例,并且因此不被认为是对范围进行限制,将通过使用附图而利用额外的特异性和细节来描述和解释实施例,其中:
图1A示出了了计算系统的实施例,所述计算系统包括两个不同的索引队列和至少一个吞吐量阈值门,该吞吐量阈值门用于将文件归类成不同的索引队列以用于处理待由至少一个索引引擎索引的文件;
图1B示出了了计算系统的实施例,所述计算系统包括三个不同的索引队列和至少一个吞吐量阈值门,该吞吐量阈值门用于将文件归类成不同的索引队列以用于处理待由不同的对应索引引擎索引的文件;
图1C示出了了计算系统的实施例,所述计算系统包括两个不同的索引队列和多个吞吐量阈值门,所述吞吐量阈值门用于将文件归类成不同的索引队列以用于处理待由至少一个索引引擎索引的文件;
图1D示出了计算系统的实施例,所述计算系统包括吞吐量阈值门,所述吞吐量阈值门用于将文件归类成不同的对应索引队列以用于处理待由至少一个索引引擎索引的文件;
图2示出了用于动态地修改用来将各个文件分配至不同的索引队列以供随后索引的吞吐量阈值的至少一种方法的流程图;并且
图3示出了用于动态地调节索引参数和/或用于动态地修改用来将各个文件分配至不同的索引队列以供随后索引的吞吐量阈值的至少一种方法的另一流程图。
具体实施方式
所公开实施例的一些方面用于解决与电子文件的计算机索引相关联的技术问题。
电子文件的计算机索引至少部分地由于不同电子文件之间的可变性而在一定程度上是不可预测的。例如,电子文件可以在类型、格式、大小、可访问性、一致性、存储位置、和/或可用性方面有所改变。用于索引的计算机资源的可用性也可能由于网络需求的波动而改变。
有时,期望将经索引文件的新鲜度和/或包容性维持在某个水平。然而,至少出于在上文中所提及的原因,这会是困难的。
现有系统通常预先确定在索引期间用来爬取和扫描电子文件的索引软件的参数。例如,许多索引系统预先确定要扫描的文件的范围,并且预先分配某一数量的计算资源至新文档的扫描和索引,且分配某一数量的计算资源以扫描和重新索引已经被索引的文件。当一组有限的资源中有过多被分配用于扫描和索引新的文件时,索引的新鲜度可能会受到损害。可替代地,当有限的资源中有过多被分配用于扫描和重新索引已索引的文件时,索引的包容性会受到损害。至少在这方面,现有索引系统太过僵化且受限,这使其难以维持期望的水平的索引新鲜度和/或包容性。
这些问题当在索引范围内的创建或修改文件的速度超过索引能力的增长或者遇到由于其大小和/或复杂度而特别难以处理且能够形成索引队列的瓶颈的一个或多个文件时更加明显。处理器能力和资源可用性的周期性波动也会使得索引过程进一步降级。
在一些情况下,所公开实施例的技术效果能够通过显著地降低响应于动态条件而调节索引系统所需的用户交互的数量来帮助克服前述问题中的一些问题,并且帮助获得或维持期望水平的索引新鲜度或包容性。
该技术效果还包括通过对索引期间所发生的计算机能力和资源可用性的波动以及对索引期间所遇到的特别难以处理的文件的存在进行自动且动态地调剂所引起的计算机处理的效率增加。
现在将参考动态阈值门来描述各种方法、系统、和存储设备,所述动态阈值门用于动态地调节索引参数并且修改用于索引队列的吞吐量阈值。
所公开的索引过程包括对电子文件进行评估和扫描以确定在文件内所包含的数据的组成以及文件本身的特性。接着,每个文件可选择地基于每个文件的特性以及与不同索引队列中的每个索引队列相关联的吞吐量阈值而选择性地被分配至合适的索引队列。
该文件接着根据与对应的索引队列和索引引擎中的每个相关联的处理能力和吞吐量阈值而进行索引。接着,在索引已经开始之后并且在检测到经索引文件中的一个或多个经索引文件的动态特性的改变之后,修改吞吐量阈值以获得、维持、或修改针对一个或多个索引队列的期望的吞吐量。
现在将关注图1A-1D,它们示出了可以用于实现所要求保护的发明的方面的计算环境100的各种实施例。在这些实施例中的每个实施例中,一个或多个动态阈值门用于分配或者以其他方式控制不同电子文件至合适的索引队列的分配。这些吞吐量阈值门被称为动态的是因为它们基于所检测到的经索引文件的动态特性的改变而动态地修改它们的阈值以用于将电子文件分配至不同的队列。
所述动态阈值门在本文中被称为“阈值门”、“吞吐量阈值门”和“吞吐量阈值”。动态阈值门的各种配置在图1A-1D中被示为非限制性示例。在本发明的范围内还能够利用其他配置。
如在图1A中所示出的,用于索引电子文件的计算环境100可以包括能够访问来自一个或多个源120的电子文件的计算系统110。源120可以是单个源、多个分布式且远程定位的源、多个个体联网本地源、和/或所示出的计算系统(110)的一部分。
在一些实施例中,源120是包含通过一个或多个网络连接130而被提供至计算系统110的不同文件140的应用或存储设备。
文件140中的每个文件是以一种或多种不同文件格式存储的电子文件。作为示例,电子文件140可以包括文字处理文件、数据库文件、多媒体文件、图形图像文件、和/或以任何类型的文件格式存储的任何其他类型的电子文件。
文件140可以包括不同的特性,例如不同的大小和组成。例如,一些文件可以只有几千字节或几兆字节,而其他文件的大小则可能是几千兆字节或更大。一些文件也可以仅由单一类型的内容组成(例如,仅文本和字符),而其他文件则包括不同数据类型或格式的混合组成(例如,包含文本、图像、和视频内容的演示文档)。
所述文件还可以包括不同的存储状态(例如,易失性、非易失性、磁盘、硬盘驱动器、合并的、分布式、本地的、远程的、云等)以及不同的可访问性状态(例如,加密、压缩、网络连通性等)。
网络连接130可以包括用于发送数据的不同网络信道的任何组合,包括共享网络信道和私有网络信道。网络连接130还能够包括有线网络连接和无线网络连接的任何组合。
计算系统110访问或以其他方式获取来自一个或多个源的电子文件,并且对所述电子文件执行各种处理以便对它们进行索引。这些索引处理能够包括扫描文件、解析文件中的数据、将文件中的内容引用或映射至一个或多个索引。在一些实例中,索引处理还能够包括解密、解压缩、组装、追寻链式数据、或者获取或分析文件内的数据所需的任何其他处理。
如在上文中所指示的,计算系统110可以采用各种配置以便以足以提供在本文中所提及的技术优点的方式来执行必要处理,并且至少用于动态地修改由阈值门所控制的索引参数和吞吐量阈值。现在将参考图1A-1D来描述计算系统100的四种具体配置。
在图1A的实施例中,电子文件140被示出为源自于单个节点。然而,该节点被记为源120,并且因此可以包括节点的任何组合。例如,文件源在图1B中被示出为分别的源120、122、和124。这些源中的每个源可以包括内联网的源和/或互联网的源。所述源还可以包括单个机器的不同组件。例如,源124可以包括单个主机计算机,其具有在该主机上运行的多个虚拟机126和128。
图1A还示出了作为个体的组件的动态吞吐量阈值门(170)、索引引擎160、和存储设备144。然而,应当理解的是,这些组件中的每个组件可以包括如在下文中更加详细地描述的合并的和分布式组件的任何组合。图1B将图1A的索引引擎160示出为多个离散的索引引擎162、164、和166,它们各自专用于不同的对应索引队列(即,主索引队列180、辅索引队列182、和另一索引队列184)。还提供了椭圆形以示出计算系统100可以包括任何数量的索引队列。
尽管不是必须的,但是主索引队列可以比辅索引队列更高效地处理文件。这例如可以通过计算系统110向主索引队列应用比辅索引队列更多的资源来进行。同样地,与被分配至辅索引队列的索引引擎相比,被分配至主索引队列的索引引擎可以更加高效地进行操作或者具有更好的能力。
不同队列中的每个队列被分配了不同的吞吐量阈值要求或索引参数,它们由动态阈值门用来基于具有匹配文件特性的文件而将文件分配至不同的队列。针对队列中的每个队列的吞吐量阈值要求或索引参数能够由计算系统存储在一个或多个存储设备140中。
现在关注图1C的实施例,其类似于图1A的实施例,区别在于图1A的吞吐量阈值门被示出为多个分别的吞吐量阈值门(172、174、176、和178)。
图1C的存储设备144还利用索引性能分析模块148来修改,并且阈值参数154被拆分成主阈值参数156和辅阈值参数158以示出存储设备144中的组件可以包括合并的和分布式配置的任何组合。
在图1C中,电子文件140还被补充有具有混合内容的额外的文件,所述混合内容包括可索引内容147(即,能够由索引引擎索引的内容)和不可索引内容149(即,由于内容类型或格式、规则、时间约束、不兼容性、和/或任何其他原因而索引引擎无法索引的内容)。由动态阈值门所控制的不同的索引参数和阈值可以确定哪些内容是可索引的而哪些内容是不可索引的,以适应不同的需求和偏好。
在图1D中所示出的最后的实施例类似于图1B的实施例,区别在于图1B的动态吞吐量阈值门的合并配置被示出为个体阈值门A(173)、个体阈值门B(175)、和个体阈值门C(177),它们中的每一个分别对应于分别的索引队列180、182、和184。
如在前述示例中的每个示例中所描述的计算系统110可以被实施为一个或多个个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程的消费性电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机等。
本发明的方面还可以在分布式系统环境中实践,其中,通过网络来链接(通过硬线数据链路、无线数据链路、或者通过硬线数据链路和无线数据链路的组合)的本地和远程计算机系统两者都执行与所公开的方法相关联的任务。由此,在分布式系统环境中,计算机系统110还可以包括多个组成计算机系统,包括但不限于源120。在分布式系统环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中,包括存储设备144。
本领域技术人员还将理解的是,可以在云计算环境中实践本发明。云计算环境可以是分布式的,尽管不是必须如此。当是分布式时,云计算环境可以在组织内国际地分布和/或具有跨多个组织所拥有的组件。在该描述和以下的权利要求中,“云计算”可以被定义为用于使能针对可配置计算资源(例如,网络、服务器、存储、应用、和服务)的共享池进行按需网络访问的模型。“云计算”的定义不限于能够在适当地被部署时从这样的模型获得的其他多种优点中的任何优点。
可替代地或另外地,在本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
由此,在该描述以及权利要求中,术语“计算系统”被宽泛地定义为包括任何设备或系统(或其组合),其包括至少一个物理的和有形的处理器,以及其上能够具有能够由处理器执行的计算机可执行指令的物理的和有形的存储器。
本发明范围内的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。计算机可执行指令是指能够由一个或多个处理器执行以使得计算系统110执行在本文中所描述的所要求保护的功能的软件对象、路由、或方法。就这一点而言,应当注意的是,在本文中所描述的不同的组件、模块、引擎、和服务可以被实现为在计算系统110上执行的对象或处理(例如,作为分别的线程)。计算机可执行指令例如可以是二进制码、诸如汇编语言之类的中间格式指令、或者甚至是源代码。这些计算机可执行指令或模块包括阈值门修改模块146和索引性能分析模块148。
存储计算机可执行指令的计算机可读介质可以是能够由通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种不同类型的计算机可读介质:计算机存储介质和计算机传输介质。
计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储设备。物理硬件存储介质包括计算机硬件,例如RAM、ROM、EEPROM、固态驱动器(SSD)、闪速存储器、相变存储器(PCM)、光盘存储、磁盘存储或其他磁存储设备、或者能够用来以计算机可执行指令或数据结构的形式存储程序代码的任何其他硬件存储设备,其中所述计算机可执行指令或数据结构能够由通用或专用计算机系统来访问和执行以实现本发明所公开的功能。
传输介质可以包括能够用于以计算机可执行指令或数据结构的形式承载程序代码并且能够由通用或专用计算机访问的网络和/或数据链路。“网络”被定义为使能在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬线、无线、或硬线或无线的组合)被传输或提供至计算机系统时,所述计算机系统能够将该连接视为传输介质。以上的组合也应当被包括在计算机可读介质的范围之内。
除了存储前述计算机可执行指令之外,计算系统110的存储设备还存储一个或多个索引150、索引度量152、以及阈值参数154,其包括主阈值参数156和辅阈值参数158。存储设备144还存储用于实例化吞吐量阈值门、索引引擎、和索引队列的计算机可执行指令。
现在将具体参考图2和图3来对用于实现所公开的实施例的各种方法进行描述。当所公开方法的所引用的动作是以软件来实现的时,计算系统110的一个或多个处理器140响应于已经执行了由软件所定义的所存储的计算机可执行指令而执行动作并引导计算系统110的操作。
图2示出了用于使用动态阈值门来动态地修改索引队列的索引参数和吞吐量阈值的一个实施例的流程图200。
如图所示,所示出的方法包括识别吞吐量阈值门的动作(动作210)和识别文件的动作(动作220)。该文件可以包括以任何类型的格式存储在一个或多个不同存储位置中的任何类型的电子文件。所述文件可以是在不同位置中和/或以不同格式存储的单个合并文件或分布式文件。
在图1A-1D中所示出的文件140是利用不同形状(即,正方形142、圆形144、三角形146、和矩形147、148)示出的。这些形状示出了可以如何利用不同的特性来配置不同的文件140。差异可以包括文件类型、格式、加密、存储位置、一致性、源的差异,和/或能够在索引文件之前由计算系统110检测到的任何其他差异。这些特性被称为静态文件特性。
计算系统110能够通过检查与文件相关联的元数据来识别每个文件的静态特性(动作230)。所述文件可以包含元数据,或者所述元数据可以由另一资源或索引所引用。计算系统还可以执行解密、认证、解压缩、编译、解析、转译、和/或追寻链接以检查文件的数据,并且进一步识别文件的特性。这还可以包括确定文件是包括单一类型的内容还是多种不同类型的内容。取决于由计算系统110所定义的索引参数和能力,所述文件可以包含一部分被认为是可索引的内容和/或一部分被认为是不可索引的内容。
在一些实施例中,文件特性的识别还包括修改文件以便使其具有不同特性。该修改可以包括修改元数据和/或修改文件的实际内容。
一旦确定了文件的静态特性(动作230),该文件就选择性地被分配至具有匹配阈值参数或要求的一个或多个主索引队列或辅索引队列(动作240)。由此,该处理还可以包括确定与不同的队列中的每个队列相关联的吞吐量阈值和其他索引参数。
动态阈值门能够参考与来自存储设备144的索引队列中的每个索引队列相对应的索引参数或其他吞吐量阈值要求。
所述阈值参数能够包括主阈值参数(例如,文件类型、文件大小、文件中被认为是可索引的百分比、文件中被认为是不可索引的百分比、文件源、文件组成、或者任何其他文件特性)以及辅阈值参数(例如,计算机能力、索引文件所需的时间和/或资源、或者不认为是文件特性的任何其他参数)的任何组合。
在被分配至合适的队列之后(动作240),所述文件由一个或多个对应的索引引擎进行索引。如在上文中所指示的,索引队列可以包括一个或多个主索引队列和辅索引队列的任何组合。索引引擎还可以被配置为专用或合并索引引擎以按照需要并列地或顺序地索引文件。同样地,动态吞吐量阈值门也可以被配置为合并或分别的组件从而顺序地或并列地处理和检查文件。
吞吐量门还可以被配置有不同组的能力或吞吐量阈值要求。例如,这是由应用至门172、174、176、和178的不同形状示出的,其中,门中的每个门被配置为识别不同的特性以用于将文件分配至主索引队列和辅索引队列。
作为示例,门172可以将大小特别大的所有文件标识至辅队列182并且将大小范围特别小的所有文件标识至主队列180。门174可以将第一类型的所有文件标识至主队列180,而将第二类型的所有文件标识至辅队列182或另一队列。其他门176和176也可以基于不同的文件特性和队列阈值要求而将不同文件分配至不同队列。
在另一示例中,不同的门(172、174、176和178)中的每个门被分配至或专用于文件的不同源,以使得来自第一源的文件由门172检查而来自第二源的文件则由门174或另一门检查。
在另一示例中,文件最初由门172、174、和176中的任何一个来访问和检查。接着,当检测到特别难以处理的文件时,其就被分配至执行额外的处理以进一步检查文件并且进行合适的队列分配的专门的门178。所述额外的处理可以包括追寻链接、组合分布式内容、转译、解密、解压缩、解析、或者不由其他门执行的任何其他过程。
无论文件如何被分配至特定的队列,其最终都被索引。然而,在索引已经开始之后,动态条件会影响其他文件的继续索引。例如,增加的网络需求会暂时地降低处理能力。同样地,特定类型的文档的增加会将资源扩展至预期的限制以外。
本实施例通过以下方式来处理这些动态环境:首先检测经索引文件的一个或多个动态特性的改变(动作250),并且接着自动地修改吞吐量阈值门(260)以指定或应用不同的吞吐量阈值或索引参数以用于将文件分配至索引队列(动作260)。
动态特性的改变的检测(动作250)例如可以通过索引性能分析模块148随时间来检查和/或追踪一个或多个索引度量152以基于平均或绝对值来检测度量中的一个或多个度量的改变来完成。
同样地,对吞吐量阈值门的修改可以通过由阈值门修改模块146对由阈值门将文件分配至索引队列所使用的吞吐量阈值或索引参数进行修改来完成。在一些实例中,这包括索引与不同队列中的一个或多个不同队列相关联的索引参数或吞吐量阈值。
用来确定动态索引特性已经发生了改变的索引度量可以包括标识索引文件的时间、文件的大小、文件的类型的度量、或者与经索引文件的特性相关联的任何其他度量。索引度量还可以包括由阈值门修改模块146用来确定动态特性已经发生改变(动作250)的平均值、范围、统计分布、或者其他统计数据。
在一个实施例中,动态改变包括所检测到的用于索引一个或多个文件的时间的降低,这引起用于索引的时间的平均值或绝对值超越预先确定的阈值。该系统接着可以通过以下方式来进行响应,降低与主索引队列相关联的索引参数来改变吞吐量阈值要求从而自动地修改吞吐量阈值门(动作260),以使得较少的文件被分配至主索引队列。
在另一个实施例中,动态改变包括所检测到的文件或索引的新鲜度至少在预先确定的时间段内的降低,并且其中修改吞吐量阈值门包括通过增加与主索引队列相关联的索引约束或参数来改变吞吐量阈值要求,以使得较少的特定类型的文件(例如,大文件或难以处理的文件)被分配至主索引队列。这将使得更多文件能够被主索引队列快速地索引。
在另一个实施例中,动态改变包括所检测到的文件或索引的新鲜度的增加,并且其中修改吞吐量阈值门包括通过降低与主索引队列相关联的索引约束或参数来改变吞吐量阈值要求,以使得较少文件被分配至主索引队列。这会降低新鲜度但是通过使得更多类型的文件能够被扫描(即使它们需要更长时间来扫描)来提高索引的包容性。
在另一个实施例中,所检测到的改变是所检测到的被索引的特定文件类型的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得更多的特定文件类型的文件被分配至主索引队列。
在另一个实施例中,所检测到的改变是所检测到的针对分布式系统中的特定节点而被索引的文件的数量的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得该特定节点的更多文件被分配至主索引队列。
在另一个实施例中,所检测到的改变是所检测到的被索引的特定大小的文件的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得更多该特定大小的文件被分配至主索引队列。
在另一个实施例中,所检测到的改变是针对文档的工作集所检测到的与一个或多个搜索结果相对应的工作集精确度的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得特定工作集中的更多文件被分配至主索引队列。
在另一个实施例中,所检测到的改变是所检测到的计算系统的处理能力的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得较少的文件被分配至主索引队列。
在另一个实施例中,所检测到的改变是所检测到的新创建的经索引文件相对于比所述新创建的经索引文件更旧的文件的百分比的降低,并且其中修改吞吐量阈值门包括改变针对主索引队列的吞吐量阈值要求以使得较少的更旧的文件被分配至主索引队列。
如在上文中所提到的,对吞吐量阈值门的修改在一些实例中可以仅在首先检测到动态特性的改变持续预先确定的时间段之后进行。所述预先确定的时间段可以由管理员设置,或者基于历史先例来调节。例如,所述预先确定的时间段可以基于季节、一天中的时间、客户端/源、软件发布等。
作为示例,如果历史先例指示每当客户端发布新软件时,要扫描的特定类型的经修改的文件都有显著增加(这通常持续大约10小时),则每当该客户端提供另一个新发布时,预先确定的时间段可以被手动地或自动地设置为10小时,以使得系统仅在针对所检测到的从该客户端索引的特定类型的文件的改变而该阈值被超出的情况下对门进行修改。
在另一个示例中,历史先例可能指示计算资源的可用性在每天的几个小时内(例如,在峰值联网时段)有所降低,在此期间索引新鲜度也由于索引处理的相对应降级而降低。在该示例中,该预先确定的时间段可以被设置为至少覆盖峰值联网时段的历史持续时间。
在一些实施例中,在修改吞吐量阈值门之前,所公开的方法还包括向用户通知所检测到的改变,并且等待直到用户提供了用于使得对吞吐量阈值门进行修改的用户输入为止。该通知例如可以利用管理员界面通知、电子邮件或文本通知、或者任何其他合适的通知来实现。用于修改阈值门的用户输入也可以在一个或多个界面处被输入。
在图3中所示出的另一个实施例中,流程图300示出了计算系统如何首先识别索引变量(动作310),并且接着确定需要对吞吐量阈值的改变(动作320)。应当理解的是,索引变量可以包括前述文件特性、吞吐量阈值和索引参数、以及经索引文件的动态特性的任何组合。
该系统可以通过将索引变量与历史数据进行比较(动作330)和/或预先确定的时间阈值(动作340)来确定需要如在上文中所建议的改变(动作320)。当需要改变时,其可以简单地由动态阈值门在通知用户(动作360)和接收用户输入(动作370)之前或之后来进行(动作350)。
前述实施例可以用于响应于动态条件而自动地调节索引系统,并且帮助获得或维持所期望水平的索引新鲜度或包容性。这些实施例还可以用来对在索引期间出现的计算机能力和资源可用性的波动以及在索引期间所遇到的特别难以处理的文件的存在而动态地进行调节。
尽管已经用特定于结构特征和/或方法动作的语言描述了该主题,但是应当理解的是,在所附权利要求书中所定义的主题不一定限于在上文中所描述的特征或动作,或者在上文中所描述的动作的顺序。相反,所描述的特征和动作是作为实现权利要求的示例性形式而公开的。因此,落入权利要求的含义和等同的范围之内的所有改变都被包含在其范围之内。

Claims (10)

1.一种计算系统,包括:
至少一个处理器;
存储有计算机可执行指令的至少一个存储介质,所述计算机可执行指令当由所述至少一个处理器执行时,使得所述计算系统通过执行以下操作来动态地修改用于索引队列的吞吐量阈值:
识别用于索引文件的吞吐量阈值门,所述吞吐量阈值门指定吞吐量阈值要求,所述吞吐量阈值要求用于基于新文件的静态文件特性来将所述新文件分配至不同的索引队列,所述不同的索引队列包括主索引队列以及一个或多个辅索引队列;
识别具有特定静态文件特性的文件;
确定所述特定静态文件特性;
基于所述吞吐量阈值和所述文件的所述特定静态文件特性而将所述文件分配至或者所述主索引队列或者所述一个或多个辅索引队列;
检测一个或多个经索引文件的动态特性的改变;以及
基于所检测到的所述一个或多个经索引文件的所述动态特性的改变而动态地修改所述吞吐量阈值门。
2.根据权利要求1所述的计算系统,其中,所述计算系统还执行以下操作:
仅在首先检测到所述动态特性的改变持续预先确定的时间段之后修改所述吞吐量阈值门。
3.根据权利要求1所述的计算系统,其中,所检测到的改变是引起用于索引的时间的平均值或绝对值超越预先确定的阈值的检测到的用于索引一个或多个文件的时间的降低,并且其中,修改所述吞吐量阈值门包括通过降低与所述主索引队列相关联的索引参数来改变所述吞吐量阈值要求以使得较少的文件被分配至所述主索引队列。
4.根据权利要求1所述的计算系统,其中,所检测到的改变是所检测到的文件新鲜度的降低,并且其中,修改所述吞吐量阈值门包括通过增加与所述主索引队列相关联的索引参数来改变所述吞吐量阈值要求以使得较少的文件被分配至所述主索引队列。
5.根据权利要求1所述的计算系统,其中,所检测到的改变是所检测到的文件新鲜度的增加,并且其中,修改所述吞吐量阈值门包括通过降低与所述主索引队列相关联的索引参数来改变所述吞吐量阈值要求以使得较少的文件被分配至所述主索引队列。
6.根据权利要求1所述的计算系统,其中,所检测到的改变是所检测到的所述计算系统的处理能力的降低,并且其中,修改所述吞吐量阈值门包括改变针对所述主索引队列的吞吐量阈值要求以使得较少的文件被分配至所述主索引队列。
7.根据权利要求1所述的计算系统,其中,所述一个或多个辅队列包括多个辅队列,每个辅队列具有与所述静态文件特性相对应的不同吞吐量阈值要求。
8.根据权利要求1所述的计算系统,其中,所述计算系统还执行以下操作:
在修改所述吞吐量阈值之前,将所检测到的改变同与所检测到的改变相关联的一个或多个历史先例进行比较,以确定所检测到的改变超过所述一个或多个历史先例。
9.一种计算机程序产品,其包括存储有计算机可执行指令的一个或多个计算机可读介质,所述计算机可执行指令当由计算机系统的至少一个处理器执行时,实现用于动态地修改索引队列的吞吐量阈值的方法,所述计算机实现的方法包括:
识别用于索引文件的吞吐量阈值门,所述吞吐量阈值门指定要求,所述要求用于基于新文件的静态文件特性来将所述新文件分配至不同的索引队列,所述不同的索引队列包括主索引队列以及一个或多个辅索引队列;
识别具有特定静态文件特性的文件;
确定所述特定静态文件特性;
其中,所述吞吐量阈值门基于所述吞吐量阈值要求和所述文件的所述特定静态文件特性而将所述文件分配至或者所述主索引队列或者所述一个或多个辅索引队列中;
检测一个或多个经索引文件的动态特性的改变;以及
基于所检测到的所述一个或多个经索引文件的所述动态特性的改变而修改所述吞吐量阈值门以指定不同的吞吐量阈值要求。
10.一种计算系统,包括:
至少一个处理器;
存储有计算机可执行指令的至少一个存储介质,所述计算机可执行指令当由所述至少一个处理器执行时,使得所述计算系统通过执行计算机实现的方法来动态地修改用于索引队列的吞吐量阈值,所述计算机实现的方法包括:
识别用于索引文件的吞吐量阈值,所述吞吐量阈值指定要求,所述要求用于基于新文件的静态文件特性来将所述新文件分配至不同的索引队列,所述不同的索引队列包括主索引队列以及一个或多个辅索引队列;
识别一个或多个索引变量的一个或多个值;
至少部分地基于确定所述一个或多个值在与历史数据值相关联的预先确定的范围之外并且在确定其中所述一个或多个值在与所述历史数据值相关联的所述预先确定的范围之外的时间阈值已经被超出时,确定所述吞吐量阈值中的至少一个吞吐量阈值需要改变;以及
修改所述吞吐量阈值以使得需要不同的要求以用于将新文件分配至所述主索引队列或者所述一个或多个辅索引队列。
CN201680013255.9A 2015-03-02 2016-03-02 用于索引队列的动态阈值门 Active CN107408127B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/635,093 US9940328B2 (en) 2015-03-02 2015-03-02 Dynamic threshold gates for indexing queues
US14/635,093 2015-03-02
PCT/US2016/020304 WO2016140991A1 (en) 2015-03-02 2016-03-02 Dynamic threshold gates for indexing queues

Publications (2)

Publication Number Publication Date
CN107408127A true CN107408127A (zh) 2017-11-28
CN107408127B CN107408127B (zh) 2020-10-27

Family

ID=55524467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680013255.9A Active CN107408127B (zh) 2015-03-02 2016-03-02 用于索引队列的动态阈值门

Country Status (4)

Country Link
US (1) US9940328B2 (zh)
EP (1) EP3265931A1 (zh)
CN (1) CN107408127B (zh)
WO (1) WO2016140991A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449495B2 (en) * 2017-02-01 2022-09-20 United Parcel Service Of America, Inc. Indexable database profiles comprising multi-language encoding data and methods for generating the same
US11526466B2 (en) * 2019-08-23 2022-12-13 Salesforce, Inc. Uniform growth for differently sized files

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155132A (zh) * 2006-09-27 2008-04-02 中兴通讯股份有限公司 一种间接实时流量控制系统及其方法
US20110153589A1 (en) * 2009-12-21 2011-06-23 Ganesh Vaitheeswaran Document indexing based on categorization and prioritization
US20110191347A1 (en) * 2010-02-01 2011-08-04 Stratify, Inc. Adaptive routing of documents to searchable indexes

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607135B2 (en) * 2001-06-15 2009-10-20 Hewlett-Packard Development Company, L.P. Apparatus and method for enhancing performance of a computer system
GB2417342A (en) * 2004-08-19 2006-02-22 Fujitsu Serv Ltd Indexing system for a computer file store
US7733894B1 (en) * 2005-12-14 2010-06-08 Juniper Networks, Inc. Dynamic queue management
US20070143460A1 (en) 2005-12-19 2007-06-21 International Business Machines Corporation Load-balancing metrics for adaptive dispatching of long asynchronous network requests
US7886042B2 (en) 2006-12-19 2011-02-08 Yahoo! Inc. Dynamically constrained, forward scheduling over uncertain workloads
NO327653B1 (no) 2007-12-20 2009-09-07 Fast Search & Transfer As Fremgangsmate for dynamisk oppdatering av en indeks og en sokemotor som implementerer samme
US8489565B2 (en) * 2009-03-24 2013-07-16 Microsoft Corporation Dynamic integrated database index management
US20110125726A1 (en) * 2009-11-25 2011-05-26 Microsoft Corporation Smart algorithm for reading from crawl queue
US8346999B2 (en) * 2009-12-15 2013-01-01 Intel Corporation Dynamic receive queue balancing with high and low thresholds
US9116990B2 (en) * 2010-05-27 2015-08-25 Microsoft Technology Licensing, Llc Enhancing freshness of search results
US9843540B2 (en) * 2013-08-26 2017-12-12 Vmware, Inc. Traffic and load aware dynamic queue management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155132A (zh) * 2006-09-27 2008-04-02 中兴通讯股份有限公司 一种间接实时流量控制系统及其方法
US20110153589A1 (en) * 2009-12-21 2011-06-23 Ganesh Vaitheeswaran Document indexing based on categorization and prioritization
US20110191347A1 (en) * 2010-02-01 2011-08-04 Stratify, Inc. Adaptive routing of documents to searchable indexes

Also Published As

Publication number Publication date
US9940328B2 (en) 2018-04-10
CN107408127B (zh) 2020-10-27
US20160259785A1 (en) 2016-09-08
WO2016140991A1 (en) 2016-09-09
EP3265931A1 (en) 2018-01-10

Similar Documents

Publication Publication Date Title
EP3267310B1 (en) Data processing method and device
US10114682B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
US20190324809A1 (en) Method, apparatus, and computer program product for processing computing task
US10235625B1 (en) Automatically scaling neural networks based on load
US11106506B2 (en) Mapping resources to each layer of a neural network model based computing task
KR102199275B1 (ko) 분산 컴퓨팅 시스템에서의 적응적 리소스 관리
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
US9886310B2 (en) Dynamic resource allocation in MapReduce
US11425000B2 (en) On-the-fly reorganization of directed acyclic graph nodes of a computing service for high integration flexibility
CN109726004B (zh) 一种数据处理方法及装置
US20160012107A1 (en) Mapping query operations in database systems to hardware based query accelerators
CN106557369A (zh) 一种多线程的管理方法及系统
US10884839B2 (en) Processing system for performing predictive error resolution and dynamic system configuration control
US11288367B2 (en) Scanning files using antivirus software
US11256547B2 (en) Efficient allocation of cloud computing resources to job requests
US10963309B2 (en) Network interface controller-based scheduling of processing tasks in a distributed computing system
US20160179891A1 (en) Methods and systems for load balancing databases in a cloud environment
US20170193541A1 (en) Agricultural products processing center adaptive analysis system and processing method thereof
DE102022105725A1 (de) Verfahren und einrichtungen zur durchführung von gewichtungs- und aktivierungskomprimierung und -dekomprimierung
US9386087B2 (en) Workload placement in a computer system
CN102831102A (zh) 一种在计算机集群上进行矩阵乘积运算的方法和系统
CN107408127A (zh) 用于索引队列的动态阈值门
CN113076224A (zh) 数据备份方法、数据备份系统、电子设备及可读存储介质
US9703573B1 (en) Interposer for dynamic mapping of API calls
US11687602B2 (en) Efficient use of computing resources in responding to content requests

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant