CN104854582B - 存储高效、更新优化的事务型全文索引视图维护的方法和*** - Google Patents
存储高效、更新优化的事务型全文索引视图维护的方法和*** Download PDFInfo
- Publication number
- CN104854582B CN104854582B CN201380050962.1A CN201380050962A CN104854582B CN 104854582 B CN104854582 B CN 104854582B CN 201380050962 A CN201380050962 A CN 201380050962A CN 104854582 B CN104854582 B CN 104854582B
- Authority
- CN
- China
- Prior art keywords
- blacklist
- bitmap
- index
- database
- primary index
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
方法和***针对更新优化和存储高效的事务型全文索引视图维护的方法。实施例包括在任意特定时间发生大量更新的情况下降低维护事务型索引视图的开销需求的方法和***。该方法涉及在更新的事务型查询间间维护单个黑名单位图、当需求新的视图时向位图应用最新的一组更新,以及当创建了事务型视图时对位图进行后调整以保证应当可见的条目未被移除。
Description
背景技术
全文索引***,例如搜索引擎索引算法和文档检索***,典型地利用倒排索引(或“记入文件”)作为索引数据结构,该索引数据结构存储从内容(例如,词或数字)到数据库文件或文档中位置的映射。倒排索引通常允许快速搜索操作,但当向数据库中增加文档时可能导致更多的处理。通过创建正向索引来形成倒排索引,正向索引存储每个文档的字列表,该正向索引然后被转化以创建倒排索引,倒排索引根据每个字列出文档。由于不需要使用正向索引顺序地重复每个文档和每个字来验证匹配文档,这加速了查询过程。在创建了倒排索引的情况下,可通过经由倒排索引中的随机访问操作跳至字标识符来解决查询。
对全文索引环境应用更新通常是一项具有挑战性的任务,因为倒排索引是为了快速查询而不是为了更新而设计的。将被删除的条目列入黑名单是一种阻止访问被删除条目的常见技术,并且一般而言比直接更新它们更加高效。也就是说,当被列入黑名单时,被删除对象实质上被虚拟地删除,如同在查询过程中一开始存在但在查询操作完成之前被过滤掉了。一旦(在正常的合并操作期间)索引被重建,物理删除将反映到索引上。需要这个过程是因为对黑名单对象的后查询过滤损害了查询性能。
这样的方法与被设计为支持低延迟直接更新的典型关系数据库的B-树索引形成对照。更新高效的性能允许关系型B-树索引被用于联机事务处理(OLTP)应用及其它需要低延迟更新的应用。然而,该索引方法的不利之处在于,它不能提供倒排全文索引更高价值的模糊搜索。
与低延迟事务型数据库***不同,典型的全文环境在反映更新上具有非常高的延迟。在较旧的静态版本被查询的同时,全文数据库***收集所有变化并将它们应用到新版本的索引上。这个过程意味着需要花几分钟到几小时的时间来反映和应用更新。结果,为了信息检索应用中所使用的高质量搜索,这些应用牺牲了低延迟更新。
黑名单位图是一种记录了至少一个不能与服务同时共享资源的服务的位图。事务型查询视图的结构不仅包括确定要使用的一组索引,还包括获取反映最近变换的最新版本的黑名单位图。黑名单位图必须在另一事务完成后重新创建以反映***的当前变化。在许多情况下,可能只是从永久黑名单结构中重建黑名单位图。然而,在任何特定时间发生大量更新的情况下,由于扫描和使用黑名单项目的列表来创建新的黑名单位图,该过程可能变得代价高得不可接受。
该黑名单位图的重建可在不同事务的用户之间共享,只要他们的事务型视图本质上相同。然而,读事务开始和结束在不同的时间而写事务可能在这些完成之间发生。这导致了多个并行的读事务具有不同的黑名单位图。这些独特的黑名单位图视图的创建可导致查询花费大约多达一分钟的时间,因为要处理成百上千的黑名单条目来创建该视图。
因此,需要一种在大量更新的情况下减少维护事务型索引视图开销的改进方法。
附图说明
通过结合附图阅读本说明书,所要求保护的主题的优点对于本领域技术人员来说将是显而易见的,附图中使用相似的参考数字指代相似的元素,并且其中:
图1是说明可在其中实现本主题的示例硬件设备的模块图;
图2说明了在实施例下应用更新的示例全文索引环境;
图3说明了在实施例下在全文索引环境中更新文档的过程;
图4说明了在实施例下取决于事务行为的文档的不同视图从而说明位图高速缓存方法的操作;
图5说明了在实施例下单个全局位图高速缓存的使用;
图6A是说明在实施例下在全文环境中维护索引的方法的流程图;
图6B是说明在实施例下维护单个黑名单位图的方法的流程图。
具体实施方式
本文介绍的主题提供了一种用于事务型全文索引视图维护的更新优化和存储高效的方法。实施例针对在任何特定时间发生大量更新的情况下减少维护事务型索引视图开销需求的方法和***。该方法涉及在更新的事务型查询视图间维护单个黑名单位图、当新的视图被请求时将最新的一组更新应用到位图,以及当创建了事务型视图时对位图进行后调整以保证应当可见的条目未被移除。为了获得对全文索引更低延迟的、事务型的更新,使用多索引和黑名单索引条目的组合。对数据库的更新被放在新的倒排索引中并且相应的项目以较旧索引被列入黑名单。当执行查询时,黑名单典型地被转换为允许查询有效地过滤出结果文档(它们呈现为线性文档标识符)的位图并且查询在所有索引间执行。
在详细描述本主题之前,将首先描述在其中可以实现本主题的示例性硬件设备。本领域普通技术人员将意识到,图1中所示的元件可根据***实现而变化。参考图1,用于实现本文公开的本主题的示例性***包括硬件设备100,其包括处理器102、存储器104、存储设备106、数据输入模块108、显示适配器110、通信接口112以及将元件104-112耦合到处理器102的总线114。
总线114可包括任何类型的总线架构。例子包括存储器总线、***总线、本地总线等。处理器102为指令执行机器、装置或设备并且可包括微处理器、数字信号处理器、图形处理单元、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理器102可被配置为执行存储器104和/或存储设备器106中所存储的和/或经由数据输入模块108所接收的程序指令。
存储器104可包括只读存储器(ROM)116和随机存取存储器(RAM)118。存储器104可被配置为在设备100操作期间存储程序指令和数据。在各种实施例中,例如存储器104可包括多种存储器技术中的任何一种,例如静态随机存取存储器(SRAM)或动态RAM(DRAM),包括各种变型例如双倍数据速率同步DRAM(DDR SDRAM)、纠错码同步DRAM(ECC SDRAM)、或RAMBUS DRAM(RDRAM)。存储器104也可包括非易失性存储器技术例如非易失性闪存RAM(NVRAM)或ROM。在一些实施例中,可以预期存储器104可包括诸如前述技术以及未特别提及的其他技术的组合。当在计算机***中实现本主题时,ROM 116中存储有基本输入/输出***(BIOS)120,该基本输入/输出***包含在例如启动期间有助于计算机***内的元件之间传输信息的基本例程。
存储设备106可包括用于从闪存存储器读取或向其写入的闪存存储器数据存储设备,用于从硬盘读取或向其写入的硬盘驱动器,用于从可移除磁盘读取或向其写入的磁盘驱动器和/或用于从可移除光盘例如CD ROM、DVD或其他光学介质读取或向其写入的光盘驱动器。驱动器和与它们相关的计算机可读介质为硬件设备100提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
值得注意的是,本文描述的方法可以实施为存储在计算机可读介质中用于由指令执行机器、装置或设备,例如基于计算机的或包含处理器的机器、装置或设备,使用或连同它们使用的可执行指令。本领域技术人员将意识到,对于某些实施例,可以使用可存储计算机可访问的数据的其他类型的计算机可读介质,例如磁带、闪存卡、数字视频盘、伯努利磁带、RAM、ROM等也可用在示例性操作环境中。如本文使用的,“计算机可读介质”可包括以电子、磁、光和电磁格式中的一个或多个来存储计算机程序可执行指令的任何合适的介质中的一种或多种,从而指令执行机器、***、装置或设备能够从计算机可读介质中读取(或抓取)指令并执行用于实现所描述方法的指令。非穷举地,传统的示例性计算机可读介质的列表包括:便携式计算机盘片;RAM;ROM;可擦除可编程只读存储器(EPROM或闪存);光存储设备,包括便携式压缩盘(CD)、便携式数字视频盘(DVD)、高清DVD(HD-DVDTM)、蓝光盘;以及诸如此类。
可在存储设备106、ROM 116或RAM 118上存储多个程序模块,包括操作***122、一个或多个应用程序124、程序数据126和其他程序模块128。用户可通过数据输入模块108向硬件设备100输入命令和合信息。数据输入模块108可包括机构,例如键盘、触摸屏、指针设备等。其他外部输入设备(未示出)通过外部数据输入接口130连接到硬件设备100。举例但并非限制,外部输入设备可包括麦克风、操纵杆、游戏垫、圆盘式***天线、扫描仪或类似的。在一些实施例中,外部输入设备可包括视频或音频输入设备,例如视频录像机、照相机等。数据输入模块108可被配置为从设备100的一个或多个用户接收输入并经由总线114将这些输入传递到处理器102和/或存储器104。
显示器132也经由显示器适配器110连接到总线114。显示器132可被配置为向一个或多个用户显示设备100的输出。在某些实施例中,给定设备例如触摸屏可例如实现数据输入模块108功能以及也可实现显示器132功能。外部显示设备也可经由外部显示器的显示接口134连接到总线114。未示出的其他***输出设备,例如扬声器和打印机,可连接到硬件设备100。
硬件设备100可使用经由通信接口112到一个或多个远程节点(未示出)的逻辑连接操作于网络环境。远程节点可以是另一计算机、服务器、路由器、对等设备或其他普通网络节点,并且典型地包括很多或全部上面所描述的与硬件设备100相关的元件。通信接口112可与无线网络和/或有线网络对接。无线网络的例子包括,例如,蓝牙网络、无线个人区域网、无线802.11局域网(LAN)和/或无线电话网络(例如,蜂窝,PCS,或GSM网络)。有线网络的例子包括,例如,LAN、光纤网络、有限个人区域网络、电话网络和/或广域网(WAN)。这样的网络环境常见于内部网、因特网、办公室、企业范围计算机网络和类似的。在某些实施例中,通信接口112可包括被配置为支持存储器104和其他设备之间直接存储器存取(DMA)传输的逻辑。
在联网环境中,与硬件设备100相关描述的程序模块,或其部分,可保存在远程存储设备中,例如,在服务器上。应当了解的是,可使用在硬件设备100和其他设备之间建立通信链路的其他硬件和/或软件。
应当了解的是,图1所示的硬件设备100设置仅仅是一种可能的实现并且其他设置也是可能的。还应当了解的是,由下面所描述的权利要求所限定的以及在各种模块图中所示出的各种***组件(和部件)代表被配置为执行本文所描述的功能的逻辑组件。例如,这些***组件(和部件)中的一个或多个全部或部分地可由硬件设备100设置中所示出的组件中的至少一些来实现。此外,尽管这些组件中的至少一个至少部分地被实现为电子硬件组件,并因此组成机器,其他组件可以用软件、硬件或软件和硬件的组合实现。更特别地,至少一个由权利要求所限定的组件至少部分地被实现为电子硬件组件,例如指令执行机器(例如,基于处理器或包含处理器的机器)和/或例如专门的电路或电路***(例如,相互连接以执行专门功能的分立的逻辑门),例如图1所示。其他组件可以软件、硬件、或软件和硬件的组合实现。并且,这些其他组件的一些或全部可以组合,一些可以完全地省略,并且可以增加另外的组件而仍然实现本文描述的功能。因此,本文描述的主题可以以许多不同的变型实施,并且所有这些变型都被视为在所请求保护的范围之内。
在接下来的描述中,除非另外指示,将参考由一个或多个设备所执行的操作的动作和符号表示来描述本主题。同样地,应当理解的是这些有时被称之为被计算机执行的动作和操作包括由处理单元对结构化形式的数据进行处理。该处理对数据进行转换或将其保持在计算机存储器***中的位置上,计算机以本领域技术人员好理解的方式重新配置或修改设备的操作。保持数据的数据结构是具有由数据格式所定义的特殊属性的存储器的物理位置,然而,尽管是在上述上下文中描述本主题,但并非为了限定,因为本领域技术人员将意识到后面所描述的各种动作和操作也可用硬件实现。
为了方便对下面所描述的主题的理解,许多方面根据动作序列进行描述。由权利要求所限定的这些方面中的至少一个由电子硬件组件执行。例如,将认识到各种动作可由专门的电路或电路***、由被一个或多个处理器执行的程序指令、或由于二者的组合来执行。本文对任何动作序列的描述并非意在指示必须遵循所描述的执行该序列的特定顺序。本文描述的所有方法可以任何适当的顺序执行,除非另外本文指示或明显地与上下文相矛盾。
图2示出了实施例下应用更新的示例全文索引环境。图2和本文示出的其他图中的组件的功能和设置可由于图1硬件设备100的某些或全部组件来实现和/或执行。***200可在包括多个客户计算机的网络中实现,其中客户端计算机可以任何类型的合适的计算机或计算设备实现,例如工作站、个人计算机、便携式计算机、智能手机、个人数字助理(PDA)、平板电脑、以及任何类似的设备。网络客户端访问数据,例如内容、数据、数据存储设备中所存储的任何其他的网络资源。数据存储设备是可以通过任意数目的个体持久存储设备实现的随机存取存储设备,例如硬盘驱动器、RAID阵列等。在某些实施例中,也可以使用顺序存储设备,例如磁带存储设备。数据存储设备可作为单个存储库呈现给网络200中的客户端,但是它可能是以多个个体存储设备的形式实施的。
图2的***200示出了全文搜索环境的一部分,例如被用于文本检索应用,在这种应用中搜索引擎处理用户查询以在全文数据库中找到文档或集合。***200包括索引功能以及搜索功能,以有助于对大量文档的搜索。索引器扫描所有文档的文本并建立搜索项目列表,称之为索引。当执行特定查询时,仅参考索引而非原始文档的文本。索引器为在文档中所找到的每个项目或字以及可能它在文档中的相对位置在索引中制作条目。黑名单结构206存储黑名单位图,在黑名单位图中数据库中的文档由索引内的数字标识符表示。位图是一种数据结构,其中每个比特指示相应的文档是否被列入黑名单。
如图2所示,全文索引存储文档的索引。经过对查询的处理,返回一组初始查找结果208。查询结果过滤器对初始查找结果208使用由黑名单结构206提供的黑名单信息以产生经过后过滤的数据210。当读事务开始时,***拉出高速缓存的视图,如果该视图对于查询可用。该高速缓存的视图包括索引加上黑名单位图。如果高速缓存的视图不可用,从头开始创建。这将包括读取永久黑名单结构206来构建新的黑名单位图。
在实施例中,使用数字文档标识符得出或构建黑名单位图。每个文档具有从某一数字,例如0,开始的数字文档标识符。该标识符定义了用于位图的映射。因此,例如,黑名单结构中有标识符为5的文档,那么在位图中,位置5中的比特将被设置为值1。
在任何读写事务提交时,使得高速缓存的视图无效。这种方法中,该位图的创建可能对用户不利。对于数目小的索引更新而言通常没有问题,然而,在***面临大量更新的使用情况下,从执行的角度而言这可能是非常昂贵的,尤其是在较旧的文档被更新的环境中。在这样的情况下,大量的黑名单条目累积在大规模的最终索引上使得位图的任何重建非常昂贵。
本文描述的索引维护方法的实施例意在对多个索引和/或多个片段起作用。通常,索引包括多个片段,并且每个片段是字典中记入列表的分组,从而在每个片段处都是索引的一部分。取决于应用和实现的要求,维护技术可以是基于片段的或基于索引的。
图3说明了在实施例下在全文索引环境中更新文档的处理。如300所指的示意图所示,对全文索引中文档的更新304会将该文档放在新提交的全文索引306中。该文档在较旧的全局索引(如黑名单结构308所示)中将被列为黑名单。在这种情形下,索引维护的正常活动就变成了从更小的、最近被更新的索引的组合来创建新索引的情形。这导致需要无效并重建黑名单位图。该更新/维护可在查询中发生但这可能导致大的开销需求来重建位图。在实施例中,在合并期间也维护和重建位图高速缓存但最好使用户避免付此代价。
当读事务开始时,过程拉取用于查询的高速缓存的视图(如果可用)。如果高速缓存的视图(索引加上黑名单位图)不可用,那么过程从头开始创建它。这将包括读取永久黑名单结构308来构建新的黑名单位图。在任何读写事务提交时,使高速缓存的视图无效。仅用最近增加的变化对黑名单位图进行更新。由此极大地降低了与得出黑名单位图相关的总体惩罚,因为通常只需要反映最新的变化,并非需要反映所有的变化。具有单个位图高速缓存(其在视图创建期间被调整)使得为此所需的存储器的量最小,并使得它基本上与发送搜索请求的用户的数目无关。大多数情况下在索引合并期间重建黑名单位图高速缓存避免了用户在视图重建期间经历任何惩罚,如果查询之间时间长该惩罚会加剧。
在实施例中,合并索引操作是周期性的背景活动,该背景活动运行以将更小的索引合并成更大的索引并反映黑名单。合并索引操作创建一组新的索引,并为新的索引构建新的位图高速缓存。该过程也可操作于所有其他索引并在它们各自的位图高速缓存中反映最近的更新。由于这个特点,不要求查询花费时间来获得最新版本的位图高速缓存。
在实施例中,最终全文索引数据在原始的黑名单索引(如黑名单结构308所示)中被列为黑名单。黑名单数据也被划分为多个较小的索引。经过查询结果过滤器312和314的处理,然后查询相对于一个或两个索引——原始索引和较小索引被执行,并且通常是相对于原始索引和较小索引中的至少一个被执行。然后合并查询结果来产生合并的查询结果316。图6A是示出根据本实施例的方法的流程图。
图4说明了在实施例下根据事务行为的文档的不同视图从而说明位图高速缓存方法的操作。图4示出了这样的概念,在同一时间不是每个事务都看到相同的数据库视图。如400所指的示意图的例子中所示,事务A 402在特定时间点开始并且在时间上后面跟随着事务B 404,事务B 404在事务A完成之前结束。事务B之后,但也在事务A完成之前,开始了第三个事务C 406。为了说明,事务A为只读事务,事务B为读/写事务,且事务C可以是只读事务或读/写事务。假设每个事务都访问相同的文档,文档1。在事务B删除文档1的情况下,即使在事务B的删除操作提交之后,事务A仍然能查看文档,因为它的视图与它开始该事务的时间点的数据库版本一致。事务C看到被删除的文档1,因为它在事务B完成之后开始。在这种情况下需要新的查询视图,因为先前的查询视图不能使用。这说明了同一时间不同事务所看到的同一时间视图的可能不同。在实施例中,索引维护***被实现为使得基于查询的***(全文索引***)中的事务可通过一致的数据库视图查看更新,而不需要阻塞机制,类似的机制当前在基于事务的***中是可能的。
图4的例子说明了这样一种情况,数据库的新视图要求高速缓存被清除和更新以提供对数据库的一致的查看。许多数据库变化导致黑名单位图的变化,以及对许多高速缓存清除操作的需求,高速缓存清除操作可能是昂贵的。在实施例中,通过对黑名单位图的增量重建而不是对黑名单位图的整个重建来维护索引。
图5示出了实施例下单个全局位图高速缓存的使用。如500所指的示意图所示,永久黑名单条目用于产生单个黑名单位图506。位图被高速缓存在全局位图高速缓存504中。在实施例中,位图高速缓存本质上是根据需要改变大小的位向量。位图的每个部分具有布尔值。位在向量中的位置对应文档标识符。如果位被设置为1那么文档在黑名单中,而如果位被设置为0那么文档不在黑名单中。可替换地,可使用相反的布尔值来代表存在或不存在,即,0可表示文档在黑名单中存在而1可表示文档在黑名单中不存在。通过针对所有的变化对位图高速缓存,从永久黑名单条目502中只读取少数的黑名单条目是可能的。这样的结果是处理量比先前丢弃并重建整个黑名单位图的方法少得多。
在实施例中,位图高速缓存504包括根据日志序号(LSN)组织的有序事务列表。LSN按照升序分配并被实现为日志记录的逻辑地址,其中日志记录被创建以跟踪由事务所引起的变化。位图中的事务列表按照事务所创建的第一日志记录的LSN排序。
图6A是说明在实施例下在全文环境中维护索引的方法的流程图。如600所指的示意图所示,该方法包括,在框601采用原始索引将数据列入黑名单;在框603将原始索引划分为多个较小的索引;在框605在原始索引和至少一个较小的索引上执行查询。图6B是说明实施例下维护单个黑名单位图的方法的流程图。如610所指的流程图所示,该方法在更新的事务查询视图间维护单个黑名单位图,框602。一般来说,单个位图是存储高效的。然后,当请求新的视图时,该方法将最新的一组更新应用到位图,框604。最新的一组更新包括仅在新视图和最紧挨在前视图之间提交的更新。在创建了事务型视图时进一步对位图进行后调整以保证处理尚未移除用户本应能看到的条目,框606。
本文描述的方法的各方面在文档更新率很高并且可能由于工作流处理的原因被延迟的***中通常应当证明是有利的。也就是说,正常的全文索引环境可能发生许多更新,这些更新在十分接近原始对象创建的时刻发生。这在一定成批应用中是如此,其中创建产生大量更新、伴随着几天后由于工作流处理发生更大量更新。这种情况下,黑名单活动不限于最近的索引,而是覆盖最终索引本身(每天仅合并一次,或以类似的时间段合并)。
本文描述的索引维护***所提供的改进合并在一起获得了查询响应时间快(视图创建可忽略)和索引延迟低的用户感知提升。在后一种情况下这意味着文档在保存到***后很快即可搜索从而允许搜索引擎服务更多数量的应用,本质上将这种“模糊搜索”技术带到了通常仅由结构化关系数据库服务的领域。
本文描述的***的一种示例实现中,一个或多个服务器计算机可以是多租户数据库平台的一部分,该多租户数据库平台包括客户端和存储节点联网计算机。这些计算机之间的网络接口可包括一个或多个用来缓冲和路由计算机之间传输的数据的路由器。网络可以是因特网、广域网(WAN)、局域网(LAN),或它们的任意组合。服务器和存储节点计算机可以是能够支持多个计算机或终端的服务器级计算机和数据库存储资源。网络可代表任何合适的客户端-服务器网络,例如计算资源和存储容量作为服务提供给多个不同客户端的云计算环境。如上所述,这样的环境的一个说明性应用是多租户数据库***,其中数据库***的硬件和软件的各种元素可被一个或多个客户共享。例如,给定的应用服务器可同时处理大量客户的请求,并且给定的数据库表可为潜在的大量客户端存储数据元素。在这种环境中,每个服务器可实现控制逻辑,控制逻辑控制不同客户端使用存储节点的访问,每个存储节点实现动态容量共享处理。
在本公开中,除非另外本文指示或明显地与上下文相矛盾,在描述本主题的上下文中(尤其是在下面的权利要求的上下文中)术语“一”和“该”及类似指示的使用应解释为包含单数和复数。除非另外本文指示,本文对数值范围的记载仅仅是意在作为一种单独引用落入该范围内的每个单独值的简洁方法,并且每个单独值被结合在说明书中,如同它在本文被单独地引用。并且,之前的描述仅仅是为了说明,并不是为了限制,因为寻求保护的范围由后面所提出的权利要求连同其被赋予的任何等同所限定。除非另外声明,任何和所有例子,或示例性语言(例如,“例如”)的使用,仅仅是意在为了更好地说明主题而不是对主题的范围进行限制。术语“基于”和其他指示造成结果的条件的类似短语的使用,无论在权利要求中还是在撰写的说明书中,并非意在为了排除任何其他使结果发生的条件。说明书中的任何语言都不应被解释为指示任何非请求保护的元素是实践所请求保护的发明必不可少的。
本文描述了优选的实施例,包括发明人所知的用来执行所请求保护的主题的最佳模式。当然,阅读了前述说明,那些优选的实施例的变型对本领域技术人员来说将是显而易见的。发明人预计技术人员适当采用这样的变型,并且发明人预期到按照不同于本文特别描述的方式来实践所请求保护的主题。因此,如适用法律所允许的,该所请求保护的主题包括附于本文的权利要求中所列出的主题的所有修改和等同。此外,除非另外本文指示或明显地与上下文相矛盾,还包含上述元素所有可能变型的任意组合。
Claims (18)
1.一种维护数据库中所存储的元素的索引的计算机实现的方法,在基于查询的、全文搜索环境中使用,该方法包括:
采用所述数据库的原始索引将删除的元素列入黑名单,其中所述黑名单被表示为指示所述数据库中每个元素的黑名单状态的黑名单位图,所述黑名单位图包括具有位序列的数据结构,每个位被分配布尔值,其中第一布尔值表示元素在所述黑名单中存在,第二布尔值表示元素在所述黑名单中不存在;
在采用原始索引将删除的元素列入黑名单之后,将所述原始索引划分为多个较小的索引;
在所述多个较小索引中的至少一个以及所述原始索引上执行查询。
2.如权利要求1所述的方法,其中所述元素包括搜索引擎可搜索的文档。
3.如权利要求1所述的方法,其中所述黑名单位图使用与所述数据库的原始索引中的每个元素关联的数字文档标识符。
4.如权利要求3所述的方法,其中每个数字文档标识符定义用于所述黑名单位图的映射。
5.如权利要求2所述的方法,其中所述数据结构进一步包括根据多个日志序号所组织的事务。
6.如权利要求5所述的方法,其中所述日志序号按照升序被分配并被实现为日志记录的逻辑地址,其中所述日志记录被创建以跟踪由事务所做出的变化。
7.一种用于维护数据库中所存储的元素的索引的***,在基于查询的、全文搜索环境中使用,该***包括:
基于处理器的数据库管理***,在计算机上被执行并被配置为:
采用所述数据库的原始索引将删除的元素列入黑名单,其中所述黑名单被表示为指示所述数据库中每个元素的黑名单状态的黑名单位图,所述黑名单位图包括具有位序列的数据结构,每个位被分配布尔值,其中第一布尔值表示元素在所述黑名单中存在,第二布尔值表示元素在所述黑名单中不存在;
在采用原始索引将删除的元素列入黑名单之后,将所述原始索引划分为多个较小的索引;
在所述多个较小索引中的至少一个以及所述原始索引上执行查询。
8.如权利要求7所述的***,其中所述元素包括搜索引擎可搜索的文档。
9.如权利要求7所述的***,其中所述黑名单位图使用与所述数据库的原始索引中的每个元素关联的数字文档标识符。
10.如权利要求9所述的***,其中每个数字文档标识符定义用于所述黑名单位图的映射。
11.如权利要求8所述的***,其中所述数据结构进一步包括根据多个日志序号所组织的事务。
12.如权利要求11所述的***,其中所述日志序号按照升序被分配并被实现为日志记录的逻辑地址,其中所述日志记录被创建以跟踪由事务所做出的变化。
13.一种包含有计算机可读程序代码的非瞬态计算机可读介质,所述计算机可读程序代码适合被一个或多个处理器执行以实现方法,该方法包括:
采用数据库的原始索引将删除的元素列入黑名单,其中所述黑名单被表示为指示所述数据库中每个元素的黑名单状态的黑名单位图,所述黑名单位图包括具有位序列的数据结构,每个位被分配布尔值,其中第一布尔值表示元素在所述黑名单中存在,第二布尔值表示元素在所述黑名单中不存在;
在采用原始索引将删除的元素列入黑名单之后,将所述原始索引划分为多个较小的索引;
在所述多个较小索引中的至少一个以及所述原始索引上执行查询。
14.如权利要求13所述的非瞬态计算机可读介质,其中所述元素包括搜索引擎可搜索的文档。
15.如权利要求14所述的非瞬态计算机可读介质,其中所述黑名单位图使用与所述数据库的原始索引中的每个元素关联的数字文档标识符。
16.如权利要求15所述的非瞬态计算机可读介质,其中每个数字文档标识符定义用于所述黑名单位图的映射。
17.如权利要求15所述的非瞬态计算机可读介质,其中所述数据结构进一步包括根据多个日志序号所组织的事务。
18.如权利要求17所述的非瞬态计算机可读介质,其中所述日志序号按照升序分配并被实现为日志记录的逻辑地址,其中所述日志记录被创建以跟踪由事务所做出的变化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/631363 | 2012-09-28 | ||
US13/631,363 US9245003B2 (en) | 2012-09-28 | 2012-09-28 | Method and system for memory efficient, update optimized, transactional full-text index view maintenance |
PCT/US2013/060969 WO2014052202A2 (en) | 2012-09-28 | 2013-09-20 | Method and system for memory efficient, update optimized, transactional full-text index view maintenance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104854582A CN104854582A (zh) | 2015-08-19 |
CN104854582B true CN104854582B (zh) | 2019-03-01 |
Family
ID=49326845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380050962.1A Active CN104854582B (zh) | 2012-09-28 | 2013-09-20 | 存储高效、更新优化的事务型全文索引视图维护的方法和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US9245003B2 (zh) |
EP (1) | EP2901316A2 (zh) |
CN (1) | CN104854582B (zh) |
WO (1) | WO2014052202A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015050560A1 (en) | 2013-10-04 | 2015-04-09 | 3M Innovative Properties Company | Coatable composition, antistatic composition, antistatic articles, and methods of making the same |
US9514123B2 (en) | 2014-08-21 | 2016-12-06 | Dropbox, Inc. | Multi-user search system with methodology for instant indexing |
US10409835B2 (en) * | 2014-11-28 | 2019-09-10 | Microsoft Technology Licensing, Llc | Efficient data manipulation support |
US9384226B1 (en) * | 2015-01-30 | 2016-07-05 | Dropbox, Inc. | Personal content item searching system and method |
US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
US10614070B2 (en) | 2015-10-27 | 2020-04-07 | International Business Machines Corporation | Preventing staleness in query results when using asynchronously updated indexes |
CN107729371B (zh) * | 2017-09-12 | 2020-04-21 | 深圳先进技术研究院 | 区块链的数据索引及查询方法、装置、设备及存储介质 |
US10866926B2 (en) | 2017-12-08 | 2020-12-15 | Dropbox, Inc. | Hybrid search interface |
US11080257B2 (en) * | 2019-05-13 | 2021-08-03 | Snowflake Inc. | Journaled tables in database systems |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HU229694B1 (en) * | 1997-03-21 | 2014-05-28 | Nagra France Sas | Conditional access system |
US7016914B2 (en) | 2002-06-05 | 2006-03-21 | Microsoft Corporation | Performant and scalable merge strategy for text indexing |
TW200625111A (en) * | 2004-12-17 | 2006-07-16 | Hon Hai Prec Ind Co Ltd | System and method for controling the serving to use the resource |
CN100495400C (zh) * | 2006-09-01 | 2009-06-03 | 北大方正集团有限公司 | 一种全文检索***的索引在线更新方法 |
JP2008146517A (ja) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | データ配布システムおよびインデクス保持装置 |
US7836037B2 (en) | 2007-10-04 | 2010-11-16 | Sap Ag | Selection of rows and values from indexes with updates |
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 |
CN101295323B (zh) * | 2008-06-30 | 2011-11-02 | 腾讯科技(深圳)有限公司 | 一种用于索引更新的处理方法和*** |
EP2482219B1 (en) * | 2011-01-31 | 2015-10-14 | BlackBerry Limited | Blacklisting of frequently used gesture passwords |
CN102184222B (zh) * | 2011-05-05 | 2012-11-14 | 杭州安恒信息技术有限公司 | 一种在大数据量存储中快速检索的方法 |
US8620924B2 (en) * | 2012-03-06 | 2013-12-31 | International Business Machines Corporation | Refreshing a full-text search index in a partitioned database |
-
2012
- 2012-09-28 US US13/631,363 patent/US9245003B2/en active Active
-
2013
- 2013-09-20 CN CN201380050962.1A patent/CN104854582B/zh active Active
- 2013-09-20 WO PCT/US2013/060969 patent/WO2014052202A2/en active Application Filing
- 2013-09-20 EP EP13774548.5A patent/EP2901316A2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
CN104854582A (zh) | 2015-08-19 |
EP2901316A2 (en) | 2015-08-05 |
WO2014052202A2 (en) | 2014-04-03 |
US20140095467A1 (en) | 2014-04-03 |
US9245003B2 (en) | 2016-01-26 |
WO2014052202A3 (en) | 2014-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104854582B (zh) | 存储高效、更新优化的事务型全文索引视图维护的方法和*** | |
US10657008B2 (en) | Managing a redundant computerized database using a replicated database cache | |
US11080260B2 (en) | Concurrent reads and inserts into a data structure without latching or waiting by readers | |
US11436356B2 (en) | Unified file and object storage architecture for clustered file systems | |
US9081805B1 (en) | Tenant-aware database for software as a service | |
US10223386B2 (en) | Read and delete input/output operation for database management | |
US8234317B1 (en) | Auto-committing files to immutable status based on a change log of file system activity | |
US20130238557A1 (en) | Managing tenant-specific data sets in a multi-tenant environment | |
US11157480B2 (en) | Deleting tuples using separate transaction identifier storage | |
CN110750507B (zh) | 面向dfs的全局命名空间下的持久客户端缓存方法及*** | |
US10838934B2 (en) | Modifying archive data without table changes | |
US10025710B2 (en) | Pattern for integrating primary and secondary data stores in a sharded data domain | |
US10628298B1 (en) | Resumable garbage collection | |
US20160267154A1 (en) | Plural architecture master data management with supplemental attributes | |
US11397749B2 (en) | Asynchronous replication of in-scope table data | |
KR101584760B1 (ko) | 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치 | |
CN106776795B (zh) | 基于Hbase数据库的数据写入方法及装置 | |
CN112334891A (zh) | 用于搜索服务器的集中式存储 | |
US7725507B1 (en) | Dynamic directories | |
CN102597995B (zh) | 同步数据库和非数据库资源 | |
US10762139B1 (en) | Method and system for managing a document search index | |
US20190057126A1 (en) | Low latency constraint enforcement in hybrid dbms | |
CN116820323A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
US10042558B1 (en) | Method to improve the I/O performance in a deduplicated storage system | |
US20230350859A1 (en) | Data retrieval from archived data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |