CN112084141A - 一种全文检索系统扩容方法、装置、设备及介质 - Google Patents

一种全文检索系统扩容方法、装置、设备及介质 Download PDF

Info

Publication number
CN112084141A
CN112084141A CN201910517161.0A CN201910517161A CN112084141A CN 112084141 A CN112084141 A CN 112084141A CN 201910517161 A CN201910517161 A CN 201910517161A CN 112084141 A CN112084141 A CN 112084141A
Authority
CN
China
Prior art keywords
capacity expansion
fragment
data
original
expansion
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.)
Pending
Application number
CN201910517161.0A
Other languages
English (en)
Inventor
贺伟
刘海锋
张墨飞
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201910517161.0A priority Critical patent/CN112084141A/zh
Publication of CN112084141A publication Critical patent/CN112084141A/zh
Pending legal-status Critical Current

Links

Images

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/17Details of further file system functions
    • 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/13File access structures, e.g. distributed indices
    • 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/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • 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/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices

Abstract

本发明实施例公开了一种全文检索系统扩容方法、装置、设备及介质,所述系统包括用于存储数据以及数据对应的文本索引的原始分片,所述方法包括:根据检测到的扩容指令确定原始分片对应的包括至少一个扩容分片的分片集合;根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围,其中,原始存储范围为扩容前原始分片存储数据的文本索引集合,扩容存储范围为扩容后扩容分片存储数据的文本索引集合;针对每个扩容分片,将扩容分片的扩容存储范围对应的数据存储至扩容分片中,通过根据原始分片的原始存储范围确定每个扩容分片的扩容存储范围,基于扩容存储范围进行数据的迁移,降低了全文检索系统扩容时数据迁移难度。

Description

