基于对象存储的数据存储方法、装置、设备及存储介质与流程

文档序号:30184035发布日期:2022-05-26 16:49阅读:110来源:国知局
基于对象存储的数据存储方法、装置、设备及存储介质与流程

1.本发明涉及存储技术领域,尤其涉及一种基于对象存储的数据存储方法、装置、设备及存储介质。


背景技术:

2.在自动驾驶系统中,会使用到大量的小文件,比如红绿灯的模型、图片以及标注等都属于小文件。为了便于加快小文件的读写速度且利与共享,常使用对象存储系统存储小文件。
3.现有技术中在使用对象存储系统存储小文件时,可以为每一个小文件生成一个位置索引,以支持小文件的访问。
4.但是,每次写入小文件时均生成一个目录索引会非常消耗系统资源,使得访问小文件需要大量的时间,从而导致小文件的访问效率较低。


技术实现要素:

5.本发明提供一种基于对象存储的数据存储方法、装置、设备及存储介质,解决了小文件的访问效率较低的问题。
6.为达到上述目的,本发明采用如下技术方案:
7.第一方面,本发明提供一种基于对象存储的数据存储方法,该方法包括:
8.根据目标文件的文件名确定目标文件的哈希值;
9.根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录;
10.将目标文件写入目标目录的第一文件夹;
11.在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹;
12.更新第二文件夹的文件位置索引。
13.在一种可能的实现方式中,在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹,包括:当第一文件夹中的多个目标文件的总数据量大于第一预设值时,将第一文件夹中的多个目标文件写入第二文件夹;或者,当第一文件夹中的多个目标文件的文件数量大于第二预设值时,将第一文件夹中的多个目标文件写入第二文件夹。
14.在一种可能的实现方式中,基于对象存储的数据存储方法还包括:在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录;根据目标目录中包括的每个目标文件的哈希值,确定每个目标文件对应的子目录;将每个目标文件迁移至每个目标文件对应的子目录中。
15.在一种可能的实现方式中,基于对象存储的数据存储方法,还包括:根据待存储的目标文件的总数量和目标目录存储文件的数量,确定目标目录的数量;根据哈希值的范围和目标目录的数量,确定每个目标目录对应的目录范围。
16.在一种可能的实现方式中,基于对象存储的数据存储方法,还包括:将目标文件写入目标目录的第一文件夹后,生成目标文件的文件位置索引。
17.在一种可能的实现方式中,更新第二文件夹的文件位置索引,包括:删除第一文件夹中包括的每个目标文件的文件位置索引;添加第二文件夹的文件位置索引。
18.第二方面,本发明提供一种基于对象存储的数据存储装置,包括:
19.第一确定模块,用于根据目标文件的文件名确定目标文件的哈希值;
20.第二确定模块,用于根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录;
21.写入模块,用于将目标文件写入目标目录的第一文件夹;
22.合并模块,用于在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹;
23.更新模块,用于更新第二文件夹的文件位置索引。
24.在一种可能的实现方式中,写入模块具体用于:当第一文件夹中的多个目标文件的总数据量大于第一预设值时,将第一文件夹中的多个目标文件写入第二文件夹;或者,当第一文件夹中的多个目标文件的文件数量大于第二预设值时,将第一文件夹中的多个目标文件写入第二文件夹。
25.在一种可能的实现方式中,基于对象存储的数据存储装置还包括扩展模块,扩展模块用于,在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录;第二确定模块还用于,根据目标目录中包括的每个目标文件的哈希值,确定每个目标文件对应的子目录;写入模块还用于,将每个目标文件迁移至每个目标文件对应的子目录中。
26.在一种可能的实现方式中,第二确定模块还用于,根据待存储的目标文件的总数量和目标目录存储文件的数量,确定目标目录的数量;根据哈希值的范围和目标目录的数量,确定每个目标目录对应的目录范围。
27.在一种可能的实现方式中,更新模块还用于,将目标文件写入目标目录的第一文件夹后,生成目标文件的文件位置索引。
28.在一种可能的实现方式中,更新模块具体用于,删除第一文件夹中包括的每个目标文件的文件位置索引;添加第二文件夹的文件位置索引。
29.第三方面,本发明提供一种计算机设备,该计算机设备包括:处理器和存储器。存储器用于存储计算机程序代码,计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备执行如第一方面及其任一种可能的实现方式的基于对象存储的数据存储方法。
30.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行如第一方面或第一方面的可能的实现方式中任意一项的基于对象存储的数据存储方法。
31.第五方面,本发明提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行如第一方面及其任一种可能的实现方式的基于对象存储的数据存储方法。
32.本发明实施例提供的基于对象存储的数据存储方法,计算机设备根据目标文件的文件名确定目标文件的哈希值,并根据目标文件的哈希值所属的目录范围,确定目标文件
待写入的目标目录,且将目标文件写入目标目录的第一文件夹,在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹,并更新第二文件夹的文件位置索引,从而实现对小文件的管理,降低了访问小文件需要的时间,提高了小文件的访问效率。
附图说明
33.图1为本发明实施例提供的一种计算机设备的结构示意图;
34.图2为本发明实施例提供的一种基于对象存储的数据存储方法的流程图之一;
35.图3为本发明实施例提供的一种基于对象存储的数据存储方法的流程图之二;
36.图4为本发明实施例提供的一种目录结构示意图;
37.图5为本发明实施例提供的一种基于对象存储的数据存储装置的组成示意图之一;
38.图6为本发明实施例提供的一种基于对象存储的数据存储装置的组成示意图之二。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“基于”或“根据”的使用意味着开放和包容性,因为“基于”或“根据”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
41.为了解决对象存储系统中小文件的访问效率较低的问题,本发明实施例提供了一种基于对象存储的数据存储方法、装置、设备及存储介质,计算机设备根据目标文件的文件名确定目标文件的哈希值,并根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录,且将目标文件写入目标目录的第一文件夹,在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹,并更新第二文件夹的文件位置索引,从而实现对小文件的管理,降低了访问小文件需要的时间,提高了小文件的访问效率。
42.本发明实施例提供的基于对象存储的数据存储方法的执行主体为计算机设备。该计算机设备可以是终端设备,也可以是服务器,还可以是服务器集群。本发明实施例不做限定。
43.图1为本发明实施例提供的一种可能的计算机设备的结构示意图。如图1所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。
该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标文件、索引文件等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于对象存储的数据存储存储方法。
44.本领域技术人员可以理解,图1中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
45.图2为本发明实施例提供的一种可能的基于对象存储的数据存储方法的流程图。如图2所示,基于对象存储的数据存储方法可以包括以下步骤s201-步骤s205。
46.s201、计算机设备根据目标文件的文件名确定目标文件的哈希值。
47.可以理解的是,目标文件可以是数据量小于或等于预设值的小文件。目标文件的类型在此不做限定,例如,在自动驾驶系统中,目标文件可以是如红绿灯的模型、图片以及标注等类型的文件。哈希值可以是目标文件的唯一标识。
48.具体的,计算机设备可以根据目标文件的文件名,通过哈希算法确定目标文件的哈希值。哈希算法包括但不限于信息摘要算法(message-digest algorithm,md5)、安全散列算法1(secure hash algorithm 1,sha-1)等。
49.可选的,计算机设备可以根据目标文件的文件名中所包括的字符,通过预设的哈希函数计算目标文件的哈希值。计算机设备还可以获取目标文件中的文件内容,并通过对文件内容进行加密运算得到一组二进制值,并转化为十进制的哈希值,此处对于哈希值的计算方式不做限定。
50.s202、计算机设备根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录。
51.可以理解的是,在对目标文件存储时,计算机设备可以先初始化目录,生成多个目标目录。
52.在一种可能的实现方式中,计算机设备可以根据待存储的目标文件的总数量和目标目录存储文件的数量,确定目标目录的数量,并根据哈希值的范围和目标目录的数量,确定每个目标目录对应的目录范围。
53.示例性的,假如待存储的目标文件的总数量是100000,每个目标目录存储文件的数量为10000,则可以初始化10个目标目录,假如哈希值的范围是0-1000,则10个目标目录可以为:目标目录0,目标目录100,目标目录200,目标目录300,目标目录400,目标目录500,目标目录600,目标目录700,目标目录800以及目标目录900。其中,目标目录0对应的目录范围为0-100,目标目录100对应的目录范围为100-200,以此类推,目标目录900对应的目录范围为900-1000。
54.具体地,计算机设备可以根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录。
55.示例性的,在上述示例的基础上,假如一个目标文件计算出来的哈希值为21,则落入0-100的区间,此时该目标文件应当存入目标目录0内。
56.s203、计算机设备将目标文件写入目标目录的第一文件夹。
57.可以理解的是,每个目标目录内可以包含一个第一文件夹的目录,例如staging文
件夹的目录,该第一文件夹用于写入哈希值落入该目标目录的目录范围中的目标文件。除此以外,每个目标目录中还可以包含一个用来写入文件位置索引的索引文件,例如index文件,该文件用于写入哈希值落入该目标目录的目录范围中的目标文件的位置索引,以实现快速访问该目标目录中存储的目标文件。
58.具体地,计算机设备可以将目标文件写入目标目录的第一文件夹中。
59.可选的,计算机设备在将目标文件写入目标目录的第一文件夹后,还可以生成所述目标文件的文件位置索引,并将所述目标文件的文件位置索引添加至索引文件中。
60.s204、计算机设备在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹。
61.其中,第二文件夹可以是第一文件夹中所包含的每个目标文件合并后生成的文件夹,例如block文件夹。
62.在一种可能的实现方式中,计算机设备可以在第一文件夹中的多个目标文件的总数据量大于第一预设值时,将第一文件夹中的多个目标文件写入第二文件夹。
63.在另一种可能的实现方式中,计算机设备可以在第一文件夹中的多个目标文件的文件数量大于第二预设值时,将第一文件夹中的多个目标文件写入第二文件夹。
64.可以理解的是,在将第一文件夹中的多个目标文件写入第二文件夹后,计算机设备可以删除第一文件夹中的多个目标文件,并继续用于写入新的目标文件。
65.s205、计算机设备更新第二文件夹的文件位置索引。
66.可以理解的是,计算机设备在将第一文件夹中的多个目标文件写入目标目录的第二文件夹后,还可以更新第二文件夹的问价位置索引,以支持对新生成的第二文件夹中的目标文件的访问。
67.具体的,计算机设备可以删除索引文件中,第一文件夹中包括的每个目标文件的文件位置索引,并将第二文件夹的文件位置索引添加至索引文件中。
68.本实施例中,计算机设备根据目标文件的文件名确定目标文件的哈希值,并根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录,且将目标文件写入目标目录的第一文件夹,在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹,并更新第二文件夹的文件位置索引,从而实现对小文件的管理,降低了访问小文件需要的时间,提高了小文件的访问效率。
69.可选的,在上述实施例的基础上,结合图2,如图3所示,上述基于对象存储的数据存储方法,还包括:
70.s301、计算机设备在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录。
71.可以理解的是,在单个目标目录中的文件数目太大时,从索引文件中查询目标文件的效率会变低。基于此,计算机设备可以进一步对目标目录进行扩展。
72.具体的,计算机设备在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录。
73.在一种可能的实现方式中,具体拆分方式可以是按照预设拆分数量平分目录范围。示例性的,计算机设备在对上述实施例中的目录范围为0-100的目标目录0进行拆分时,若预设拆分数量为2,则计算机设备可以将目标目录0拆分为子目录0和子目录50,其中,子
目录0对应的子目录范围为0-50,子目录50对应的子目录范围为50-100。
74.s302、计算机设备根据目标目录中包括的每个目标文件的哈希值,确定每个目标文件对应的子目录。
75.具体的,计算机设备可以根据目标目录中包括的每个目标文件的哈希值所属的子目录范围,确定每个目标文件对应的子目录。
76.示例性的,在上述示例的基础上,假如一个目标文件计算出来的哈希值为21,则落入0-50的区间,此时该目标文件应当存入子目录0内。
77.s303、计算机设备将每个目标文件迁移至每个目标文件对应的子目录中。
78.具体的,计算机设备可以将每个目标文件迁移至每个目标文件对应的子目录中。
79.可以理解的是,计算机设备将每个目标文件迁移至每个目标文件对应的子目录中的迁移方式,与上述实施例中步骤s203-s205中所公开的目标文件写入方式相同,在此不做赘述。同样的,针对每个子目录,计算机设备可以将迁移至该子目录中的目标文件的文件索引位置更新至该子目录中的索引文件中。
80.为了便于理解,图4示出了一种目录结构示意图。其中,0/block0和0/block1可以为子目录0中两个已经合并好的第二文件夹block0和block1对应的目录,50/block0和50/block1可以为子目录50中两个已经合并好的第二文件夹block0和block1对应的目录,0/index可以为子目录0中的索引文件index对应的目录,50/index可以为子目录50中的索引文件index对应的目录,0/staging/a.txt和0/staging/b.txt为子目录0中两个未合并的目标文件a.txt和b.txt对应的目录,两者均存储于第一文件夹staging中。
81.本实施例中,计算机设备在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录,并根据目标目录中包括的每个目标文件的哈希值,确定每个目标文件对应的子目录,将每个目标文件迁移至每个目标文件对应的子目标目录中,从而实现了目录扩展,进一步提高了小文件的访问效率。
82.上述主要从设备的角度对本发明实施例提供的方案进行了介绍。可以理解的是,设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
83.图5示出了一种可能的基于对象存储的数据存储装置的组成示意图,如图5所示,该基于对象存储的数据存储装置可以包括:第一确定模块51、第二确定模块52、写入模块53、合并模块54以及更新模块55。
84.第一确定模块51,用于根据目标文件的文件名确定目标文件的哈希值。
85.第二确定模块52,用于根据目标文件的哈希值所属的目录范围,确定目标文件待写入的目标目录。
86.写入模块53,用于将目标文件写入目标目录的第一文件夹。
87.合并模块54,用于在第一文件夹满足预设规则时,将第一文件夹中的多个目标文件写入目标目录的第二文件夹。
88.更新模块55,用于更新第二文件夹的文件位置索引。
89.可选的,写入模块53具体用于:当第一文件夹中的多个目标文件的总数据量大于第一预设值时,将第一文件夹中的多个目标文件写入第二文件夹;或者,当第一文件夹中的多个目标文件的文件数量大于第二预设值时,将第一文件夹中的多个目标文件写入第二文件夹。
90.可选的,结合图5,如图6所示,基于对象存储的数据存储装置还包括扩展模块56,扩展模块56用于,在目标目录的第二文件夹的数量大于预设数量时,将目标目录拆分为多个子目录;第二确定模块52还用于,根据目标目录中包括的每个目标文件的哈希值,确定每个目标文件对应的子目录;写入模块53还用于,将每个目标文件迁移至每个目标文件对应的子目录中。
91.可选的,第二确定模块52还用于,根据待存储的目标文件的总数量和目标目录存储文件的数量,确定目标目录的数量;根据哈希值的范围和目标目录的数量,确定每个目标目录对应的目录范围。
92.可选的,更新模块55还用于,将目标文件写入目标目录的第一文件夹后,生成目标文件的文件位置索引。
93.可选的,更新模块55具体用于,删除第一文件夹中包括的每个目标文件的文件位置索引;添加第二文件夹的文件位置索引。
94.当然,本发明实施例提供的基于对象存储的数据存储装置包括但不限于上述模块。
95.本发明实施例提供的基于对象存储的数据存储装置,用于执行上述基于对象存储的数据存储方法,因此可以达到与上述基于对象存储的数据存储方法相同的效果。
96.本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行上述方法实施例所示的基于对象存储的数据存储方法。
97.本发明另一实施例还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算机设备上运行时,使得计算机设备执行上述方法实施例所示的基于对象存储的数据存储方法。
98.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1