一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据存储方法、系统、设备以及介质与流程

2022-06-29 14:01:35 来源:中国专利 TAG:


1.本发明涉及存储领域,具体涉及一种数据存储方法、系统、设备以及存储介质。


背景技术:

2.当前的分布式对象存储系统中,已支持重删功能,在用户上传时根据对象的内容使用特定hash算法计算生成身份指纹信息作为oid直接使用,通过指纹信息判断内容查找判断是否已存在,结合对象元数据中的引用计数的使用进行,实现对象存储的重复数据删除的特性。
3.当前的分布式对象存储系统中,针对普通海量小对象已经实现了小对象聚合的功能,把多个小对象聚合为一个大对象,减少了rados的对象数量,可以大大加快集群的重构速度,并提高系统的性能。但是当前小对象聚合功能不兼容对象重删特性,问题点在于:若是重删对象,聚合之后,其他引用该对象数据的对象会找不到数据的真实保存位置,导致下载对象时找不到对象数据,即丢数据。


技术实现要素:

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.响应于接收到数据读取请求,获取所述数据读取请求中待读取的数据对应的元数据;
34.从所述对应的元数据中确定指纹信息对象的信息;
35.根据所述指纹信息对象的信息确定对应的指纹信息对象;
36.从指纹信息对象中确定聚合属性信息;
37.根据所述聚合属性信息确定聚合后的数据以获取待读取的数据。
38.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
39.至少一个处理器;以及
40.存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种数据存储方法的步骤。
41.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种数据存储方法的步骤。
42.本发明具有以下有益技术效果之一:本发明提出一种分布式对象存储系统中聚合兼容重删特性的方案,使得聚合功能兼容重删特性,提高了对象存储中特性的兼容性,减少对象的个数,并降低数据重复率,提高对存储空间的有效使用率、重构速度和系统的性能,同时丰富了对象存储的功能,同时,在下载聚合重删对象时,也可以正确下载并返回给客户
端。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
44.图1为本发明的实施例提供的数据存储方法的流程示意图;
45.图2为本发明的实施例提供的数据存储系统的结构示意图;
46.图3为本发明的实施例提供的计算机设备的结构示意图;
47.图4为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
48.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
49.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
50.根据本发明的一个方面,本发明的实施例提出一种数据存储方法,如图1所示,其可以包括步骤:
51.s1,响应于接收到待存储的数据对象,根据所述数据对象中携带的待存储数据的指纹信息判断当前热存储池中是否存在相同的数据;
52.s2,响应于存在相同的数据,将所述数据对象的元数据写入所述热存储池并在所述元数据中记录所述相同的数据对应的指纹信息对象的信息;
53.s3,响应于所述待存储的数据对象的大小小于预设大小,根据所述指纹信息生成并记录所述待存储数据的标记;
54.s4,响应于触发将所述热存储池中的数据向冷存储池中的迁移,根据多个不同的标记确定相应的多个指纹信息对象;
55.s5,将所述相应的多个指纹信息对象中的数据聚合后迁移到所述冷存储池。
56.本发明提出一种分布式对象存储系统中聚合兼容重删特性的方案,使得聚合功能兼容重删特性,提高了对象存储中特性的兼容性,减少对象的个数,并降低数据重复率,提高对存储空间的有效使用率、重构速度和系统的性能,同时丰富了对象存储的功能,同时,在下载聚合重删对象时,也可以正确下载并返回给客户端。
57.在一些实施例中,在分布式存储系统中,目前聚合的功能需要在开启分级的基础上进行的,当小对象通过前端业务写入系统中时,首先会写入快速池中,之后当数据从热池子迁往冷池子中时,会根据桶的agg配置信息来判断是否将小对象聚合成为大对象,之后把聚合好的聚合大对象下刷到rados存储池中。在正常上传以及开启聚合的情况下,小于512kb的对象会聚合成一个4m的大对象,并删除元数据对象中的数据,同时在指纹信息对象的扩展属性中增加聚合信息,用来索引到数据实际存储的位置,进行数据的读取。
58.本发明提出的方案首先业务网关在上传对象时,对重复数据的对象,只记录元数据,不再写数据,而是在已有的相同数据上引用计数加一。然后对于满足聚合条件的对象进行聚合。本方案要求,首先要判断该对象是不是重删对象,若是重删对象,需要先找到该对象的数据的真实保存位置(指纹信息对应的oid),然后在进行聚合时,从对象真实保存的数据位置读取数据,用于聚合,聚合后要在对象数据真实保存oid上记录聚合信息,用于聚合后下载对象时找到数据保存位置。
59.客户端在下载聚合对象时,首先根据重删属性中记录的数据保存指纹信息找到数据真实保存的oid,然后获取指纹信息oid对象的属性信息,根据是否有聚合属性判断该对象是否是聚合对象,如不是聚合对象,走正常下载流程;若是聚合对象,则再根据聚合属性中聚合的信息获取该对象数据保存在哪一个聚合大对象中,进而获取在聚合大对象中对应的数据。然后把数据返回给客户端。
60.在一些实施例中,还包括:
61.将所述相应的多个指纹信息对象中的数据删除;
62.将聚合属性信息分别添加到每一个相应的指纹信息对象中。
63.在一些实施例中,将所述数据对象的元数据写入所述热存储池并在所述元数据中记录所述相同的数据对应的指纹信息对象的信息,进一步包括:
64.将所述对应的指纹信息对象中的引用计数加一。
65.在一些实施例中,还包括:
66.响应于接收到数据读取请求,获取所述数据读取请求中待读取的数据对应的元数据;
67.从所述对应的元数据中确定指纹信息对象的信息;
68.根据所述指纹信息对象的信息确定对应的指纹信息对象;
69.从指纹信息对象中确定聚合属性信息;
70.根据所述聚合属性信息确定聚合后的数据以获取待读取的数据。
71.具体的,客户端上传对象请求,计算对象数据对应的指纹信息(md5值),判断热存储池中是否已经有相同的数据,若是没有相同的数据,根据指纹信息生成对应的oid,保存数据到该oid对象,并记录其引用计数;若是已经有相同的数据,不再保存数据,而是在指纹信息oid对象上增加引用计数。
72.若是满足对象满足小于512k条件,把对象写入热池,并记录根据oid生成的标记以用于聚合;
73.聚合线程根据标记遍历各个热池对象,把小于512k的小对象进行聚合成一个大对象保存;读取对象时要判断对象是否是重删对象,若是重删对象,需要找到数据真实保存位置(即指纹信息oid对象),从指纹信息oid对象读取数据,用于聚合;
74.达到刷盘条件后,把聚合大对象从缓存中读出写入osd磁盘;然后在指纹信息oid对象中添加聚合扩展属性,并删除指纹信息oid对象中的数据。
75.当服务器端收到客户端发出的下载对象的请求后,先从元数据中读取指纹信息oid对象的信息,通过指纹信息oid对象的信息找到对应的指纹信息oid对象,然后获取指纹信息oid对象的属性信息,判断其是否有聚合属性:若有,根据聚合属性信息找到数据保存的聚合大对象,读取数据;若无,按原有流程读取数据。
76.本发明提出一种分布式对象存储系统中聚合兼容重删特性的方案,使得聚合功能兼容重删特性,提高了对象存储中特性的兼容性,减少对象的个数,并降低数据重复率,提高对存储空间的有效使用率、重构速度和系统的性能,同时丰富了对象存储的功能,同时,在下载聚合重删对象时,也可以正确下载并返回给客户端。
77.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据存储系统400,如图2所示,包括:
78.判断模块401,配置为响应于接收到待存储的数据对象,根据所述数据对象中携带的待存储数据的指纹信息判断当前热存储池中是否存在相同的数据;
79.写入模块402,配置为响应于存在相同的数据,将所述数据对象的元数据写入所述热存储池并在所述元数据中记录所述相同的数据对应的指纹信息对象的信息;
80.记录模块403,配置为响应于所述待存储的数据对象的大小小于预设大小,根据所述指纹信息生成并记录所述待存储数据的标记;
81.触发模块404,配置为响应于触发将所述热存储池中的数据向冷存储池中的迁移,根据多个不同的标记确定相应的多个指纹信息对象;
82.聚合迁移模块405,配置为将所述相应的多个指纹信息对象中的数据聚合后迁移到所述冷存储池。
83.在一些实施例中,还包括删除模块,配置为:
84.将所述相应的多个指纹信息对象中的数据删除;
85.将聚合属性信息分别添加到每一个相应的指纹信息对象中。
86.在一些实施例中,写入模块402还配置为:
87.将所述对应的指纹信息对象中的引用计数加一。
88.在一些实施例中,还包括读取模块,配置为:
89.响应于接收到数据读取请求,获取所述数据读取请求中待读取的数据对应的元数据;
90.从所述对应的元数据中确定指纹信息对象的信息;
91.根据所述指纹信息对象的信息确定对应的指纹信息对象;
92.从指纹信息对象中确定聚合属性信息;
93.根据所述聚合属性信息确定聚合后的数据以获取待读取的数据。
94.基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
95.至少一个处理器520;以及
96.存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种数据存储方法的步骤。
97.基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种数据存储方法的步骤。
98.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
99.此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
100.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
101.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
102.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
103.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
104.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
105.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献