一种全文检索系统扩容方法、装置、设备及介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种全文检索系统扩容方法、装置、设备及介质。
背景技术
系统的容量大小往往决定了存储系统的存储服务能力,在系统的使用过程中,日积月累的数据读写必将耗尽文件系统的空间,此时,扩容是提高该文件系统容量的主要方法。
现有的系统扩容主要有两种方式:一种是扩大数据存储节点上的存储容量,另一种是增加新的存储节点。但是由于存储节点的计算能力以及网络资源的传输能力有限,单纯增加存储节点上的存储容量所达到的扩容效果相对不明显,通常增加新的存储节点更加有效。在增加新的存储节点时,需要将系统原存储节点中的部分数据迁移至扩容存储节点中,因此将原存储节点中的哪些数据作为迁移数据是实现系统扩容的关键。
在实现本发明的过程中,发明人发现现有技术中至少存在以下技术问题:全文检索系统为实现高效检索一般采用倒排索引技术组织存储文档的数据,使用倒排索引技术组织存储文档的数据导致逆向还原每个文档所包含的数据比较困难,即针对每个存储节点而言,确定该存储节点中哪些数据属于同一个文本的数据较困难,而全文检索系统为了保证检索的准确度和可实现性,同一个文本下的数据(关键词等)需要存储在同一个存储节点中,因此系统扩容时数据迁移难度较大。
发明内容
本发明实施例提供了一种全文检索系统扩容方法、装置、设备及介质,以实现降低系统扩容时的复杂度及数据迁移难度。
第一方面,本发明实施例提供了一种全文检索系统扩容方法,所述系统包括用于存储数据以及数据对应的文本索引的原始分片,所述方法包括:
根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
第二方面,本发明实施例还提供了一种全文检索系统扩容装置,所述系统包括用于存储数据以及数据对应的文本索引的原始分片,所述装置包括:
分片集合确定模块,用于根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
存储范围确定模块,用于根据所述原始分片对应的原始存储范围确定所述分片集合中的每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
扩容分片存储模块,用于针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
第三方面,本发明实施例还提供了一种计算机设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的全文检索系统扩容方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的全文检索系统扩容方法。
本发明实施例通过根据检测到的扩容指令确定原始分片对应的包括至少一个扩容分片的分片集合;根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围,其中,原始存储范围为扩容前原始分片存储数据的文本索引集合,扩容存储范围为扩容后扩容分片存储数据的文本索引集合;针对每个扩容分片,将扩容分片的扩容存储范围对应的数据存储至扩容分片中,通过根据原始分片的原始存储范围确定每个扩容分片的扩容存储范围,基于扩容存储范围进行数据的迁移,降低了全文检索系统扩容时的复杂度及数据迁移难度。
附图说明
图1是本发明实施例一所提供的一种全文检索系统扩容方法的流程图;
图2是本发明实施例二所提供的一种全文检索系统扩容方法的流程图;
图3a是本发明实施例三所提供的一种全文检索系统扩容方法的流程图;
图3b是本发明实施例三所提供的一种全文检索扩容方法中的扩容示意图;
图4是本发明实施例四所提供的一种全文检索系统扩容装置的结构示意图;
图5是本发明实施例五所提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一所提供的一种全文检索系统扩容方法的流程图。本实施例可适用于对全文检索系统进行扩容时的情形,其中,所述系统包括用于存储数据以及数据对应的文本索引的原始分片。该方法可以由全文检索系统扩容装置执行,该全文检索系统扩容装置可以采用软件和/或硬件的方式实现,例如,该全文检索系统扩容装置可配置于计算机设备中。如图1所示,所述方法包括:
S110、根据检测到的扩容指令确定原始分片对应的分片集合,所述分片集合包括至少一个扩容分片。
在全文检索系统中,为了增大系统的数据可存储量以及查询性能,一般将数据分散存储在多台设备上,将数据分片存储就是将数据在多台存储设备上分布存储的技术。在本实施例中,分片为数据存储节点。可以理解为,每台设备对应一个分片,也可以为多个分片分布在同一台设备上。系统扩容是将一个原始分片扩容为多个分片,并将原始分片的部分数据迁移至扩容后的分片中,以使每个分片中所存储的数据量较均衡。在本实施例中,在检测到扩容指令时确定需要扩容的原始分片,并确定需要扩容的原始分片对应的分片集合,即确定原始分片与扩容后的分片的对应关系。可选的,可以从全部原始分片中选取部分原始分片进行扩容,也可以针对全部原始分片进行扩容。
在本实施例中,原始分片对应的分片集合中包括至少一个扩容分片。可选的,分片集合中可以仅包含至少两个扩容分片,即将原始分片扩容为至少两个扩容分片。示例性的,若原始分片为分片A,扩容分片为分片B和分片C,则将分片A扩容为分片B和分片C。可选的,分片集合还可以包含原始分片和至少一个扩容分片,即将原始分片扩容为原始分片和至少一个扩容分片。示例性的,若原始分片为分片A,扩容分片为分片D,则将分片A扩容为分片A和分片D。
S120、根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围。
在本实施例中,考虑到文本索引所占空间的大小远远小于文本对应的数据所占空间的大小,文本索引的存储不会影响系统性能,因此将数据与数据对应的文本索引对应存储至原始分片中。其中,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合。为了确定数据的迁移方式,根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围,使得扩容后分片集合中的每个分片(包括扩容分片,或原始分片和扩容分片)的扩容存储范围满足扩容存储要求。可选的,扩容存储要求可以为分片集合中每个分片的扩容存储范围之间无交集,且分片集合中每个分片的扩容存储范围的合集为原始分片的原始存储范围。
可以理解的是,若原始分片对应的分片集合中仅包含扩容分片,则使分片集合中扩容分片的扩容存储范围满足扩容存储要求,若原始分片对应的分片集合中包含原始分片和扩容分片,则使原始分片的扩容存储范围和扩容分片的扩容存储范围满足扩容存储要求。
示例性的,若原始分片A的原始存储范围为[0,1000],原始分片对应的分片集合包括原始分片A和扩容分片D,则扩容后原始分片A对应的扩容存储范围可以为[0,499),扩容分片D对应的扩容存储范围可以为[499,1000]。其中,原始分片A的扩容存储范围[0,499)与扩容分片D的扩容存储范围[499,1000]之间无交集,且原始分片A的扩容存储范围[0,499)与扩容分片D的扩容存储范围[499,1000]的合集为原始分片A的原始存储范围[0,1000]。
在本发明的一种实施方式中,所述根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,包括:将所述原始存储范围划分为至少两个连续的分裂存储范围,所述分裂存储范围的个数与所述分片集合中分片的个数相等;分别将每个所述分裂存储范围作为所述分片集合中每个分片的扩容存储范围。
可选的,可以根据分片集合中分片的个数确定分裂存储范围的个数,基于分裂存储范围的个数将原始存储范围划分为连续的分裂存储范围,将每个分裂存储范围作为分片集合内每个分片的扩容存储范围。示例性的,若分片集合内包含分片A、分片B和分片C,即分片集合中的分片个数为3个,原始存储范围为[M,N],则将原始存储范围划分为3个连续的分裂存储范围,即将[M,N]划分为[M,P)、[P,Q)和[Q,N],将[M,P)作为分片A的扩容存储范围,将[P,Q)作为分片B的扩容存储范围,将[Q,N]作为分片C的扩容存储范围。优选的,将原始存储范围进行均匀划分,划分为范围均等的至少两个分裂存储范围,使得扩容后每个分片的存储范围均等,使得扩容后每个分片所存储的数据分布均匀。
S130、针对每个扩容分片,将扩容分片的扩容存储范围对应的数据存储至扩容分片中。
在本实施例中,确定每个扩容分片的扩容存储范围后,针对每个扩容分片,将该扩容分片的扩容存储范围对应的数据存储至扩容分片中,即可完成系统的扩容。由于扩容存储范围对应的是该扩容分片所存储的文本索引集合,而在本实施例中,同一文本索引对应的数据为同一个文本下的数据,因此在本实施例中,根据文本索引进行数据的迁移,能够很容易确定待迁移的数据,且保证数据迁移后同一个文本下的数据存储在同一分片中。
本发明实施例通过根据检测到的扩容指令确定原始分片对应的包括至少一个扩容分片的分片集合;根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围,其中,原始存储范围为扩容前原始分片存储数据的文本索引集合,扩容存储范围为扩容后扩容分片存储数据的文本索引集合;针对每个扩容分片,将扩容分片的扩容存储范围对应的数据存储至扩容分片中,通过根据原始分片的原始存储范围确定每个扩容分片的扩容存储范围,基于扩容存储范围进行数据的迁移,降低了全文检索系统扩容时的复杂度及数据迁移难度。
在上述方案的基础上,在将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中之后,还包括:获取接收到的数据写入指令中包含的待写入数据,所述待写入数据包括待写入数据对应的文本标识和关键词;根据所述文本标识确定所述待写入数据的文本索引,根据所述文本索引确定所述待写入数据对应的写入分片;将所述文本索引、所述文本标识和所述关键词对应存储至所述写入分片中。
在本实施例中,在扩容完成后进行数据存储时,根据待写入数据的文本索引确定待写入数据对应的写入分片。具体的,当接收到数据写入指令时,首先获取数据写入指令中包含的待写入数据,如待写入数据的文本标识(网页链接、文本题目等)和该文本对应的关键词,然后根据文本标识生成待写入数据唯一对应的文本索引,根据文本索引确定待写入数据的写入分片,然后将文本索引、文本标识和关键词对应存储至写入分片中。在本实施例中,对生成文本索引的方式不做限定,只要保证相同的文本标识可生成唯一对应的文本索引即可。
在本发明的一种实施方式中,所述根据所述文本标识确定所述待写入数据的文本索引,根据所述文本索引确定所述待写入数据对应的写入分片,包括:根据哈希算法确定所述文本标识对应的哈希值,根据所述哈希值确定所述文本标识对应的文本索引;将包含有所述文本索引的扩容存储范围对应的扩容分片作为所述待写入数据对应的写入分片。
可选的,可以通过哈希算法生成待写入数据的文本标识对应的哈希值,将哈希值取模后生成待写入数据的文本索引,将包含有文本索引的扩容存储范围对应的分片作为待写入数据对应的写入分片。示例性的,若待写入数据的文本索引为400,分片C的扩容存储范围为[0,500],则将分片C作为待写入数据对应的写入分片,将待写入数据写入至分片C中。
实施例二
图2是本发明实施例二所提供的一种全文检索系统扩容方法的流程图。本实施例在上述实施例的基础上进行了进一步优化。如图2所示,所述方法包括:
S210、根据检测到的扩容指令确定原始分片对应的分片集合,所述分片集合包括至少一个扩容分片。
S220、根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围。
S230、将原始分片存储的原始数据写入各扩容分片,并删除扩容分片中的扩容待删除数据。
在本实施例中,对将扩容分片的扩容存储范围对应的数据存储至所述扩容分片中进行了具体化。其中,所述扩容待删除数据为所述原始数据中除与所述扩容分片的扩容存储范围对应的数据之外的其他数据。
在全文检索系统中,无法实现直接将某一分片中的部分数据写入另一分片,因此,若实现数据的部分迁移,需要将所有数据全部写入后删除无需迁移的数据。示例性的,若需要将分片A中的部分数据迁移至分片B,则将分片A中的全部数据写入至分片B后,从分片B中删除无需迁移的数据。
在本实施例中,将原始分片存储的原始数据写入至各扩容分片,并删除扩容分片中的扩容待删除数据,以使扩容分片中所存储的数据为与扩容分片的扩容存储范围对应的数据。示例性的,假设原始分片的原始存储范围为[0,1000],扩容分片B的扩容存储范围为[0,500),则将原始分片存储的原始数据全部写入扩容分片B后,将存储范围[500,1000]对应的数据作为扩容待删除数据进行删除。
S240、在扩容分片中的扩容待删除数据删除完成后,删除原始分片中的原始待删除数据。
为了保证数据在迁移过程中不会丢失,或在数据在迁移过程中丢失后可重新迁移,当所有扩容分片内均存储有该扩容分片的扩容存储范围对应的数据后,再对原始分片内的数据进行处理。
在本实施例中,所述原始待删除数据为所述原始数据中除与所述原始分片的扩容存储范围对应的数据之外的其他数据。原始分片对应的分片集合中可能仅包含扩容分片,还可能包含原始分片和扩容分片。当分片集合中仅包含扩容分片时,原始分片对应的扩容存储范围为空,则删除原始分片中的所有数据,当分片集合中包含原始分片和扩容分片时,根据原始分片的扩容存储范围确定原始待删除数据并删除。示例性的,假设原始分片的原始存储范围为[0,1000],原始分片的扩容存储范围为[500,1000],则在扩容分片中的扩容待删除数据删除完成后,将扩容存储范围[0,500)对应的数据作为原始待删除数据进行删除。
本发明实施例的技术方案,对将扩容分片的扩容存储范围对应的数据存储至所述扩容分片中进行了具体化,通过将原始分片存储的原始数据写入各扩容分片,并删除扩容分片中的扩容待删除数据,在扩容分片中的扩容待删除数据删除完成后,删除原始分片中的原始待删除数据,保证了数据在迁移过程中不会丢失,或在数据丢失后可再次完成迁移,
在上述方案的基础上,所述删除所述扩容分片中的扩容待删除数据,包括:
针对每个所述扩容分片,根据所述扩容分片的扩容存储范围确定所述扩容分片的扩容待删除数据对应的文本索引,并根据所述扩容待删除数据的文本索引生成数据删除逻辑,以根据所述数据删除逻辑删除所述扩容待删除数据。
在本实施例中,考虑到删除扩容待删除数据耗时较长,可以在原始分片中的原始数据写入至扩容分片后,先生成数据删除逻辑,对扩容待删除数据进行标记删除,使扩容分片不必在扩容待删除数据进行物理删除后才能执行下一步操作(如删除原始分片中的原始待删除数据),加快了系统的扩容速度。可选的,针对每个扩容分片,根据扩容分片的扩容存储范围确定该扩容分片的扩容待删除数据的文本索引,根据扩容待删除数据的文本索引生成数据生成逻辑,使扩容分片根据文本索引进行数据的删除。
在上述方案的基础上,所述方法还包括:
在检测到扩容指令后,根据接收到的数据写入指令确定所述数据写入指令对应的写入扩容分片,并根据所述写入扩容分片以及所述数据写入指令生成数据写入日志;
在所述写入扩容分片中的扩容待删除数据删除完成后,将所述数据写入日志写入至所述写入扩容分片,以使所述写入扩容分片执行与所述数据写入日志对应的写入操作。
在本实施例中,在检测到扩容指令后,在扩容分片的扩容待删除数据删除完成之前,扩容分片未加入拓扑结构,不执行读写操作,仅通过原始分片执行读写操作,在上述阶段中,当接收到数据写入指令后,根据扩容后的扩容存储范围确定数据写入指令对应的写入分片(可以为原始分片,也可以为扩容分片),当数据写入指令对应的写入分片为原始分片时,可以直接在原始分片中执行写入操作。当数据写入指令对应的写入分片为扩容分片时,在原始分片生成数据写入执行对应的数据写入日志,并在扩容分片扩容待删除数据删除完成后,将数据写入日志写入至写入扩容分片,以使写入扩容分片执行与数据写入日志对应的写入操作。具体的,确定数据写入指令对应的写入分片的方式可参见上述实施例,在此不再赘述。
示例性的,假设原始分片为分片A,数据写入指令对应的写入扩容分片为分片B,则在接收到数据写入指令后,分片A中生成数据写入指令对应的数据写入日志,在分片B的扩容待删除数据删除完成后,将数据写入日志写入分片B,以使分片B执行与数据写入日志对应的写入操作。
实施例三
图3a是本发明实施例三所提供的一种全文检索系统扩容方法的流程图。本实施例在上述实施例的基础上,提供了一种优选实施例。本实施例以将分片1扩容为分片1_1和分片1_2为例进行说明。如图3a所示,所述方法包括:
S310、将分片1的存储文件复制到分片1_1,分片1_2中。
在本实施例中,将文档进行存储时,计算文档标识的哈希值,将哈希值通过取模等方式生成文档的索引值,根据各分片的存储范围确定文档所属分片,将文档写入对应分片中,分片在处理文档的同时将索引值一起存储。示例性的,系统中所有分片对应的文档索引范围可以为(0~65535)或(0~4294967296)。
在需要进行扩容时,将分片1的存储文件采用硬连接的方式完成数据快照,将分片1的存储文件复制到分片1_1,分片1_2中。
S320、启动分片1_1,分片1_2,根据新分裂的分片各自负责的文档索引范围,删除不属于各自文档索引范围的文档。
当一个分片需要扩容为两个分片时,计算该分片负责的文档索引范围的中间值,基于中间值将文档索引范围划分为两个文档索引范围,将划分得到的两个文档索引范围分别作为扩容后的两个分片负责的文档索引范围。针对扩容后的每个分片,删除不属于该分片文档索引范围的文档。
图3b是本发明实施例三所提供的一种全文检索扩容方法中的扩容示意图,如图3b所示,分片1负责的文档索引范围为(0~1000),分片2负责的文档索引范围为(1000~2000),……,分片N负责的文档索引范围为(X~Y),每个分片中存储有该分片负责的文档索引范围内的文档。以将分片1分裂为分片1_1和分片1_2为例,计算分片1负责的文档索引范围的中间值为500,则将文档索引范围划分为(0~500)和(500~1000),将(0~500)作为分片1_1负责的文档索引范围,将(500~1000)作为分片1_2负责的文档索引范围,并删除分片1_1中文档索引范围在(500~1000)内的文档,删除分片1_2中文档索引范围在(0~500)内的文档。
需要说明的是,这个阶段中所指的删除并不是物理删除,而是采用标记删除的方式快速完成删除,标记删除速度非常快,加快系统扩容速度。
S330、分片1将数据写入日志分别追加至分片1_1和分片1_2。
在从接收到扩容指令到分片1_1、分片1_2标记删除完成这个时间段内,分片1可以接收新的读写操作,保证服务不中断,在执行读取操作时,直接从原分片中读取,在执行写入操作时,根据写入操作指令确定对应的写入分片,并生成数据写入日志,在分片1_1、分片1_2标记删除完成后,分片1将生成的数据写入日志发送至对应的分片,以使分片1_1和分片1_2追加写入操作。
S340、日志追加完成后,在分片拓扑中增加分片1_1和分片1_2,分裂完成。
在分片1_1和分片1_2的数据写入日志追加完成后,将分片1_1和分片1_2添加至分片拓扑结构中,使分片1_1和分片1_2对客户端可见,可执行读写操作,并将原分片1根据具体的策略进行删除。
本实施例提供的技术方案不需要通过原文档或者倒排索引逆向追踪等技术手段重建原来的索引,直接在文件层面进行数据分裂,通过给文档绑定文档索引,通过快照文件复制以及日志追加的方式巧妙的解决在系统不停服的情况下通过分片分裂达到系统动态扩容的问题。
实施例四
图4是本发明实施例四所提供的一种全文检索系统扩容装置的结构示意图。所述系统包括用于存储数据以及数据对应的文本索引的原始分片,该全文检索系统扩容装置可以采用软件和/或硬件的方式实现,例如该全文检索系统扩容装置可以配置于计算机设备中。如图4所示,所述装置包括分片集合确定模块410、存储范围确定模块420和扩容分片存储模块430,其中:
分片集合确定模块410,用于根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
存储范围确定模块420,用于根据所述原始分片对应的原始存储范围确定所述分片集合中的每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
扩容分片存储模块430,用于针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
本发明实施例通过分片集合确定模块根据检测到的扩容指令确定原始分片对应的分片集合,分片集合包括至少一个扩容分片;存储范围确定模块根据原始分片对应的原始存储范围确定分片集合中每个扩容分片的扩容存储范围,原始存储范围为扩容前原始分片存储数据的文本索引集合,扩容存储范围为扩容后扩容分片存储数据的文本索引集合;扩容分片存储模块针对每个扩容分片,将扩容分片的扩容存储范围对应的数据存储至扩容分片中,通过根据原始分片的原始存储范围确定每个扩容分片的扩容存储范围,基于扩容存储范围进行数据的迁移,降低了全文检索系统扩容时的复杂度及数据迁移难度。
在上述方案的基础上,所述存储范围确定模块420具体用于:
将所述原始存储范围划分为至少两个连续的分裂存储范围,所述分裂存储范围的个数与所述分片集合中分片的个数相等;
分别将每个所述分裂存储范围作为所述分片集合中每个分片的扩容存储范围。
在上述方案的基础上,所述扩容分片存储模块430具体用于:
将所述原始分片存储的原始数据写入各所述扩容分片,并删除所述扩容分片中的扩容待删除数据,所述扩容待删除数据为所述原始数据中除与所述扩容分片的扩容存储范围对应的数据之外的其他数据。
在上述方案的基础上,所述分片集合还包括所述原始分片,所述扩容分片存储模块430还用于:
在所述扩容分片中的扩容待删除数据删除完成后,删除所述原始分片中的原始待删除数据,所述原始待删除数据为所述原始数据中除与所述原始分片的扩容存储范围对应的数据之外的其他数据。
在上述方案的基础上,扩容分片存储模块430具体用于:
针对每个所述扩容分片,根据所述扩容分片的扩容存储范围确定所述扩容分片的扩容待删除数据对应的文本索引,并根据所述扩容待删除数据的文本索引生成数据删除逻辑,以根据所述数据删除逻辑删除所述扩容待删除数据。
在上述方案的基础上,所述装置还包括数据追加模块,用于:
在检测到扩容指令后,根据接收到的数据写入指令确定所述数据写入指令对应的写入扩容分片,并根据所述写入扩容分片以及所述数据写入指令生成数据写入日志;
在所述写入扩容分片中的扩容待删除数据删除完成后,将所述数据写入日志写入至所述写入扩容分片,以使所述写入扩容分片执行与所述数据写入日志对应的写入操作。
在上述方案的基础上,所述装置还包括数据写入模块,包括:
写入数据获取单元,用于在将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中之后,获取接收到的数据写入指令中包含的待写入数据,所述待写入数据包括待写入数据对应的文本标识和关键词;
写入分片确定单元,用于根据所述文本标识确定所述待写入数据的文本索引,根据所述文本索引确定所述待写入数据对应的写入分片;
写入数据写入单元,用于将所述文本索引、所述文本标识和所述关键词对应存储至所述写入分片中。
在上述方案的基础上,所述写入分片确定单元具体用于:
根据哈希算法确定所述文本标识对应的哈希值,根据所述哈希值确定所述文本标识对应的文本索引;
将包含有所述文本索引的扩容存储范围对应的扩容分片作为所述待写入数据对应的写入分片。
本发明实施例所提供的全文检索系统扩容装置可执行任意实施例所提供的全文检索系统扩容方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五所提供的计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备512的框图。图5显示的计算机设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备512以通用计算设备的形式表现。计算机设备512的组件可以包括但不限于:一个或者多个处理器516,系统存储器528,连接不同系统组件(包括系统存储器528和处理器516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器516或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)530和/或高速缓存存储器532。计算机设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储装置534可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该计算机设备512交互的设备通信,和/或与使得该计算机设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,计算机设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机设备512的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器516通过运行存储在系统存储器528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的全文检索系统扩容方法,该方法包括:
根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供的全文检索系统扩容方法的技术方案。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的全文检索系统扩容方法,该方法包括:
根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的全文检索系统扩容方法中的相关操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (11)

