CN109726264A - 用于索引信息更新的方法、装置、设备和介质 - Google Patents
用于索引信息更新的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN109726264A CN109726264A CN201910041580.1A CN201910041580A CN109726264A CN 109726264 A CN109726264 A CN 109726264A CN 201910041580 A CN201910041580 A CN 201910041580A CN 109726264 A CN109726264 A CN 109726264A
- Authority
- CN
- China
- Prior art keywords
- index information
- index
- storage area
- volatile storage
- request
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据本公开的示例实施例,提供了用于索引信息更新的方法、装置、设备和介质。索引信息更新的方法包括响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储;将第一索引信息合并到非易失性存储区域中存储的第二索引信息,第二索引信息与第一索引信息不同;以及响应于接收到索引更新请求,基于索引更新请求,在第二易失性存储区域中创建第三索引信息,第三索引信息与第一索引信息和第二索引信息不同。以此方式,可以提高索引信息更新的时效性。
Description
技术领域
本公开的实施例主要涉及检索领域,并且更具体地,涉及用于索引信息更新的方法、装置、设备和计算机可读存储介质。
背景技术
当前的搜索引擎通常基于全文索引来实现检索,以提高减速速度。全文检索是指通过扫描数据库的文档中出现的每个词,为每个词或为每个文档建立索引,以指示各个词在各个文档中出现的次数和/或位置。索引可以被认为是基于数据库文档的一种数据结构。当用户查询时,搜索引擎根据已建立的索引进行检索,并将匹配的结果反馈给用户。如果数据库中的文档发生更新,例如增加、修改、插入和/或删除已有文档的一部分或全部,或者增加新的文档,需要更新先前建立的索引信息。
发明内容
根据本公开的示例实施例,提供了一种用于索引信息更新的方案。
在本公开的第一方面中,提供了一种索引信息更新的方法。该方法包括响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储;将第一索引信息合并到非易失性存储区域中存储的第二索引信息,第二索引信息与第一索引信息不同;以及响应于接收到索引更新请求,基于索引更新请求,在第二易失性存储区域中创建第三索引信息,第三索引信息与第一索引信息和第二索引信息不同。
在本公开的第二方面中,提供了一种用于索引信息更新的装置。该装置包括第一存储分配模块,被配置为响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储;第一索引合并模块,被配置为将第一索引信息合并到非易失性存储区域中存储的第二索引信息;以及第一索引创建模块,被配置为响应于接收到索引更新请求,基于索引更新请求,在第二易失性存储区域中创建第三索引信息,第三索引信息与第一索引信息和第二索引信息不同。
在本公开的第三方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了本公开的多个实施例能够在其中实现的示例检索系统的示意图;
图2A至图2F示出了根据本公开的一些实施例的在检索系统中的索引信息更新的示意图;
图3示出了根据本公开的一些实施例的用于存储与索引更新请求对应的预写日志的示例架构的示意图;
图4示出了根据本公开的一些实施例的用于索引信息更新的方法的流程图;
图5示出了根据本公开的实施例的用于索引信息更新的装置的示意框图;以及
图6示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,搜索引擎通过构建索引信息来执行对数据库的文档的检索。图1示出了本公开的多个实施例能够在其中实现的示例检索系统100的示意图。在检索系统100中,搜索引擎110创建并且在存储系统120中存储索引信息122。索引信息122是搜索引擎110当前可获得的多个文档的数据进行组织和处理后生成的。索引信息122至少包括基于文档的索引结构,以指示各个词在各个文档中出现的次数和/或位置。索引信息122有时还可以包括文档的部分或全部内容,诸如文档的作者、标题、摘要等。索引信息112的创建可以用于促进对文档的检索,而无需从头到尾浏览所有文档来确定匹配的检索结果。
搜索引擎110可以由单个设备或多个设备来实现,例如可以是一个或多个服务器、虚拟机、大型机等具有计算和处理能力的设备。虽然被示出为两个独立的元素,存储系统120可以与搜索引擎110一起位于单个设备中,例如作为某个计算设备的数据存储部分。当然,存储系统120也可以被实现为独立的数据存储部分。
搜索引擎110可以基于诸如倒排索引、顺排索引等技术来生成索引信息122。这些索引技术是本领域中熟知的,在此不赘述。当然,可以想到,任何当前已知或者将来开发的文档索引技术均可以被用于生成索引信息122,只要所生成的索引信息122能够用于文档检索即可。在一些示例中,搜索引擎110可以基于clucene搜索引擎架构或者任何其他架构来实现,本公开的实施例在此方面不受限制。
在接收到检索请求102时,通过索引信息122,搜索引擎110可以定位与检索请求102相匹配的检索结果104,例如包含检索请求102中的检索关键字的文档等。检索结果104可以被反馈给发起检索请求的用户。在图1以及以下图2A至图2F中,涉及基于索引的检索操作均由虚线箭头表示。
在一些情况下,如果要对文档进行更新,诸如增加、修改、插入和/或删除已有文档的一部分或全部,或者增加新的文档,这将会触发索引更新请求106。响应于索引更新请求106,搜索引擎110需要对索引信息122进行更新,使更新后的索引信息122能够反映并且定位更新后的文档。在图1以及以下图2A至图2F中,涉及索引更新的操作均由实线箭头表示。通常,索引信息122的更新不是简单地增加新索引内容,而是需要对整体索引结构重新组织。因此,索引信息的存储和更新将会影响检索性能。
在一些已有方案中,要更新的文档内容首先被写入内存,然后在后台操作中被批量写入磁盘。在检索时在内存中重新打开索引信息,以供检索。然而,由于磁盘写入和内存的索引信息打开是异步完成的,可能导致索引的更新存在延迟,所使用的索引信息不具有时效性,即索引未能反映最近更新的文档。此外,将文档内容写入内存,可能存在由于设备宕机而导致数据丢失的风险,因此数据可靠性难以保障。在另外一些方案中,已创建的索引信息被存储在磁盘中。如果要对某个文档进行更新,要更新的内容被直接写入磁盘,然后重新打开磁盘的索引。虽然这个方案能够解决索引的时效性问题,但磁盘操作的速度慢,导致整个更新过程的效率较低。
根据本公开的实施例,提出了一种用于索引的方案。在该方案中,用于检索的索引信息被存储在非易失性存储区域中,并且在满足一定条件后被合并到易失性存储区域中。由于合并过程需要花费时间,在确定要合并索引信息时,重新分配一个易失性存储区域用于对后续的索引更新请求进行响应,以在重新分配的易失性存储区域中创建索引信息。以此方式,可以对索引更新请求快速响应,并且非易失性存储区域和易失性存储区域中的索引信息共同准确反映了当前的索引状态。
以下将参照附图来具体描述本公开的实施例。为便于描述,将参考图1的检索系统100来具体描述如何更新存储系统中的索引信息。图2A示出了根据本公开的实施例的检索系统100的示意图。在本公开的实施例中,在易失性存储装置和非易失性存储装置中均存储索引信息。如图2A所示,存储系统120包括易失性存储装置210和非易失性存储装置220,其中分别具有存储索引信息202的易失性存储区域212和存储索引信息204的非易失性存储区域222。在本文中,索引信息202有时也被称为第一索引信息,索引信息204有时也被称为第二索引信息。
在一些实施例中,易失性存储装置指的是在断电之后将丢失所存储的数据的存储介质。易失性存储装置210可以包括一个或多个非易失性存储设备,其示例包括但不限于内存、高速缓存、随机存取存储器(RAM)、动态随机存取存储器(DRAM)等具有较高存取速度的存储器。非易失性存储装置指的是在断电之后不会丢失所存储的数据的存储介质。非易失性存储装置220的示例可以包括但不限于固态存储器设备(SSD)、磁盘冗余阵列(RAID)、数字通用盘(DVD)、蓝光盘(BD)、光盘(CD)、软盘、硬盘设备、磁带驱动、光学驱动、硬盘设备驱动(HDD)或任何其他非易失性存储设备。
根据本公开的实施例,被存储在易失性存储区域212中的索引信息202响应于索引更新请求而被更新,并且在满足索引合并条件时被合并到非易失性存储区域222中的索引信息204。例如,如果接收到索引更新请求106,搜索引擎110将指示索引信息202更新。因此,索引信息202和索引信息204不同,索引信息204总是反映在上次合并之后更新的数据,诸如部分文档或全新的文档。如果搜索引擎110接收到检索请求102,搜索引擎110将同时根据索引信息202和204进行检索。
由于易失性存储装置的存取速度通常较快,例如非易失性存储装置的存取速度更快,因此在其中存储索引信息能够提高索引更新速度和检索响应速度。然而,易失性存储装置的存储空间可能是有限的,并且还存在断电后丢失数据的风险,因此需要在满足一定条件之后将易失性存储区域中的索引信息合并到非易失性存储装置,以实现持久性存储。通常,非易失性存储装置(例如,装置220)中用于存储索引信息的存储空间大小(例如,非易失性存储区域222的大小)可以被配置为存储装置的全部存储空间的某个比例、甚至是全部,或者可以不具有大小限制(而是可以通过扩充存储装置的存储空间来满足需求)。
在一些实施例中,考虑到存储空间有限性和/或断电数据丢失的风险,将触发易失性存储区域中的索引信息202合并到非易失性存储区域中的索引信息204的索引合并条件可以基于索引信息的数据量和/或索引信息自创建起存在的时间。如以上提及的,索引信息包括基于用于检索的多个文档生成的索引结构,并且还可能包括文档的部分或全部,因此随着索引信息的不断更新,其数据量可能会不断增大。可以预先设置一个阈值数据量。如果索引信息202的数据量超过阈值数据量,则确定满足索引合并条件。备选地或附加地,还可以设置阈值时间长度,并且监测索引信息202自创建起的时间。如果监测到索引信息202已被创建的时间长度超过阈值时间长度,则确定满足索引合并条件。
根据本公开的实施例,如果确定索引信息202满足索引合并条件,如图2B所示,搜索引擎110将索引信息202合并到索引信息204,并且还分配易失性存储装置210中的另一存储区域,即易失性存储区域214,以用于索引存储。易失性存储区域212和214可以位于同一个物理存储设备中,或者位于不同的物理存储设备中。易失性存储区域214可以具有任何大小,并且其大小可以与易失性存储区域相同或不同。
在初始阶段,如果没有合并有来自易失性存储装置的索引信息,索引信息204可能未包含任何信息,因此索引信息202可以被直接复制到非易失性存储区域222中。在后续过程中,索引信息202仅包含整个系统的增量信息,即响应于索引更新请求而创建的索引信息。因此,在合并过程中,需将索引信息202增加到索引信息204中,以获得能够反映和索引当前全部文档的信息。取决于索引信息生成技术(诸如倒排索引、顺排索引等),索引信息的合并方式可能不同。然而,这样的索引信息合并是本领域熟知的,因此不再赘述。当然,基于将来开发的任何索引生成技术获得的索引信息,也可以用相应方式被合并。本公开的范围在此方面不受限制,只要合并后的索引信息能够索引到已有和更新文档即可。
通常,索引信息的合并需要花费一定时间。根据本公开的实施例,无需等待合并完成后重新利用易失性存储区域212用于索引存储,而是分配新的易失性存储区域214用于对索引更新请求进行响应。在分配易失性存储区域214之后,如果接收到索引更新请求106,搜索引擎110基于该索引更新请求106,在易失性存储区域214中创建索引信息206,以索引接收到的请求所针对的文档。因此,索引信息206也基于当前更新数据来创建,与索引信息202和204均不同。在本文中,索引信息206有时被称为第三索引信息。索引更新请求可以包括指示如何更新文档的请求信息,以及还可以包括要更新的数据,例如要增加、删除或修改的已有文档的一部分或全部,或者要增加的新文档。基于这些信息,搜索引擎110可以创建索引信息206。进一步地,如果后续继续接收到新的索引更新请求,搜索引擎110将继续更新索引信息206。
在一些实施例中,如果在索引信息202到索引信息204的合并期间搜索引擎110接收到检索请求102,搜索引擎110基于索引信息202、204和206来共同检索与检索请求102匹配的检索结果104。在检索时,搜索引擎110可以分别从索引信息202、204和206中确定与检索请求102匹配的不同检索结果,例如一个或多个匹配文档。然而,搜索引擎110可以对所有检索结果进行合并以去除冗余。例如,如果从索引信息202和204中均确定出匹配的某个文档,搜索引擎110可以仅反馈一个文档作为检索结果104。
在一些实施例中,如果索引信息202到索引信息204的合并完成,易失性存储区域212可以被释放。因此,存储系统120中将包括易失性存储区域214中的索引信息206和非易失性存储区域222中的索引信息202,如图2C所示。此时的索引信息202包含了索引信息204。在易失性存储区域212被释放后,在图2C所示的场景中,如果接收到检索请求102,搜索引擎110将基于当前存在的索引信息206和索引信息202来确定匹配的检索结果104。检索结果104的确定与以上描述的类似,区别仅在于需要检索的存储区域减少。
在一些情况下,如果索引信息的合并速度小于索引更新速度,可能会发生以下情况:由于不断的索引更新,索引信息206满足索引合并条件(例如,数据量超过阈值数据量,和/或创建时间长度超过阈值时间长度),但索引信息202到索引信息204的合并还未完成。在这种情况下,如图2D所示,搜索引擎110可以继续分配易失性存储装置210中的另一存储区域,即易失性存储区域216,以用于索引存储。易失性存储区域216可以位于与易失性存储区域212和/或214相同或不同的物理存储设备中,并且这些区域的大小可以相同或者不同。本公开的实施例在此方面均不受限制。
在分配易失性存储区域216之后,如果接收到索引更新请求106,搜索引擎110基于该索引更新请求106,在易失性存储区域216中创建索引信息208,以索引接收到的请求所针对的文档。在本文中,索引信息208有时称为第四索引信息。索引信息208与索引信息202、204和206均不同,但其生成和更新与索引信息206类似。除创建和更新索引信息208之外,响应于索引信息206的索引合并条件被满足,搜索引擎110还可以将索引信息206合并到非易失性存储区域222的索引信息204中。在一些实施例中,可以在索引信息202到索引信息204的合并完成之后开始索引信息206至索引信息204的合并。当然,在其他实施例中,可以将索引信息202中未合并的部分、当前的索引信息204以及索引信息206共同进行合并。
在索引信息206没有被完全合并到索引信息204的情况下,如果接收到检索请求102,搜索引擎110将基于易失性存储装置210中的索引信息206和208(以及可能的索引信息202)来确定与检索请求102匹配的检索结果104。检索结果104的确定与以上关于图2B的场景所描述的类似,区别仅在于需要检索的存储区域增加。
在索引信息206被完全合并到索引信息204之后,易失性存储区域214可以被释放。因此,存储系统120中将包括易失性存储区域216中的索引信息208和非易失性存储区域222中的索引信息202,如图2E所示。此时的索引信息202包含了索引信息204和索引信息206。在易失性存储区域212被释放后,在图2E所示的场景中,如果接收到检索请求102,搜索引擎110将基于当前存在的索引信息208和索引信息202来确定匹配的检索结果104。
在一些实施例中,每当易失性存储区域中的索引信息满足索引合并条件,就可以重新分配新的易失性存储区域用于索引存储。每当易失性存储区域中的索引信息的合并完成,就释放相应的易失性存储区域。在一些实施例中,对易失性存储装置中当前存在的索引信息的数量可以设置限制,以防止易失性存储空间被过多占用或者索引信息的总数据量超出可用存储空间。
具体地,在确定索引信息206满足索引合并条件时,搜索引擎110进一步判断被分配用于索引存储的易失性存储区域的当前数目是否达到阈值数目。例如,在图2B的状态下,易失性存储区域的当前数目为2。可以理解,易失性存储区域的数目与易失性存储装置中存在的索引信息的数目相同。假设阈值数目为5,搜索引擎110可以确定当前数目小于阈值数目,因此可以分配新的易失性存储区域216用于索引存储。
在一些实施例中,如果已分配的易失性存储区域的数目达到阈值数目,搜索引擎110将暂时不分配新的易失性存储区域216,并且阻塞对后续索引更新请求的响应。在一些情况下,如果易失性存储装置210的存储空间不足以支持数据读写,搜索引擎110还可以阻塞对易失性存储装置210的任何写入请求。对索引更新请求或写入请求的阻塞可以持续到某个易失性存储区域中的索引信息被完全合并到索引信息204、从而使相应易失性存储区域被释放。
以上讨论了如何响应于检索更新请求来更新存储系统中的索引信息。在一些实施例中,在存储系统120中创建和更新的索引信息,诸如索引信息202、204、206和/或208,可以基于倒排索引结构,诸如基于clucene的倒排索引。在另外一些实施例中,部分索引信息或全部索引信息可以基于其他索引结构,诸如顺排索引结构。根据本公开的实施例,可以实现对索引信息的及时更新,确保索引更新的时效性。
在一些实施例中,考虑到易失性存储装置可能发生断电数据丢失的情况,为确保数据可靠性,在接收到索引更新请求106后,除更新易失性存储区域中的索引信息之外,搜索引擎110还在一个非易失性存储区域中存储与索引更新请求106对应的预写日志(WAL)。如图2F所示,搜索引擎110在非易失性存储装置220的非易失性存储区域224中写入与索引更新请求106对应的预写日志230。预写日志230至少包括能够实现基于索引更新请求106对索引信息进行更新的必要信息,例如可以包括索引更新请求106包含的请求信息和相关联的待更新数据,例如要更新的文档的一部分或全部。
预写日志230存储的信息和数据能够用于完成索引更新请求106对索引信息的请求能够抵抗易失性存储装置210的数据丢失风险。假设这样的场景,其中易失性存储装置210上的索引信息还没有基于索引更新请求106被更新,或者更新后的索引信息没有被写入非易失性存储装置220,此时发生易失性存储装置210的数据丢失(例如由于设备断电)。当再次启动时,搜索引擎110还可以基于非易失性存储装置220中未丢失的预写日志来重现创建索引信息,这增加了数据可靠性。
在接收到索引更新请求106后,搜索引擎110可以分配对应的预写日志230的日志标识(被表示为logid),然后写入与该日志标识相关联的日志内容。响应于接收到多个索引更新请求,搜索引擎110均可以写入对应的预写日志。在一些实施例中,可以建立针对一个或多个预写日志的日志索引。日志索引可以包括日志标识,以及对应的日志内容的起始存储位置和终止存储位置。通过该日志索引,可以到相应的存储位置中提取日志内容。
图3示出了示例日志存储架构300,其中包括日志索引310。日志索引310包括多个索引项,每个索引项包括一个预写日志的日志标识和对应日志内容的起始和终止存储位置。起始存储位置和终止存储位置分别指向非易失性存储区域224中存储的日志内容的起始和终止位置,并且可以由日志内容在存储装置中的偏移量指示。例如,在日志索引310中,日志标识“ID1”对应的预写日志的具体内容被存储在非易失性存储区域224中由起始A和终止A限定的存储区段中,而日志标识“ID2”对应的预写日志的具体内容被存储在非易失性存储区域224中由起始B和终止B限定的存储区段中。如果后续继续接收到与新的索引更新请求,由于不存在对预写日志的日志索引和日志内容的更改操作,对应的预写日志可以被直接附加到存储区域224中已有的日志存储部分。例如,可以在日志索引310中增加新的索引项。
在一些实施例中,如果基于索引更新请求106更新的索引信息(在图2B所示的场景中接收到索引更新请求106,此处要更新的是索引信息206)被合并到非易失性存储区域222中的索引信息204,搜索引擎110可以从非易失性存储区域224中移除预写日志230。如果非易失性存储装置220中存储与用于更新索引信息206的多个索引更新请求对应的多个预写日志,在合并完成后,这些预写日志均可以被删除。
图4示出了根据本公开的一些实施例的索引信息更新的方法200的流程图。方法400可以由图1的搜索引擎110来实现。为便于讨论,将参照图1来描述方法400。在410,搜索引擎110确定在第一易失性存储区域中存储的第一索引信息是否满足索引合并条件。如果确定第一索引信息满足索引合并条件,在420,搜索引擎110分配第二易失性存储区域用于索引存储。在430,搜索引擎110将第一索引信息合并到非易失性存储区域中存储的第二索引信息。第二索引信息与第一索引信息不同。在440,搜索引擎110监测是否接收到索引更新请求。如果接收到索引更新请求,在450,搜索引擎110基于索引更新请求,在第二易失性存储区域中创建第三索引信息。第三索引信息与第一索引信息和第二索引信息不同。
在一些实施例中,方法400还可以包括:在第一索引信息到第二索引信息的合并期间,接收第一检索请求;以及响应于第一检索请求,基于第一索引信息、第二索引信息和第三索引信息来检索与第一检索请求匹配的第一检索结果。
在一些实施例中,方法400还可以包括:响应于第一索引信息到第二索引信息的合并完成,释放第一易失性存储区域;以及响应于接收到第二检索请求,基于第三索引信息和合并后的第二索引信息来检索与第二检索请求匹配的第二检索结果。
在一些实施例中,方法400还可以包括:基于确定第三索引信息满足索引合并条件,分配第三易失性存储区域用于索引存储;响应于接收到另一索引更新请求,基于另一索引更新请求,在第三易失性存储区域中创建第四索引信息;以及在第一索引信息到第二索引信息的合并完成后,将第三索引信息合并到第二索引信息。
在一些实施例中,分配第三易失性存储区域用于索引存储包括:确定在被分配用于索引存储的易失性存储区域的当前数目是否达到阈值数目;以及响应于当前数目低于阈值数目,分配第三易失性存储区域用于索引存储。
在一些实施例中,方法400还可以包括:响应于当前数目达到阈值数目,阻塞对后续索引更新请求的响应。
在一些实施例中,方法400还可以包括:响应于接收到索引更新请求,在另一非易失性存储区域中写入与索引更新请求对应的预写日志,预写日志至少包括索引更新请求包含的请求信息和相关联的待更新数据。
在一些实施例中,方法400还可以包括:响应于第三索引信息到第二索引信息的合并完成,从另一非易失性存储区域中移除预写日志。
在一些实施例中,第一索引信息、第二索引信息和第三索引信息中的至少一个基于倒排索引结构。
应当理解,虽然以特定顺序示出,方法400中的一些步骤可以以与所示出的不同顺序或者以并行方式执行。例如,步骤430可以与步骤420、步骤440和/或步骤450并行执行,因为步骤430的持续时间可能比其他步骤更长。此外,步骤430可以在步骤420之前先开始执行。本公开的实施例在此方面不受限制。
图5示出了根据本公开实施例的用于索引信息更新的装置500的示意性框图。装置500可以被包括在图1的搜索引擎110中或者被实现为搜索引擎110。如图5所示,装置500包括第一存储分配模块510,被配置为响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储。装置500还包括第一索引合并模块520,被配置为将第一索引信息合并到非易失性存储区域中存储的第二索引信息,第二索引信息与第一索引信息不同。装置500进一步包括第一索引创建模块530,被配置为响应于接收到索引更新请求,基于索引更新请求,在第二易失性存储区域中创建第三索引信息。第三索引信息与第一索引信息和第二索引信息不同。
在一些实施例中,装置500进一步包括请求接收模块,被配置为在第一索引信息到第二索引信息的合并期间,接收第一检索请求;以及第一检索模块,被配置为响应于第一检索请求,基于第一索引信息、第二索引信息和第三索引信息来检索与第一检索请求匹配的第一检索结果。
在一些实施例中,装置500进一步包括存储释放模块,被配置为响应于第一索引信息到第二索引信息的合并完成,释放第一易失性存储区域;以及第二检索模块,被配置为响应于接收到第二检索请求,基于第三索引信息和合并后的第二索引信息来检索与第二检索请求匹配的第二检索结果。
在一些实施例中,装置500进一步包括第二存储分配模块,被配置为基于确定第三索引信息满足索引合并条件,分配第三易失性存储区域用于索引存储;第二索引创建模块,被配置为响应于接收到另一索引更新请求,基于另一索引更新请求,在第三易失性存储区域中创建第四索引信息;以及第二索引合并模块,被配置为在第一索引信息到第二索引信息的合并完成后,将第三索引信息合并到第二索引信息。
在一些实施例中,第二存储分配模块包括:数目比较模块,被配置为确定在被分配用于索引存储的易失性存储区域的当前数目是否达到阈值数目;以及基于数目比较的分配模块,被配置为响应于当前数目低于阈值数目,分配第三易失性存储区域用于索引存储。
在一些实施例中,装置500进一步包括请求阻塞模块,被配置为响应于当前数目达到阈值数目,阻塞对后续索引更新请求的响应。
在一些实施例中,装置500进一步包括日志写入模块,被配置为响应于接收到索引更新请求,在另一非易失性存储区域中写入与索引更新请求对应的预写日志,预写日志至少包括索引更新请求包含的请求信息和相关联的待更新数据。
在一些实施例中,装置500进一步包括日志移除模块,被配置为响应于第三索引信息到第二索引信息的合并完成,从另一非易失性存储区域中移除预写日志。
在一些实施例中,第一索引信息、第二索引信息和第三索引信息中的至少一个基于倒排索引结构。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以用于实现图1的示例检索系统110,或者被单独实现为搜索引擎110。如图所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM603并由计算单元601执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种索引信息更新的方法,包括:
响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储;
将所述第一索引信息合并到非易失性存储区域中存储的第二索引信息,所述第二索引信息与所述第一索引信息不同;以及
响应于接收到索引更新请求,基于所述索引更新请求,在所述第二易失性存储区域中创建第三索引信息,所述第三索引信息与所述第一索引信息和所述第二索引信息不同。
2.根据权利要求1所述的方法,进一步包括:
在所述第一索引信息到所述第二索引信息的合并期间,接收第一检索请求;以及
响应于所述第一检索请求,基于所述第一索引信息、所述第二索引信息和所述第三索引信息来检索与所述第一检索请求匹配的第一检索结果。
3.根据权利要求1所述的方法,进一步包括:
响应于所述第一索引信息到所述第二索引信息的所述合并完成,释放所述第一易失性存储区域;以及
响应于接收到第二检索请求,基于所述第三索引信息和合并后的所述第二索引信息来检索与所述第二检索请求匹配的第二检索结果。
4.根据权利要求1所述的方法,进一步包括:
基于确定所述第三索引信息满足所述索引合并条件,分配第三易失性存储区域用于索引存储;
响应于接收到另一索引更新请求,基于所述另一索引更新请求,在所述第三易失性存储区域中创建第四索引信息;以及
在所述第一索引信息到所述第二索引信息的所述合并完成后,将所述第三索引信息合并到所述第二索引信息。
5.根据权利要求4所述的方法,其中分配所述第三易失性存储区域用于索引存储包括:
确定在被分配用于索引存储的易失性存储区域的当前数目是否达到阈值数目;以及
响应于所述当前数目低于所述阈值数目,分配所述第三易失性存储区域用于索引存储。
6.根据权利要求5所述的方法,进一步包括:
响应于所述当前数目达到所述阈值数目,阻塞对后续索引更新请求的响应。
7.根据权利要求1所述的方法,进一步包括:
响应于接收到所述索引更新请求,在另一非易失性存储区域中写入与所述索引更新请求对应的预写日志,所述预写日志至少包括所述索引更新请求包含的请求信息和相关联的待更新数据。
8.根据权利要求7所述的方法,进一步包括:
响应于所述第三索引信息到所述第二索引信息的合并完成,从所述另一非易失性存储区域中移除所述预写日志。
9.根据权利要求1所述的方法,其中所述第一索引信息、所述第二索引信息和所述第三索引信息中的至少一个基于倒排索引结构。
10.一种用于索引信息更新的装置,包括:
第一存储分配模块,被配置为响应于在第一易失性存储区域中存储的第一索引信息满足索引合并条件,分配第二易失性存储区域用于索引存储;
第一索引合并模块,被配置为将所述第一索引信息合并到非易失性存储区域中存储的第二索引信息,所述第二索引信息与所述第一索引信息不同;以及
第一索引创建模块,被配置为响应于接收到索引更新请求,基于所述索引更新请求,在所述第二易失性存储区域中创建第三索引信息,所述第三索引信息与所述第一索引信息和所述第二索引信息不同。
11.根据权利要求10所述的装置,进一步包括:
请求接收模块,被配置为在所述第一索引信息到所述第二索引信息的合并期间,接收第一检索请求;以及
第一检索模块,被配置为响应于所述第一检索请求,基于所述第一索引信息、所述第二索引信息和所述第三索引信息来检索与所述第一检索请求匹配的第一检索结果。
12.根据权利要求10所述的装置,进一步包括:
存储释放模块,被配置为响应于所述第一索引信息到所述第二索引信息的所述合并完成,释放所述第一易失性存储区域;以及
第二检索模块,被配置为响应于接收到第二检索请求,基于所述第三索引信息和合并后的所述第二索引信息来检索与所述第二检索请求匹配的第二检索结果。
13.根据权利要求10所述的装置,进一步包括:
第二存储分配模块,被配置为基于确定所述第三索引信息满足所述索引合并条件,分配第三易失性存储区域用于索引存储;
第二索引创建模块,被配置为响应于接收到另一索引更新请求,基于所述另一索引更新请求,在所述第三易失性存储区域中创建第四索引信息;以及
第二索引合并模块,被配置为在所述第一索引信息到所述第二索引信息的所述合并完成后,将所述第三索引信息合并到所述第二索引信息。
14.根据权利要求13所述的装置,其中所述第二存储分配模块包括:
数目比较模块,被配置为确定在被分配用于索引存储的易失性存储区域的当前数目是否达到阈值数目;以及
基于数目比较的分配模块,被配置为响应于所述当前数目低于所述阈值数目,分配所述第三易失性存储区域用于索引存储。
15.根据权利要求14所述的装置,进一步包括:
请求阻塞模块,被配置为响应于所述当前数目达到所述阈值数目,阻塞对后续索引更新请求的响应。
16.根据权利要求10所述的装置,进一步包括:
日志写入模块,被配置为响应于接收到所述索引更新请求,在另一非易失性存储区域中写入与所述索引更新请求对应的预写日志,所述预写日志至少包括所述索引更新请求包含的请求信息和相关联的待更新数据。
17.根据权利要求16所述的装置,进一步包括:
日志移除模块,被配置为响应于所述第三索引信息到所述第二索引信息的合并完成,从所述另一非易失性存储区域中移除所述预写日志。
18.根据权利要求10所述的装置,其中所述第一索引信息、所述第二索引信息和所述第三索引信息中的至少一个基于倒排索引结构。
19.一种电子设备,所述设备包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041580.1A CN109726264B (zh) | 2019-01-16 | 2019-01-16 | 用于索引信息更新的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910041580.1A CN109726264B (zh) | 2019-01-16 | 2019-01-16 | 用于索引信息更新的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726264A true CN109726264A (zh) | 2019-05-07 |
CN109726264B CN109726264B (zh) | 2022-02-25 |
Family
ID=66299043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910041580.1A Active CN109726264B (zh) | 2019-01-16 | 2019-01-16 | 用于索引信息更新的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726264B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795614A (zh) * | 2019-09-27 | 2020-02-14 | 广东浪潮大数据研究有限公司 | 一种索引自动优化方法及装置 |
CN111881328A (zh) * | 2020-07-30 | 2020-11-03 | 百度在线网络技术(北京)有限公司 | 资讯推送方法、装置、电子设备及存储介质 |
CN113641780A (zh) * | 2021-10-15 | 2021-11-12 | 阿里云计算有限公司 | 搜索方法、系统、设备、存储介质和计算机程序产品 |
WO2023246566A1 (zh) * | 2022-06-20 | 2023-12-28 | 中兴通讯股份有限公司 | 数据存储方法、读取方法、数据库系统、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112809A1 (en) * | 2004-06-25 | 2007-05-17 | Yan Arrouye | Methods and systems for managing data |
CN101216789A (zh) * | 2008-01-08 | 2008-07-09 | 福建星网锐捷网络有限公司 | 数据更新方法、装置及系统 |
CN102087646A (zh) * | 2009-12-07 | 2011-06-08 | 北大方正集团有限公司 | 一种索引建立方法及装置 |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
US20180032562A1 (en) * | 2010-04-19 | 2018-02-01 | Salesforce.Com, Inc. | Methods and systems for performing transparent object migration across storage tiers |
-
2019
- 2019-01-16 CN CN201910041580.1A patent/CN109726264B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070112809A1 (en) * | 2004-06-25 | 2007-05-17 | Yan Arrouye | Methods and systems for managing data |
CN101216789A (zh) * | 2008-01-08 | 2008-07-09 | 福建星网锐捷网络有限公司 | 数据更新方法、装置及系统 |
CN102087646A (zh) * | 2009-12-07 | 2011-06-08 | 北大方正集团有限公司 | 一种索引建立方法及装置 |
US20180032562A1 (en) * | 2010-04-19 | 2018-02-01 | Salesforce.Com, Inc. | Methods and systems for performing transparent object migration across storage tiers |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795614A (zh) * | 2019-09-27 | 2020-02-14 | 广东浪潮大数据研究有限公司 | 一种索引自动优化方法及装置 |
CN111881328A (zh) * | 2020-07-30 | 2020-11-03 | 百度在线网络技术(北京)有限公司 | 资讯推送方法、装置、电子设备及存储介质 |
CN113641780A (zh) * | 2021-10-15 | 2021-11-12 | 阿里云计算有限公司 | 搜索方法、系统、设备、存储介质和计算机程序产品 |
WO2023246566A1 (zh) * | 2022-06-20 | 2023-12-28 | 中兴通讯股份有限公司 | 数据存储方法、读取方法、数据库系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109726264B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725878B2 (en) | Storage apparatus, storage system, and control method of storage system for dynamically securing free space when a storage apparatus is disused | |
CN109726264A (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
US9747317B2 (en) | Preserving past states of file system nodes | |
US9569458B2 (en) | Preserving a state using snapshots with selective tuple versioning | |
CN108363813B (zh) | 数据存储方法、装置和系统 | |
US7730071B2 (en) | Data management system and data management method | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
CN110147407B (zh) | 一种数据处理方法、装置及数据库管理服务器 | |
CN109800185B (zh) | 一种数据存储系统中的数据缓存方法 | |
CN111078147A (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
JP2007241486A (ja) | 記憶装置システム | |
CN110096227A (zh) | 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质 | |
WO2016143095A1 (ja) | 計算機システム及びトランザクション処理の管理方法 | |
WO2016192496A1 (zh) | 数据迁移处理方法及装置 | |
US7844776B2 (en) | RAID capacity expansion handling method and system with concurrent data access capability | |
CN109460345B (zh) | 实时数据的计算方法及系统 | |
JP7421078B2 (ja) | 情報処理装置、情報処理システムおよびデータ再配置プログラム | |
CN113778975B (zh) | 基于分布式数据库的数据处理方法及装置 | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
KR102214697B1 (ko) | 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램 | |
CN115292394A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN105518664B (zh) | 管理数据库节点 | |
JP2013037669A (ja) | データベースの管理方法 | |
CN112559568A (zh) | 一种虚拟物品确定方法、装置及计算机可读存储介质 |
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 |