CN111984600B - 一种文件聚合方法、装置、设备及可读存储介质 - Google Patents
一种文件聚合方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111984600B CN111984600B CN202010878607.5A CN202010878607A CN111984600B CN 111984600 B CN111984600 B CN 111984600B CN 202010878607 A CN202010878607 A CN 202010878607A CN 111984600 B CN111984600 B CN 111984600B
- Authority
- CN
- China
- Prior art keywords
- file
- aggregated
- written
- tree
- aggregation
- 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
- 230000002776 aggregation Effects 0.000 title claims abstract description 95
- 238000004220 aggregation Methods 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 230000000379 polymerizing effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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/2246—Trees, e.g. B+trees
-
- 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/23—Updating
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件聚合方法、装置、设备及计算机可读存储介质,该方法包括:将待写入文件放入写入队列,并更新写入队列对应的B+树;根据B+树在写入队列中确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件;调用对象接口将聚合文件写入文件系统;该方法不在文件系统内对待聚合文件进行聚合,而是在文件系统的上层对待聚合文件进行聚合,即在将待聚合文件写入文件系统前将其聚合,因此不需要多次调用对象接口将待聚合文件写入文件系统,对象接口性能较好,避免了对对象接口造成较大的性能影响。
Description
技术领域
本申请涉及对象存储技术领域,特别涉及一种文件聚合方法、文件聚合装置、文件聚合设备及计算机可读存储介质。
背景技术
对象存储是目前云计算领域最重要的存储形式之一,以目录文件的方式存储数据,以对象接口方式对外提供服务是单机实现对象服务的重要方式,小文件的读写一直是存储系统性能的痛点,在对象存储中亦是如此,为了提高单个机器以文件为存储形式的对象存储的性能,相关技术会将文件系统中的小文件进行聚合。然而,相关技术需要在文件系统中进行小文件的聚合,导致聚合效率较低,对象接口的性能较差。
因此,如何解决相关技术导致聚合效率较低,对象接口的性能较差的问题,是本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种文件聚合方法、文件聚合装置、文件聚合设备及计算机可读存储介质,提高了聚合效率,避免了对对象接口造成较大的性能影响,对象接口性能较好。
为解决上述技术问题,本申请提供了一种文件聚合方法,包括:
将待写入文件放入写入队列,并更新所述写入队列对应的B+树;
根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件;
调用对象接口将所述聚合文件写入文件系统。
可选地,所述将待写入文件放入写入队列,并更新所述写入队列对应的B+树,包括:
将所述待写入文件放入所述写入队列;
从所述待写入文件的元数据中提取排序信息,并利用所述排序信息对所述B+树进行更新。
可选地,所述从所述元数据信息中提取排序信息,包括:
从所述元数据中提取存储路径信息作为所述排序信息。
可选地,利用所述排序信息对所述B+树进行更新,包括:
根据所述排序信息在所述B+树中新增节点;
或,
根据所述排序信息对所述B+树中的节点进行调整。
可选地,所述根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件,包括:
遍历所述B+树的各个节点,并判断各个所述节点对应的待写入文件的文件体积是否小于预设阈值;
若所述文件体积小于所述预设阈值,则将对应的所述待写入文件确认为所述待聚合文件;
若当前的所述待聚合文件的总体积处于预设区间,且多增加任意一个所述待聚合文件后所述总体积不处于所述预设区间,则将当前的所述待聚合文件进行聚合处理,得到所述聚合文件。
可选地,还包括:
若所述文件体积不小于所述预设阈值,则调用所述对象接口将所述待写入文件写入所述文件系统。
可选地,再所述调用对象接口将所述聚合文件写入文件系统之后,还包括:
存储各个被写入文件系统的所述待写入文件分别对应的各个元数据信息;
根据各个被写入文件系统的所述待写入文件对所述B+树进行更新。
本申请还提供了一种文件聚合装置,包括:
放入模块,用于将待写入文件放入写入队列,并更新所述写入队列对应的B+树;
聚合模块,用于根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件;
写入模块,用于调用对象接口将所述聚合文件写入文件系统。
本申请还提供了一种文件聚合设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的文件聚合方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的文件聚合方法。
本申请提供的文件聚合方法,将待写入文件放入写入队列,并更新写入队列对应的B+树;根据B+树在写入队列中确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件;调用对象接口将聚合文件写入文件系统。
可见,该方法在获取待写入文件后并不立即将其写入文件系统,而是将其放入写入队列,并利用B+树对写入队列的状态进行记录。由于B+树具有很好的查询性能,因此可以利用其在写入队列中快速确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件。在得到聚合文件后再调用对象接口将聚合文件写入文件系统。利用B+树可以高效地确定待聚合文件,提高聚合效率,同时,由于不在文件系统内对待聚合文件进行聚合,而是在文件系统的上层对待聚合文件进行聚合,即在将待聚合文件写入文件系统前将其聚合,因此不需要多次调用对象接口将待聚合文件写入文件系统,使得对象接口性能较好,避免了对对象接口造成较大的性能影响,解决了相关技术导致聚合效率较低,对象接口的性能较差的问题。
此外,本申请还提供了一种文件聚合装置、文件聚合设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种文件聚合方法流程图;
图2为本申请实施例提供的一种具体的文件聚合结果示意图;
图3为本申请实施例提供的一种具体的元数据结构示意图;
图4为本申请实施例提供的一种文件聚合装置的结构示意图;
图5为本申请实施例提供的一种文件聚合设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种文件聚合方法流程图。该方法包括:
S101:将待写入文件放入写入队列,并更新写入队列对应的B+树。
待写入文件即为需要被写入文件系统的文件,在本实施例中,文件为数据的一种表现形式,在其他可行的实施方式中,还可以以其他的表现形式对数据进行表现。需要说明的是,由于文件体积较大的文件可以直接存储,聚合反而不便于其读取等操作,因此在本实施例中,可以将文件体积小于预设阈值的待写入文件进行聚合。本实施例中,部分待写入文件的文件体积可以大于预设阈值,另一部分待写入文件的文件体积可以小于预设阈值;或者待写入文件的文件体积可以全部小于预设阈值,本实施例对待写入文件的文件体积具体大小不做限定。在获取待写入文件后,可以将其放入写入队列,写入队列用于存放待写入文件,以便在后续从中确定待聚合文件。本实施例并不限定将待写入文件放入写入队列的时机,例如可以按照预设周期获取待写入文件并将其放入写入队列,或者可以实时检测是否存在待写入文件,在检测到存在待写入文件后将其放入写入队列。写入队列的具体位置不做限定,例如可以为缓存中。
B-树即为多路搜索树,是一种常见的数据结构。使用B-树结构可以显著减少定位数据时所经历的中间过程,从而加快查找和存取速度。B+树是应文件系统所需而出的一种B-树的变型树。与B-树相比,B+树采用了更加高效的遍历方式,能够快速完成对整个B+树的遍历,同时其具有更加稳定的查询性能。利用B+树记录写入队列的状态,便于在后续快速准确地确定待聚合文件,提高文件聚合的效率。
在一种可行的实时方式中,可以根据待写入数据的元数据更新写入队列对应的B+树。S101步骤可以包括:
步骤11:将待写入文件放入写入队列。
步骤12:从待写入文件的元数据中提取排序信息,并利用排序信息对B+树进行更新。
需要说明的是,每个待写入文件均具有元数据,其中包括文件名称、文件大小、存储路径、通用元数据信息(meta,位于文件的头部,不包含任何内容)等。元数据信息中记录了各个待写入文件的信息,通过从待写入文件的元数据中提取排序信息,可以利用排序信息对B+树进行更新。需要说明的是,若在将待写入文件放入写入队列前,写入队列中已不存在待写入文件,则更新B+树的过程即为生成B+树的过程。本实施例并不限定B+树的具体更新方式,例如可以在写入队列发生变化后立即更新B+树,或者可以按照预设周期更新B+树。本领域技术人员应当清楚,B+树的更新频率与待写入文件放入写入队列的频率可以相同也可以不同。例如可以按照第一预设周期将待写入文件放入写入队列,按照第二预设周期更新B+树,第一预设周期与第二预设周期可以相同也可以不同。
具体的,在一种可行的实施方式中,可以从元数据中提取存储路径信息作为排序信息。存储路径信息用于表示待写入文件的存储位置,通过将存储路径信息确定为排序信息,可以将存储路径相近的需要聚合的待写入文件进行聚合。
在一种可行的实施方式中,利用排序信息对B+树进行更新的步骤可以包括:
步骤21:根据排序信息在B+树中新增节点:。
或,
步骤22:根据排序信息对B+树中的节点进行调整。
由于B+树具有一个指定的阶数,每个节点中数据的数量与阶数相关,因此在写入队列中新放入待写入文件后,需要新生成B+树,或者需要在B+树中插入数据。在B+树中插入数据时,一种可能的情况中,新插入的数据会导致B+树中的原有节点进行分裂,因此可以根据排序信息在B+树中新增节点;在另一种可能的情况中,新插入的数据可以插入到B+树中的某个原有节点中,因此可以根据排序信息对B+树中的节点进行调整。
S102:根据B+树在写入队列中确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件。
在对B+树更新过后,可以根据B+树在写入队列中确定待聚合文件。待聚合文件是文件体积小于预设大小的待写入文件。在确定待聚合文件后对其进行聚合处理,即可得到聚合文件。通过遍历B+树,可以从中确定待聚合文件,待聚合文件的数量不做限定。通过对待聚合文件按照预设顺序及格式进行过聚合处理,即可得到聚合文件。请参考图2,图2为本申请实施例提供的一种具体的文件聚合结果示意图。在进行文件聚合时,各个待聚合文件对应的聚合数据(即file1、file2至fileN)按照顺序排列,组成聚合文件,聚合文件中的各个区域存储一个聚合数据。其中,每个聚合数据中包括magic部分、tag部分和data部分,magic部分用于标记该段区域的有效性,tag部分用于存储data部分的校验值,data部分用于存储待聚合文件的数据部分,即待聚合数据中去除元数据的部分。
在一种可行的实施方式中,可以设置一个预设区间,使得聚合后得到的聚合文件的文件体积处于该预设区间内,防止因聚合文件的体积过大而不利于其中待聚合文件的读取。S102步骤可以包括:
步骤31:遍历B+树的各个节点,并判断各个节点对应的待写入文件的文件体积是否小于预设阈值。
步骤32:若文件体积小于预设阈值,则将对应的待写入文件确认为待聚合文件。
步骤33:若当前的待聚合文件的总体积处于预设区间,且多增加任意一个待聚合文件后总体积不处于预设区间,则将当前的待聚合文件进行聚合处理,得到聚合文件。
具体的,在遍历B+树的各个节点时,为了提高遍历效率,可以仅遍历B+树的叶子结点,通过遍历叶子结点即可遍历整个B+树中的数据。在遍历节点的过程中,判断各个节点对应的待写入文件的文件体积是否小于预设阈值。该预设阈值可以为1MB。各个节点对应的待写入文件的数量不做限定。若待写入文件的文件体积小于预设阈值,说明其文件体积过小,需要聚合为较大的聚合文件,则将对应的待写入文件确定为待聚合文件。在确定待聚合文件的同时,还需要考虑当前已确定的待聚合文件的总体积是否处于预设区间。该预设区间可以为0~4MB。若当前的待聚合文件的总体积处于预设区间,且多增加任意一个待聚合文件后总体积不处于预设区间,即在当前的基础上,任意多增加一个待写入文件作为待聚合文件,都将导致待聚合文件的总体积不处于预设区间。此时,不再新增待聚合文件,将当前的待聚合文件进行聚合处理得到聚合文件。
进一步,在另一种可能的情况中,在遍历B+树时可能查找到文件体积不小于预设阈值的待写入文件,此时还可以包括:
步骤41:若文件体积不小于预设阈值,则调用对象接口将待写入文件写入文件系统。
若文件体积不小于预设阈值,说明对应的待写入文件不需要被聚合,因此可以直接调用对象借口将待写入文件写入文件系统。本实施例中,可以将xfs(一种高性能的日志文件系统)、ext3(一种日志式文件系统,是对ext2系统的扩展)、ext4(一种日志式文件系统,是对ext3系统的扩展)等通用的文件系统作为本实施例中的文件系统。对象接口的具体形式不做限定,例如可以为S3接口。效用对象接口将文件体积大于预设阈值的待写入文件写入文件系统的具体方式不做限定,可以参考相关技术。
S103:调用对象接口将聚合文件写入文件系统。
在对待聚合文件进行聚合处理得到聚合文件后,可以调用对象接口将聚合文件写入文件系统。由于在聚合得到聚合文件之后才将聚合文件写入文件系统,而并不是现将待聚合文件写入文件系统后进行聚合。因此整个文件聚合过程在文件系统的上层完成,不需要多次调用对象接口,避免了对对象接口造成较大的性能影响,使得对象接口性能较好。
进一步,在将聚合文件写入文件系统后,为了后续文件的读取和写入,还需要保存存入文件系统的待写入文件的元数据信息,并将B+树更新。具体的,还可以包括:
S104:存储各个被写入文件系统的待写入文件分别对应的各个元数据信息。
请参考图3,图3为本申请实施例提供的一种具体的元数据结构示意图。其中每个元数据均包括如下信息:对象的key值(key);用于标记是否以聚合方式存储的标志位flag,当flag为1时表示以聚合方式存储,当flag为0表示单独文件存储;对象存储的目录路径prefix;对象的名称name;对象存储的文件名称file,非聚合情况下与对象名称相同,聚合情况下为聚合文件的名称;对象在文件中的位置pos,在非聚合情况下该字段无效;对象的大小size,在非聚合情况下该字段无效;对象的通用元数据信息meta。元数据信息可以基于各个待写入数据的元数据以及聚合情况生成,可以以数据库的形式组织存储。
在进行文件读取时,可以先确定对应的元数据信息,根据元数据信息将对应的文件或聚合文件读出。需要说明的是,当读出聚合文件时,可以将聚合文件在缓存中存储,以便在后续相同聚合文件的其他小文件时直接从缓存中获取,提高读取效率。在进行文件删除时,可以直接删除文件对应的元数据信息。
S105:根据各个被写入文件系统的待写入文件对B+树进行更新。
在待写入文件被写入文件系统后,可以将其对应的数据从B+树中删除,完成对B+树的更新。
应用本申请实施例提供的文件聚合方法,在获取待写入文件后并不立即将其写入文件系统,而是将其放入写入队列,并利用B+树对写入队列的状态进行记录。由于B+树具有很好的查询性能,因此可以利用其在写入队列中快速确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件。在得到聚合文件后再调用对象接口将聚合文件写入文件系统。利用B+树可以高效地确定待聚合文件,提高聚合效率,同时,由于不在文件系统内对待聚合文件进行聚合,而是在文件系统的上层对待聚合文件进行聚合,即在将待聚合文件写入文件系统前将其聚合,因此不需要多次调用对象接口将待聚合文件写入文件系统,使得对象接口性能较好,避免了对对象接口造成较大的性能影响,解决了相关技术导致聚合效率较低,对象接口的性能较差的问题。
下面对本申请实施例提供的文件聚合装置进行介绍,下文描述的文件聚合装置与上文描述的文件聚合方法可相互对应参照。
请参考图4,图4为本申请实施例提供的一种文件聚合装置的结构示意图,包括:
放入模块110,用于将待写入文件放入写入队列,并更新写入队列对应的B+树;
聚合模块120,用于根据B+树在写入队列中确定待聚合文件,并对待聚合文件进行聚合处理,得到聚合文件;
写入模块130,用于调用对象接口将聚合文件写入文件系统。
可选地,放入模块110,包括:
放入单元,用于将待写入文件放入写入队列;
提取单元,用于从待写入文件的元数据中提取排序信息,并利用排序信息对B+树进行更新。
可选地,提取单元,包括:
路径提取子单元,用于从元数据中提取存储路径信息作为排序信息。
可选地,提取单元,包括:
节点新增子单元,用于根据排序信息在B+树中新增节点;
或,
节点调整子单元,用于根据排序信息对B+树中的节点进行调整。
可选地,聚合模块120,包括:
体积判断单元,用于遍历B+树的各个节点,并判断各个节点对应的待写入文件的文件体积是否小于预设阈值;
确定单元,用于若文件体积小于预设阈值,则将对应的待写入文件确认为待聚合文件;
聚合单元,用于若当前的待聚合文件的总体积处于预设区间,且多增加任意一个待聚合文件后总体积不处于预设区间,则将当前的待聚合文件进行聚合处理,得到聚合文件。
可选地,还包括:
直接写入模块,用于若文件体积不小于预设阈值,则调用对象接口将待写入文件写入文件系统。
可选地,还包括:
元数据信息存储模块,用于存储各个被写入文件系统的待写入文件分别对应的各个元数据信息;
更新模块,用于根据各个被写入文件系统的待写入文件对B+树进行更新。
下面对本申请实施例提供的文件聚合设备进行介绍,下文描述的文件聚合设备与上文描述的文件聚合方法可相互对应参照。
请参考图5,图5为本申请实施例提供的一种文件聚合设备的结构示意图。其中文件聚合设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制文件聚合设备100的整体操作,以完成上述的文件聚合方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在文件聚合设备100的操作,这些数据例如可以包括用于在该文件聚合设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于文件聚合设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
文件聚合设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的文件聚合方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的文件聚合方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的文件聚合方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种文件聚合方法,其特征在于,包括:
将待写入文件放入写入队列,并更新所述写入队列对应的B+树;
根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件;
调用对象接口将所述聚合文件写入文件系统;
所述将待写入文件放入写入队列,并更新所述写入队列对应的B+树,包括:
将所述待写入文件放入所述写入队列;
从所述待写入文件的元数据中提取排序信息,并利用所述排序信息对所述B+树进行更新。
2.根据权利要求1所述的文件聚合方法,其特征在于,所述从所述元数据信息中提取排序信息,包括:
从所述元数据中提取存储路径信息作为所述排序信息。
3.根据权利要求1所述的文件聚合方法,其特征在于,利用所述排序信息对所述B+树进行更新,包括:
根据所述排序信息在所述B+树中新增节点;
或,
根据所述排序信息对所述B+树中的节点进行调整。
4.根据权利要求1所述的文件聚合方法,其特征在于,所述根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件,包括:
遍历所述B+树的各个节点,并判断各个所述节点对应的待写入文件的文件体积是否小于预设阈值;
若所述文件体积小于所述预设阈值,则将对应的所述待写入文件确认为所述待聚合文件;
若当前的所述待聚合文件的总体积处于预设区间,且多增加任意一个所述待聚合文件后所述总体积不处于所述预设区间,则将当前的所述待聚合文件进行聚合处理,得到所述聚合文件。
5.根据权利要求4所述的文件聚合方法,其特征在于,还包括:
若所述文件体积不小于所述预设阈值,则调用所述对象接口将所述待写入文件写入所述文件系统。
6.根据权利要求1所述的文件聚合方法,其特征在于,再所述调用对象接口将所述聚合文件写入文件系统之后,还包括:
存储各个被写入文件系统的所述待写入文件分别对应的各个元数据信息;
根据各个被写入文件系统的所述待写入文件对所述B+树进行更新。
7.一种文件聚合装置,其特征在于,包括:
放入模块,用于将待写入文件放入写入队列,并更新所述写入队列对应的B+树;
聚合模块,用于根据所述B+树在所述写入队列中确定待聚合文件,并对所述待聚合文件进行聚合处理,得到聚合文件;
写入模块,用于调用对象接口将所述聚合文件写入文件系统;
放入模块,包括:
放入单元,用于将所述待写入文件放入写入所述队列;
提取单元,用于从所述待写入文件的元数据中提取排序信息,并利用所述排序信息对所述B+树进行更新。
8.一种文件聚合设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的文件聚合方法。
9.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的文件聚合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010878607.5A CN111984600B (zh) | 2020-08-27 | 2020-08-27 | 一种文件聚合方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010878607.5A CN111984600B (zh) | 2020-08-27 | 2020-08-27 | 一种文件聚合方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984600A CN111984600A (zh) | 2020-11-24 |
CN111984600B true CN111984600B (zh) | 2022-07-29 |
Family
ID=73440083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010878607.5A Active CN111984600B (zh) | 2020-08-27 | 2020-08-27 | 一种文件聚合方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984600B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626382B (zh) * | 2021-06-30 | 2024-02-23 | 济南浪潮数据技术有限公司 | 分布式文件系统中聚合对象的索引方法、系统及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956183A (zh) * | 2016-05-30 | 2016-09-21 | 广东电网有限责任公司电力调度控制中心 | 一种分布式数据库中海量小文件的多级优化存储方法及系统 |
WO2018133762A1 (zh) * | 2017-01-17 | 2018-07-26 | 广州市动景计算机科技有限公司 | 文件合并方法和装置 |
CN109032530A (zh) * | 2018-08-21 | 2018-12-18 | 成都华为技术有限公司 | 一种数据流处理方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298761B2 (en) * | 2009-04-30 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Adaptive merging in database indexes |
-
2020
- 2020-08-27 CN CN202010878607.5A patent/CN111984600B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105956183A (zh) * | 2016-05-30 | 2016-09-21 | 广东电网有限责任公司电力调度控制中心 | 一种分布式数据库中海量小文件的多级优化存储方法及系统 |
WO2018133762A1 (zh) * | 2017-01-17 | 2018-07-26 | 广州市动景计算机科技有限公司 | 文件合并方法和装置 |
CN109032530A (zh) * | 2018-08-21 | 2018-12-18 | 成都华为技术有限公司 | 一种数据流处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111984600A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719237B2 (en) | Method and apparatus for deleting duplicate data | |
WO2020211236A1 (zh) | 基于b+树的读写冲突解决方法、装置及存储介质 | |
RU2016116718A (ru) | Способ (варианты) и устройство (варианты) обработки информации, терминал и сервер | |
KR20160003682A (ko) | 플레이스홀더에 의한 하이드레이션 및 디하이드레이션 기법 | |
US20170242832A1 (en) | Character editing method and device for screen display device | |
CN109359091B (zh) | 文件管理方法、装置、终端及计算机可读存储介质 | |
CN108205560B (zh) | 一种数据同步方法以及装置 | |
WO2020082597A1 (zh) | 一种b+树节点的批量插入和删除方法及装置 | |
CN109299352B (zh) | 搜索引擎中网站数据的更新方法、装置和搜索引擎 | |
CN112052120B (zh) | 数据库删除数据恢复方法和装置 | |
CN108959587B (zh) | 基于列存储的数据更新方法、装置、服务器及存储介质 | |
CN112714359A (zh) | 视频推荐方法、装置、计算机设备及存储介质 | |
CN111984600B (zh) | 一种文件聚合方法、装置、设备及可读存储介质 | |
KR101588375B1 (ko) | 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 | |
CN113031871A (zh) | 数据追加聚合方法、装置、电子设备及可读存储介质 | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
WO2021189766A1 (zh) | 数据可视化方法及相关设备 | |
CN102737082A (zh) | 一种动态更新文稿数据索引的方法和系统 | |
CN106201198B (zh) | 终端应用的查找方法、装置及移动终端 | |
CN109255214B (zh) | 一种权限配置方法及装置 | |
US20230065492A1 (en) | Method for obtaining browser running data, electronic device, and storage medium | |
CN114936010B (zh) | 数据处理方法、装置、设备及介质 | |
CN107783904B (zh) | 单元测试桩去重方法、装置、计算机可读存储介质及设备 | |
CN110704468A (zh) | 数据更新方法、装置及控制器 | |
CN110658993A (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 |