1.一种全文检索系统扩容方法,其特征在于,所述系统包括用于存储数据以及数据对应的文本索引的原始分片,所述方法包括:
根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述原始分片对应的原始存储范围确定所述分片集合中每个扩容分片的扩容存储范围,包括:
将所述原始存储范围划分为至少两个连续的分裂存储范围,所述分裂存储范围的个数与所述分片集合中分片的个数相等;
分别将每个所述分裂存储范围作为所述分片集合中每个分片的扩容存储范围。
3.根据权利要求1所述的方法,其特征在于,所述将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中,包括:
将所述原始分片存储的原始数据写入各所述扩容分片,并删除所述扩容分片中的扩容待删除数据,所述扩容待删除数据为所述原始数据中除与所述扩容分片的扩容存储范围对应的数据之外的其他数据。
4.根据权利要求3所述的方法,其特征在于,所述分片集合还包括所述原始分片,所述方法还包括:
在所述扩容分片中的扩容待删除数据删除完成后,删除所述原始分片中的原始待删除数据,所述原始待删除数据为所述原始数据中除与所述原始分片的扩容存储范围对应的数据之外的其他数据。
5.根据权利要求3所述的方法,其特征在于,所述删除所述扩容分片中的扩容待删除数据,包括:
针对每个所述扩容分片,根据所述扩容分片的扩容存储范围确定所述扩容分片的扩容待删除数据对应的文本索引,并根据所述扩容待删除数据的文本索引生成数据删除逻辑,以根据所述数据删除逻辑删除所述扩容待删除数据。
6.根据权利要求3所述的方法,其特征在于,还包括:
在检测到扩容指令后,根据接收到的数据写入指令确定所述数据写入指令对应的写入扩容分片,并根据所述写入扩容分片以及所述数据写入指令生成数据写入日志;
在所述写入扩容分片中的扩容待删除数据删除完成后,将所述数据写入日志写入至所述写入扩容分片,以使所述写入扩容分片执行与所述数据写入日志对应的写入操作。
7.根据权利要求1所述的方法,其特征在于,在将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中之后,还包括:
获取接收到的数据写入指令中包含的待写入数据,所述待写入数据包括待写入数据对应的文本标识和关键词;
根据所述文本标识确定所述待写入数据的文本索引,根据所述文本索引确定所述待写入数据对应的写入分片;
将所述文本索引、所述文本标识和所述关键词对应存储至所述写入分片中。
8.根据权利要求7所述的方法,其特征在于,所述根据所述文本标识确定所述待写入数据的文本索引,根据所述文本索引确定所述待写入数据对应的写入分片,包括:
根据哈希算法确定所述文本标识对应的哈希值,根据所述哈希值确定所述文本标识对应的文本索引;
将包含有所述文本索引的扩容存储范围对应的扩容分片作为所述待写入数据对应的写入分片。
9.一种全文检索系统扩容装置,其特征在于,所述系统包括用于存储数据以及数据对应的文本索引的原始分片,所述装置包括:
分片集合确定模块,用于根据检测到的扩容指令确定所述原始分片对应的分片集合,所述分片集合包括至少一个扩容分片;
存储范围确定模块,用于根据所述原始分片对应的原始存储范围确定所述分片集合中的每个扩容分片的扩容存储范围,所述原始存储范围为扩容前所述原始分片存储数据的文本索引集合,所述扩容存储范围为扩容后所述扩容分片存储数据的文本索引集合;
扩容分片存储模块,用于针对每个所述扩容分片,将所述扩容分片的扩容存储范围对应的数据存储至所述扩容分片中。
10.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的全文检索系统扩容方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的全文检索系统扩容方法。
CN201910517161.0A 2019-06-14 2019-06-14 一种全文检索系统扩容方法、装置、设备及介质 Pending CN112084141A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910517161.0A CN112084141A (zh) 2019-06-14 2019-06-14 一种全文检索系统扩容方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910517161.0A CN112084141A (zh) 2019-06-14 2019-06-14 一种全文检索系统扩容方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN112084141A true CN112084141A (zh) 2020-12-15

