CN112783835A - 索引管理方法、装置及电子设备 - Google Patents
索引管理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112783835A CN112783835A CN202110264712.4A CN202110264712A CN112783835A CN 112783835 A CN112783835 A CN 112783835A CN 202110264712 A CN202110264712 A CN 202110264712A CN 112783835 A CN112783835 A CN 112783835A
- Authority
- CN
- China
- Prior art keywords
- index
- fragment
- target
- information
- identifier
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 44
- 239000012634 fragment Substances 0.000 claims abstract description 336
- 238000000034 method Methods 0.000 claims abstract description 80
- 238000013467 fragmentation Methods 0.000 claims abstract description 78
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 78
- 230000008569 process Effects 0.000 claims description 32
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 239000002699 waste material Substances 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种索引管理方法、装置及电子设备,应用于分布式文件系统,所述分布式文件系统包括对象存储容器,该方法包括:从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;根据所述目标分片信息,对所述目标索引分片执行重新分片处理。该方法可以快速、可靠的对对象存储容器的索引进行管理,以提升系统写入性能。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种索引管理方法、装置、电子设备及计算机可读存储介质。
背景技术
Ceph是一个分布式文件系统,其提供块(Block)存储、对象(Object)存储和文件存储等存储方案,是可靠的、可扩展的、统一的、分布式的存储系统。随着云平台的不断发展,Ceph基于其可靠、可扩展等优点得到了人们的广泛使用。
目前的Ceph系统中,对象存储容器(Bucket)往往是基于哈希的方式进行索引管理,其对索引(Bucket Index)进行重新分片(Reshard)的方式例如为:当一对象存储容器的所有索引分片管理的对象个数超过一定量后,为该对象存储容器生成1倍的索引分片,再通过哈希的方式将原始索引分片中的所有索引信息重新分配到新的索引分片中。
然而,发明人发现,现有技术在对索引进行重新分片时,在基于新生成的索引分片,将原始分片中的索引重新哈希分配到新的索引分片的过程中,该对象存储容器将被禁止用户写入,即,阻塞用户写入;在实际中,对象存储容器中的对象个数往往是超过百万级别的,因此,现有的索引管理方法在对索引进行重新分片时,可能存在过长阻塞,进而影响系统写入性能的问题。
以上,是以Ceph系统为例,说明现有分布式文件系统中索引管理可能存在的问题,由于在其他分布式文件系统中也可能存在以上问题,因此,有必要提供一种索引管理方法以解决上述问题。
发明内容
本公开实施例的一个目的是提供一种用于索引管理的新技术方案。
根据本公开的第一方面,提供了一种索引管理方法,应用于分布式文件系统,所述分布式文件系统包括对象存储容器,该方法包括:
从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;
根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
根据本公开的第二方面,本公开还提供了一种索引管理装置,应用于分布式文件系统,所述分布式文件系统包括对象存储容器,包括:
目标分片信息获取模块,用于从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;
重新分片处理模块,用于根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
根据本公开的第三方面,还提供了一种电子设备,包括根据本公开的第二方面所述的装置;或者,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行根据本公开的第一方面所述的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据本公开的第一方面所述的方法。
本公开的有益效果在于,根据本公开实施例的方法,在包括对象存储容器的分布式文件系统中,针对该对象存储容器中需要进行重新分片处理的索引分片,可以通过从目标任务序列中获取待处理的目标索引分片的目标分片信息,并根据该目标分片信息,对该目标索引分片执行重新分片处理。在该方法中,由于为对象存储容器分配的索引分片集合中的各索引分片之间顺序排列,并且每一索引分片中的索引也是顺序排列,因此,该方法使得在进行索引重新分片时,可以不必对一对象存储容器的所有索引分片均进行重新分片,而是仅对为其分配的索引分片集合中的一个或几个索引分片单独进行重新分片;并且,该方法通过引入与每一索引分片对应的分裂管控信息,还可以防止对同一索引分片的重复重新分片,以及,还可以在重新分片处理失败的情况下进行失败回滚,从而快速、可靠的对对象存储容器的索引进行管理,以提升系统写入性能。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其他特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是根据一个实施例的索引管理方法的流程示意图。
图2是本公开实施例提供的索引分片的重新分片处理示意图。
图3是本公开实施例提供的索引管理装置的原理框图。
图4是本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其他例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<方法实施例>
在分布式文件系统中,例如,Ceph系统中,其在处理对象存储请求时,一般是先通过对象存储网关(RGW,RADOS Gateway)接收对象存储请求;之后,该对象存储网关响应于该请求,为该请求中的对象分配对象存储容器,即,Bucket,在该对象存储容器存储该对象之后,为了便于管理该对象,该对象存储容器一般会根据该对象的键值为其哈希对应的索引分片,并将该对象的索引写入该索引分片;之后,在更新完成后,系统一般会将该对象存储容器的元数据更新到其底层共有存储系统(RADOS,Reliable Autonomic DistributedObject Store)中,以及通知其他对象存储网关该对象存储网关的元数据已经更新完成。
然而,现有分布式文件系统中,一般是基于哈希的方式进行索引管理,即,为对象存储容器分配的各索引分片之间是无序的,并且同一索引分片中的索引之间也是无序的;这就导致当一对象存储容器管理的对象个数超过一定数量后,即,当前为其分配的所有索引分片中存储的索引数量超过一定数量后,系统必须为其创建新的索引分片,而在进行索引重新分配过程中,需要将该对象存储容器的所有原始索引分片中的索引视为一整体,并对其重新进行哈希分配,即执行重新分片处理;而在对该对象存储容器的所有索引分片执行重新分片处理时,该对象存储容器将进入写阻塞状态,无法处理任何对象写入操作,并且,由于现有对象存储容器的索引分片存储的索引的个数是超过百万级别的,所以该阻塞时长通常是以小时为单位进行计算,存在大幅度降低系统写性能的问题。
针对上述问题,为了提升索引重新分片速度,以提升分布式文件系统的写性能,本公开实施例提供一种索引管理方法,请参看图1,其是本公开实施例提供的索引管理方法的流程示意图,该方法可以由电子设备实施,该电子设备例如可以为服务器,当然,根据实际需要,该电子设备也可以为终端设备,此处不做特殊限定。
如图1所示,本实施例的方法可以包括如下步骤S1100-S1200,以下予以详细说明。
步骤S1100,从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片。
在本实施例中,如无特殊说明,以应用该方法的分布式文件系统为Ceph系统为例进行说明,当然,在具体实施时,该方法当然也可以应用于其他系统中,此处不做特殊限定。
区别于现有基于哈希的方式为Ceph系统的对象存储容器分配索引分片以及进行索引管理的方式,在本实施例中,在为对象存储容器分配索引分片时,可以通过指定参数的方式,以顺序切片方式为对象存储容器分配至少一个索引分片,以使得其索引分片集合中的索引分片之间顺序排列,以及每一索引分片中的索引顺序排列;通过该种方式使得在进行索引重新分片处理时,可以仅对其索引分片集合中满足条件的一个或几个索引分片单独进行重新分片处理,而在针对该一个或几个索引分片进行重新分片的过程中,该对象存储容器的其他索引分片的写入处理不被阻塞,从而达到提升索引重新分片的处理速度,进而提升整个分布式文件系统的写入性能的效果。
另外,现有技术中在基于哈希的方式进行索引管理时,在用户需要遍历某一对象存储容器中的对象,即list bucket时,由于需要扫描系统中所有索引分片,所以往往还可能存在IO放大以及遍历速度慢的问题;而在本实施例中,由于本实施例是根据顺序切片方式为对象存储容器分配索引分片,因此,为每一对象存储容器管理的索引数据是全局有序的,在用户需要遍历一对象存储容器中的对象时,可以根据用户遍历请求中的起始键值,先计算得到对应的、处于起始位置的索引分片_S;再根据遍历请求中的遍历个数,计算得到处于结束位置的索引分片_E,则索引分片_S、索引分片_E之间的范围即包含用户待遍历的对象的索引,因此,可以通过该范围内的索引,遍历查找其对应对象的信息,并将该信息提供给用户,从而既可以减少不必要的IO扫描操作,又可以提升遍历速度。
在本公开的实施例中,可以将整个分布式文件系统中待执行重新分片处理的索引分片的相关信息放入到一任务序列中,该任务序列可以由该系统中的对象存储网关的进程共同进行维护;同时,在该系统中,可以设置一用于执行所有重新分片处理的线程,该线程按照预设时间间隔查询该任务序列中是否存在待执行重新分片处理的索引分片的相关信息,如果存在,则获取该信息,并对该索引分片执行重新分片处理。
也即是说,在本实施例中,该方法可以通过以下步骤维护所述目标任务队列:获取所述对象存储容器的全局索引分片信息,其中,所述全局索引分片信息包括所述对象存储容器对应的索引分片的信息;在接收到对象写入请求的情况下,所述对象存储容器存储所述请求中的对象,以及,生成将所述对象的元信息写入所述对象存储容器的索引分片中的索引写入请求;响应于所述索引写入请求,根据所述全局索引分片信息,判断所述对象存储容器的索引分片中存储的对象元信息的数量是否不小于预设数量阈值;在所述数量不小于所述预设数量阈值的情况下,确定对所述索引分片执行重新分片处理,并将所述索引分片的分片信息加入所述目标任务队列;其中,该目标任务序列可以为一任务队列,或者也可以以其他数据结构实现,此处不做特殊限定。
具体来讲,在分布式文件系统运行过程中,每一对象存储网关可以维护一全局索引信息表,该全局索引信息表包含该对象存储网关负责管理的所有对象存储容器的索引分片的相关信息,例如,某一索引分片的分片标识、存储的对象个数、占用的存储空间大小等信息中的至少一项;在具体实施时,该全局索引信息表可以由对象存储网关通过查询每一索引分片的文件头,即header中记录的元信息获得,其具体获得过程此处不再赘述。
同时,在该系统运行过程中,针对用户上传对象的操作,对象存储网关会响应于该操作生成的对象存储请求,触发判断是否需要对某一索引分片进行重新分片处理,其处理过程具体为,在其负责管理的某一对象存储容器存储该对象存储请求中的对象,并准备将其索引值写入为该对象分配的某一索引分片时,将处罚生成一索引写入请求;响应于该索引写入请求,该对象存储网关可以根据该全局索引信息表判断该索引写入请求对应的索引分片中存储的对象元信息的数量是否不小于预设数量阈值,若是,该对象存储网关则会将该索引分片的相关信息写入到该目标任务序列中。
另外,由于在分布式文件系统中可能同时包含多个对象存储网关的进程,在同一时刻,可能进程1已经完成了对目标任务队列中索引分片1的重新分片处理;然而,进程2可能刚刚准备对索引分片1进行重新分片处理,这就可能造成索引分片1被重复执行了重新分片处理,从而造成系统IO资源的浪费,因此,在本实施例中,为了避免在预设时间内重复对同一索引分片进行重新分片处理,本公开实施例还引入了与每一索引分片对应的分裂管控信息,该分裂管控信息可以在对索引分片进行重新分片处理时,用于进行重复判定,以避免造成系统IO资源的浪费,其详细处理过程将在后续步骤中进行详细说明。
步骤S1200,根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
在经过步骤S1100,从目标任务序列中获得目标索引分片的目标分片信息之后,即可根据该目标分片信息,对该目标索引分片执行重新分片处理。
在本实施例中,在执行所述重新分片处理之前,可以先根据该目标分片信息中与该目标索引分片对应的分裂管控信息,判断当前时刻系统中是否已存在其他进程完成对该索引分片的重新分片处理,以避免对该索引分片的重复处理所造成的系统IO资源浪费。
具体来讲,所述根据所述目标分片信息,对所述目标索引分片执行重新分片处理,包括:根据所述分裂管控信息,获得分裂判定结果,其中,所述分裂判定结果表征在预设时间内是否已对所述目标索引分片执行过重新分片处理;在所述分裂判定结果表征在预设时间内未对所述目标索引分片执行过重新分片处理的情况下,根据所述分片标识,对所述目标索引分片执行重新分片处理。
在一个实施例中,所述分裂管控信息包括所述目标索引分片的第一版本标识,其中,所述第一版本标识为将所述目标索引分片加入所述目标任务队列时刻、所述目标索引分片的版本标识;所述根据所述分裂管控信息,获得分裂判定结果,包括:从所述全局索引分片信息中,获得所述目标索引分片的第二版本标识,其中,所述第二版本标识为当前时刻、所述目标索引分片的版本标识;在所述第一版本标识和所述第二版本标识一致的情况下,判定所述分裂判定结果为表征未在预设时间内对所述目标索引分片执行过重新分片处理的信息。
具体来讲,在本实施例中,可以为每一索引分片设置一版本标识,在系统检测到需要对一索引分片,例如,索引分片1进行重新分片处理时,可以将当前时刻,例如,时刻1时该索引分片的分片标识以及版本标识1作为其分片信息加入目标任务序列;在时刻2时,在从目标任务序列中获取到该索引分片的分片信息,即,在时刻1时加入的分片标识以及版本标识1,并准备根据该分片信息,对其执行重新分片处理时,可以先从该索引分片对应的对象存储容器所管理的全局索引信息中,查询时刻2时、该索引分片的实际版本标识,即版本标识2;如果版本标识1和版本标识2一致,则可判定为没有其他进程处理过该索引分片,反之,则说明已有其他进程对该索引分片执行过重新分片处理,则此时可以不必再重复对该索引分片进行重新分片处理,以避免造成IO资源浪费。
以上,是以分裂管控信息为目标索引分片对应的版本标识为例,说明如何根据分裂管控信息,判定是否在预设时间内对目标索引分片执行过重新分片处理。在具体实施时,本公开实施例还提供另一种方法,在该方法中,基于在该预设时间内,系统不会重复多次对同一索引分片进行重新分片处理的假设进行重复判定处理,即,所述分裂管控信息还可以包括所述目标索引分片对应的第一时间戳,其中,所述第一时间戳表征所述目标索引分片的创建时间;所述根据所述分裂管控信息,获得分裂判定结果,包括:获取当前时刻对应的第二时间戳;在所述第二时间戳和所述第一时间戳的间隔时间大于预设时间间隔的情况下,判定所述分裂判定结果为表征未在预设时间内对所述目标索引分片执行过重新分片处理的信息。
在该实施例中,设定索引分片的创建时间为上一次对其执行重新分片处理后的时间,因此,在从目标任务序列中获得目标索引序列,并根据目标分片信息对其进行重新分片处理时,可以先根据当前时刻的第二时间戳以及表征该目标索引分片的创建时间的第一时间戳之间的间隔时间,判定在预设时间内是否对该目标索引分片执行过重新分片处理,例如,在预设时间间隔为10秒,在该间隔时间为6秒的情况下,则可判定当前待进行的重新分片处理为重复处理,可以忽略掉该任务。
需要说明的是,在具体实施时,当然也可以将上述两种判定重复处理的方法结合使用,或者还可以使用其他方法以解决该问题,例如,在一对象存储网关的进程中,当将一索引分片的相关信息加入目标任务序列时,该进程可以存储该索引分片的分片标识;在预设时间间隔内,当该进程再次检测到需要对该索引分片执行重新分片处理时,该进程可以根据上述分片标识,先判断是否已添加过该索引分片的相关信息到目标任务序列中,如果是,则进程可以直接忽略该次处理。
在经过以上处理,根据目标索引分片对应的分裂管控信息,判断在预设时间内未对该索引分片执行过重新分片处理的情况下,即可根据该目标索引分片的分片标识,对其进行重新分片处理,以下予以详细说明。
在一个实施例中,所述根据所述分片标识,对所述目标索引分片执行重新分片处理,包括:新建N个索引分片,其中,N为不小于2的整数;根据所述分片标识,获得所述目标索引分片中存储的索引的数量;根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片。
在具体实施时,所述根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片,包括:根据所述数量,将所述目标索引分片中存储的索引按顺序拆分为M个索引集合,其中,M为不小于2,且不大于N的整数;将所述M个索引集合中的索引按顺序对应的分别写入所述N个索引分片;将位于所述N个索引分片的首位的第一索引分片的版本标识的值设置为对所述第一版本标识进行加1处理后的数值,并将所述第一索引分片的分片标识设置为所述目标索引分片的分片标识;以及,将位于所述N个索引分片的其他位置处的第二索引分片的版本标识的值设置为预设版本标识值,并按预设标识分配算法为所述第二索引分片分配分片标识;将所述N个索引分片的创建时间分别写入所述N个索引分片的元数据中。
其中,在根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片步骤之后,该方法还包括:获取所述N个索引分片的分片信息;根据所述N个索引分片的分片信息,更新所述对象存储容器的元数据。
请参看图2,其是本公开实施例提供的索引分片的重新分片处理示意图,以下结合图2对本实施例提供的重新分片处理进行说明。
如图2所示,针对一对象存储容器的三个索引分片中的索引分片2,在对其进行重新分片处理时,可以先新建2个索引分片,例如,索引分片2_1、索引分片2_2;之后,根据索引分片2的分片标识,获取其存储的索引的数量,并根据该数量,将其存储的索引均匀顺序拆分为两个索引集合,即索引集合1和索引集合2,其中,索引集合1的初始键值与索引分片2的初始键值一致,例如,均为b,索引集合2的初始键值可以根据该数量计算获得,例如,为bc;再之后,可以将索引集合1的数据写入索引分片2_1,将索引集合2的数据写入索引分片2_2,并将索引分片2_1的分片标识重新设置为索引分片2的标识,由于其相当于分裂了一次,因此,可以如图2所示,将新创建的索引分片2_1的版本标识设置为1,而索引分片2_2由于未进行过分裂,因此,其版本标识可以设置为初值,例如,可以为0,至此,即完成了索引分片2的重新分片处理;当然,在完成索引分片2的重新分片处理之后,可以将索引分片2_1、索引分片2_2的信息写入其对应的对象存储容器的元数据内,之后,再更新该对象存储容器的元数据到该系统的底层共有存储系统,即Rados,并通知其他对象存储网关该对象存储容器的元数据已经更新完成。
在上述实施例中,由于将索引分片2的分片标识设置给了分裂得到的索引分片2_1,因此,在处理完成后,可以将该索引分片2删除,并释放其存储空间,以节省系统资源;当然,如果在重新分片过程中,出现了系统IO异常,例如,在将索引集合1写入索引分片2_1时,出现了异常,则为了避免数据丢失,可以执行失败回滚操作,即,停止当前处理,删除索引分片2_1、索引分片2_2,并继续使用索引分片2,以确保系统的整体可靠性,即,在本实施例中,在执行所述根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片步骤的过程中,所述方法还包括:在接收到写入异常信息的情况下,删除所述N个索引分片,并继续使用所述目标索引分片。
根据上述描述可知,本实施例提供的索引管理方法,由于是采用顺序切片的方式为分布式文件系统的对象存储容器分配索引分片,这使得可以单独的针对一索引分片进行重新分片处理,即,分裂处理,以提升系统性能;同时,由于可以以索引分片为单位进行重新分片处理,因此,当在处理过程中出现系统IO异常情况时,还可以及时进行失败回滚操作,以确保数据不被丢失,从而提升系统的可靠性。
另外,在本实施例中,在执行所述根据所述目标分片信息,对所述目标索引分片执行重新分片处理步骤的过程中,所述方法还包括:将所述目标索引分片的分片处理状态锁设置为第一分片状态,其中,所述第一分片状态表征当前时刻正在对所述目标索引分片执行重新分片处理;在该实施例中,该方法还包括:在所述目标索引分片的分片处理状态锁为所述第一分片状态,并且,接收到针对所述目标索引分片的索引写入请求的情况下,将所述索引写入请求写入到缓冲区中;在所述目标索引分片的分片处理状态变更为第二分片状态的情况下,从所述缓冲区中获取所述索引写入请求,并处理所述索引写入请求。
即,区别于现有索引管理在执行重新分片处理时,需要将为对象存储容器分片的全部索引分片锁住,从而造成的长时间阻塞用户对该对象存储容器的写操作的问题,由于本实施例采用的是顺序切片方式为对象存储容器分配索引分片,因此,在对某个索引分片进行重新分片处理时,可以仅对该索引分别加一个细粒度的分片处理状态锁,例如,仅将该索引分片的分片处理状态锁设置为RESHARDING状态,而不需要为该对象存储容器的所有索引分片均添加该状态锁,由于单个索引分片的重新分片处理的处理速度通常较快,因此,可以在重新分片处理过程中,先将针对该索引分片的索引写入请求缓存到一个缓冲区,例如一个内存队列中,并在该索引分片的重新分片处理完成之后,例如,在检测到期对应的分片处理状态锁被设置为RESHARDED的情况下,从该内存队列中获取以及处理该索引写入请求,以进一步提升系统的写性能。
综上所述,本实施例提供的索引管理方法,通过顺序切片方式为分布式文件系统中的对象存储容器分配索引分片,使得其管理的索引数据可以全局有序,并且,在进行重新分片处理时,只需要针对单个索引分片进行处理,而不需要对该对象存储容器的所有索引分片均进行索引重新分配处理,可以大幅度提升索引重新分片处理的速度,避免现有索引管理所带来的长时间无法写入的问题;另外,由于还引入了版本标识、时间戳等作为分裂管控信息,以防止在预设时间内对同一索引分片进行重复的重新分片处理,所以还可以进一步提升重新分片所需要消耗的时间;此外,由于在执行重新分片处理时,可以只针对一索引分片添加处理状态锁,而在加锁期间,该对象存储容器的其他索引分片可以继续接收写入,因此,可以进一步的提升整个系统的写性能。
<装置实施例>
与上述方法实施例相对应,在本实施例中,还提供一种索引管理装置,该装置可以应用于分布式文件系统,该分布式文件系统包括对象存储容器,如图3所示,该装置3000可以包括目标分片信息获取模块3100和重新分片处理模块3200。
该目标分片信息获取模块3100,用于从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;该重新分片处理模块3200,用于根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
<设备实施例>
在本实施例中,还提供一种电子设备,如图4所示,该电子设备4000可以包括处理器4200和存储器4100,该存储器4100用于存储可执行的指令;该处理器4200用于根据指令的控制运行电子设备以执行根据本公开任意实施例的索引管理方法。
该电子设备4000可以是服务器,也可以是其他类型的设备,例如是终端设备等,在此不做限定。
<介质实施例>
与上述方法实施例对应,在本实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本公开以上任意实施例所述的方法。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
Claims (13)
1.一种索引管理方法,其特征在于,应用于分布式文件系统,所述分布式文件系统包括对象存储容器,包括:
从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;
根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
2.根据权1所述方法,其特征在于,所述方法通过以下步骤维护所述目标任务队列:
获取所述对象存储容器的全局索引分片信息,其中,所述全局索引分片信息包括所述对象存储容器对应的索引分片的信息;
在接收到对象写入请求的情况下,所述对象存储容器存储所述请求中的对象,以及,生成将所述对象的元信息写入所述对象存储容器的索引分片中的索引写入请求;
响应于所述索引写入请求,根据所述全局索引分片信息,判断所述对象存储容器的索引分片中存储的对象元信息的数量是否不小于预设数量阈值;
在所述数量不小于所述预设数量阈值的情况下,确定对所述索引分片执行重新分片处理,并将所述索引分片的分片信息加入所述目标任务队列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标分片信息,对所述目标索引分片执行重新分片处理,包括:
根据所述分裂管控信息,获得分裂判定结果,其中,所述分裂判定结果表征在预设时间内是否已对所述目标索引分片执行过重新分片处理;
在所述分裂判定结果表征在预设时间内未对所述目标索引分片执行过重新分片处理的情况下,根据所述分片标识,对所述目标索引分片执行重新分片处理。
4.根据权利要求3所述的方法,其特征在于,所述分裂管控信息包括所述目标索引分片的第一版本标识,其中,所述第一版本标识为将所述目标索引分片加入所述目标任务队列时刻、所述目标索引分片的版本标识;
所述根据所述分裂管控信息,获得分裂判定结果,包括:
从所述全局索引分片信息中,获得所述目标索引分片的第二版本标识,其中,所述第二版本标识为当前时刻、所述目标索引分片的版本标识;
在所述第一版本标识和所述第二版本标识一致的情况下,判定所述分裂判定结果为表征未在预设时间内对所述目标索引分片执行过重新分片处理的信息。
5.根据权利要求3所述的方法,其特征在于,所述分裂管控信息包括所述目标索引分片对应的第一时间戳,其中,所述第一时间戳表征所述目标索引分片的创建时间;
所述根据所述分裂管控信息,获得分裂判定结果,包括:
获取当前时刻对应的第二时间戳;
在所述第二时间戳和所述第一时间戳的间隔时间大于预设时间间隔的情况下,判定所述分裂判定结果为表征未在预设时间内对所述目标索引分片执行过重新分片处理的信息。
6.根据权利要求3所述的方法,其特征在于,所述根据所述分片标识,对所述目标索引分片执行重新分片处理,包括:
新建N个索引分片,其中,N为不小于2的整数;
根据所述分片标识,获得所述目标索引分片中存储的索引的数量;
根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片。
7.根据权利要求6所述的方法,其特征在于,所述根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片,包括:
根据所述数量,将所述目标索引分片中存储的索引按顺序拆分为M个索引集合,其中,M为不小于2,且不大于N的整数;
将所述M个索引集合中的索引按顺序对应的分别写入所述N个索引分片;
将位于所述N个索引分片的首位的第一索引分片的版本标识的值设置为对所述第一版本标识进行加1处理后的数值,并将所述第一索引分片的分片标识设置为所述目标索引分片的分片标识;以及,
将位于所述N个索引分片的其他位置处的第二索引分片的版本标识的值设置为预设版本标识值,并按预设标识分配算法为所述第二索引分片分配分片标识;
将所述N个索引分片的创建时间分别写入所述N个索引分片的元数据中。
8.根据权利要求6所述的方法,其特征在于,在执行所述根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片步骤的过程中,所述方法还包括:
在接收到写入异常信息的情况下,删除所述N个索引分片,并继续使用所述目标索引分片。
9.根据权利要求6所述的方法,其特征在于,在根据所述数量,按照预设拆分算法顺序拆分所述目标索引分片中存储的索引,并将拆分得到的索引写入所述N个索引分片步骤之后,所述方法还包括:
获取所述N个索引分片的分片信息;
根据所述N个索引分片的分片信息,更新所述对象存储容器的元数据。
10.根据权利要求3所述的方法,其特征在于,在执行所述根据所述目标分片信息,对所述目标索引分片执行重新分片处理步骤的过程中,所述方法还包括:
将所述目标索引分片的分片处理状态锁设置为第一分片状态,其中,所述第一分片状态表征当前时刻正在对所述目标索引分片执行重新分片处理;
所述方法还包括:
在所述目标索引分片的分片处理状态锁为所述第一分片状态,并且,接收到针对所述目标索引分片的索引写入请求的情况下,将所述索引写入请求写入到缓冲区中;
在所述目标索引分片的分片处理状态变更为第二分片状态的情况下,从所述缓冲区中获取所述索引写入请求,并处理所述索引写入请求。
11.一种索引管理装置,其特征在于,包括:
目标分片信息获取模块,用于从目标任务序列中,获取待处理的目标索引分片的目标分片信息,其中,所述目标索引分片隶属于为所述对象存储容器分配的索引分片集合,所述目标索引分片中的索引顺序排列,所述索引分片集合中的索引分片顺序排列,所述目标分片信息包括分片标识和分裂管控信息,所述分片标识用于标识所述目标索引分片;
重新分片处理模块,用于根据所述目标分片信息,对所述目标索引分片执行重新分片处理。
12.一种电子设备,其特征在于,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如权利要求1-10任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据权利要求1-10中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110264712.4A CN112783835B (zh) | 2021-03-11 | 2021-03-11 | 索引管理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110264712.4A CN112783835B (zh) | 2021-03-11 | 2021-03-11 | 索引管理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783835A true CN112783835A (zh) | 2021-05-11 |
CN112783835B CN112783835B (zh) | 2024-06-04 |
Family
ID=75762536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110264712.4A Active CN112783835B (zh) | 2021-03-11 | 2021-03-11 | 索引管理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783835B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312355A (zh) * | 2021-06-15 | 2021-08-27 | 北京沃东天骏信息技术有限公司 | 一种数据管理的方法和装置 |
CN113703678A (zh) * | 2021-08-20 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722531A (zh) * | 2012-05-17 | 2012-10-10 | 北京大学 | 一种云环境中基于分片位图索引的查询方法 |
US20160191509A1 (en) * | 2014-12-31 | 2016-06-30 | Nexenta Systems, Inc. | Methods and Systems for Key Sharding of Objects Stored in Distributed Storage System |
CN107169009A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种分布式存储系统的数据分裂方法及装置 |
CN111769970A (zh) * | 2020-05-28 | 2020-10-13 | 中国科学院计算技术研究所 | 一种网络切片无线资源需求管理方法 |
CN111813813A (zh) * | 2020-07-08 | 2020-10-23 | 杭州海康威视系统技术有限公司 | 一种数据管理方法、装置、设备及存储介质 |
CN111881133A (zh) * | 2020-07-24 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 存储桶管理方法、装置、计算机设备及可读存储介质 |
CN111913909A (zh) * | 2019-05-08 | 2020-11-10 | 厦门网宿有限公司 | 一种分布式存储系统中的重新分片方法及系统 |
CN112182328A (zh) * | 2020-09-02 | 2021-01-05 | 北京三快在线科技有限公司 | 一种搜索引擎的扩容方法、装置、电子设备及存储介质 |
CN112434039A (zh) * | 2020-11-30 | 2021-03-02 | 浙江大华技术股份有限公司 | 数据的存储方法、装置、存储介质以及电子装置 |
-
2021
- 2021-03-11 CN CN202110264712.4A patent/CN112783835B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722531A (zh) * | 2012-05-17 | 2012-10-10 | 北京大学 | 一种云环境中基于分片位图索引的查询方法 |
US20160191509A1 (en) * | 2014-12-31 | 2016-06-30 | Nexenta Systems, Inc. | Methods and Systems for Key Sharding of Objects Stored in Distributed Storage System |
CN107169009A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种分布式存储系统的数据分裂方法及装置 |
CN111913909A (zh) * | 2019-05-08 | 2020-11-10 | 厦门网宿有限公司 | 一种分布式存储系统中的重新分片方法及系统 |
CN111769970A (zh) * | 2020-05-28 | 2020-10-13 | 中国科学院计算技术研究所 | 一种网络切片无线资源需求管理方法 |
CN111813813A (zh) * | 2020-07-08 | 2020-10-23 | 杭州海康威视系统技术有限公司 | 一种数据管理方法、装置、设备及存储介质 |
CN111881133A (zh) * | 2020-07-24 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 存储桶管理方法、装置、计算机设备及可读存储介质 |
CN112182328A (zh) * | 2020-09-02 | 2021-01-05 | 北京三快在线科技有限公司 | 一种搜索引擎的扩容方法、装置、电子设备及存储介质 |
CN112434039A (zh) * | 2020-11-30 | 2021-03-02 | 浙江大华技术股份有限公司 | 数据的存储方法、装置、存储介质以及电子装置 |
Non-Patent Citations (3)
Title |
---|
LI, PF等: "LISA: A Learned Index Structure for Spatial Data", 《SIGMOD\'20: PROCEEDINGS OF THE 2020 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》, pages 2119 - 2133 * |
刘艳等: "海量视频数据分布式存储性能优化方法研究", 《计算机应用研究》, vol. 38, no. 6, pages 1734 - 1738 * |
蔡为等: "基于Mongo DB的众包数据索引方法探讨", 《地理空间信息》, vol. 16, no. 6, pages 32 - 34 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312355A (zh) * | 2021-06-15 | 2021-08-27 | 北京沃东天骏信息技术有限公司 | 一种数据管理的方法和装置 |
CN113703678A (zh) * | 2021-08-20 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
CN113703678B (zh) * | 2021-08-20 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种存储桶索引重分裂的方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112783835B (zh) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899592B2 (en) | Computer storage deduplication | |
JP4117265B2 (ja) | ファイルシステムのバージョンを管理する方法およびシステム | |
US11461027B2 (en) | Deduplication-aware load balancing in distributed storage systems | |
US11099937B2 (en) | Implementing clone snapshots in a distributed storage system | |
US20190213085A1 (en) | Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System | |
US9317519B2 (en) | Storage system for eliminating duplicated data | |
US10013312B2 (en) | Method and system for a safe archiving of data | |
US9875259B2 (en) | Distribution of an object in volatile memory across a multi-node cluster | |
US20150012698A1 (en) | Restoring temporal locality in global and local deduplication storage systems | |
US20100191919A1 (en) | Append-based shared persistent storage | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
US10133757B2 (en) | Method for managing data using in-memory database and apparatus thereof | |
CN112783835B (zh) | 索引管理方法、装置及电子设备 | |
CN105469001B (zh) | 磁盘数据保护方法及装置 | |
CN112835511B (zh) | 分布式存储集群的数据写入方法、装置、设备和介质 | |
CN113609091B (zh) | 日志管理方法、装置、设备及存储介质 | |
CN113849119B (zh) | 存储方法、存储装置和计算机可读存储介质 | |
US9798793B1 (en) | Method for recovering an index on a deduplicated storage system | |
US8909875B1 (en) | Methods and apparatus for storing a new version of an object on a content addressable storage system | |
US9009731B2 (en) | Conversion of lightweight object to a heavyweight object | |
US8560572B2 (en) | System for lightweight objects | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
US11748203B2 (en) | Multi-role application orchestration in a distributed storage system | |
CN112506877B (zh) | 基于重删域的数据重删方法、装置、系统及存储设备 | |
US20210248108A1 (en) | Asynchronous data synchronization and reconciliation |
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 |