Family

ID=73734581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910517161.0A Pending CN112084141A (zh) 2019-06-14 2019-06-14 一种全文检索系统扩容方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112084141A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609245A (zh) * 2021-06-24 2021-11-05 济南浪潮数据技术有限公司 一种索引的分片扩容方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609245A (zh) * 2021-06-24 2021-11-05 济南浪潮数据技术有限公司 一种索引的分片扩容方法及系统
CN113609245B (zh) * 2021-06-24 2023-12-22 济南浪潮数据技术有限公司 一种索引的分片扩容方法及系统

Similar Documents

Publication Publication Date Title
CN109254733B (zh) 用于存储数据的方法、装置和系统
CN108519862B (zh) 区块链系统的存储方法、装置、系统和存储介质
US11853549B2 (en) Index storage in shingled magnetic recording (SMR) storage system with non-shingled region
US10331641B2 (en) Hash database configuration method and apparatus
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
CN110109915B (zh) 用于管理哈希表的方法、设备和计算机程序产品
US11580162B2 (en) Key value append
US20160350302A1 (en) Dynamically splitting a range of a node in a distributed hash table
CN111046034A (zh) 管理内存数据及在内存中维护数据的方法和系统
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
CN111381779A (zh) 数据处理方法、装置、设备及存储介质
CN113806300B (zh) 数据存储方法、系统、装置、设备及存储介质
CN105677904A (zh) 基于分布式文件系统的小文件存储方法及装置
US20110153677A1 (en) Apparatus and method for managing index information of high-dimensional data
US9858300B2 (en) Hash based de-duplication in a storage system
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN111290700A (zh) 分布式数据读写方法和系统
US10209909B1 (en) Storage element cloning in presence of data storage pre-mapper
CN110221778A (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