一种数据存储方法、装置、设备及可读存储介质与流程

未命名 10-22 阅读:57 评论:0


1.本技术涉及存储技术领域,特别是涉及一种数据存储方法、装置、设备及可读存储介质。


背景技术:

2.存储产品在一些特定的应用场景中,会上传大量的类似内容甚至相同内容的数据,这些相同的数据占用了大量的磁盘存储空间,使磁盘记录有效内容减少。
3.为了提高磁盘的有效利用率,为产品试用者提供更高的产品价值,诞生了重复数据删除的概念(重删),即在存储过程中,对重复的数据不再写入磁盘,而是增加对磁盘原有数据的引用,进而提高磁盘的利用率,达到重复数据删除的效果。具体的,对象重删,即重复数据删除,在数据集或数据流中发现和消除重复内容,重复数据删除的最小单位为一个对象条带。
4.目前,在分布式存储对象场景下的重删,多数是基于对象存储条带的重删。如果该存储池被很多用户使用并开启重删功能,那么不同用户间的数据将会出现相互引用参与重删,即不同用户数据之间无隔离。此外,由于对象条带大小一般系统默认为4m,对于小文件对象则无法实现重删,若调小对象条带大小又会导致增加底层交互次数,降低性能。
5.综上所述,如何有效地解决高效且可靠地重删等问题,是目前本领域技术人员急需解决的技术问题。


技术实现要素:

6.本技术的目的是提供一种数据存储方法、装置、设备及可读存储介质,能够隔离不同用户数据,并基于实际需求,调整重删条带大小,也不会影响其他无需进行重删的对象数据的底层交互次数,能够实现高效且可靠地重删。
7.为解决上述技术问题,本技术提供如下技术方案:
8.一种数据存储方法,包括:
9.向存储桶上传目标数据时,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带;
10.在向存储池写入所述对象条带时,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符;
11.若所述存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
12.优选地,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带,包括:
13.若所述存储桶用于存储小文件对象,则按照小于4兆字节的所述重删条带大小,切割所述目标数据,得到若干个所述对象条带。
14.优选地,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对
象标识符,包括:
15.若所述重删范围为桶,则获取所述存储桶的桶id和所述对象条带的唯一标识值;
16.将所述桶id和所述唯一标识值填入桶重删命名格式中,得到所述对象标识符。
17.优选地,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符,包括:
18.若所述重删范围为用户,则获取上传所述目标数据的用户id、所述用户id所属的租户id和所述对象条带的唯一标识值;
19.将所述用户id、所述租户id和所述唯一标识值填入用户重删命名格式中,得到所述对象标识符。
20.优选地,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符,包括:
21.若所述重删范围为用户,且不同租户id间的用户id不重复,则获取上传所述目标数据的用户id和所述对象条带的唯一标识值;
22.将所述用户id和所述唯一标识值填入用户重删命名格式中,得到所述对象标识符。
23.优选地,为所述存储桶绑定所述重删条带和所述重删范围,包括:
24.获取上传所述目标数据的用户的存储策略;
25.若所述存储策略对应启用重删服务,则从所述存储策略中获取重删字段信息;
26.基于所述重删字段信息,确定所述存储桶的重删策略;所述重删策略包括重删策略名称、所述重删条带大小和所述重删范围;
27.将所述重删策略与所述存储桶进行绑定。
28.优选地,获取上传所述目标数据的用户的存储策略,包括:
29.获取所述用户上传的针对不同的存储桶,分别设置的不同重删字段信息的存储策略。
30.一种数据存储装置,包括:
31.条带切割模块,用于向存储桶上传目标数据时,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带;
32.对象命名模块,用于在向存储池写入所述对象条带时,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符;
33.重删引用模块,用于若所述存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
34.一种电子设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现上述数据存储方法的步骤。
37.一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据存储方法的步骤。
38.应用本技术实施例所提供的方法,向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带;在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符;若存储池中已有相同对
象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
39.在本技术中,在向存储桶上传目标数据时,将会按照与存储桶绑定的重删条带大小,对目标数据进行切割,而不是按照系统默认的对象条带大小进行数据切割,因而,可以根据实际应用场景需求,选择设定不同的重删条带大小,从而提高重删机率。该重删条带大小仅针对所绑定的存储桶,而不会影响该存储桶之外的数据切割的条带大小,因而不会使得其他数据的底层交互次数,不会降低其他数据的读取性能。切割完成之后,在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符。当存储池中已有相对对象标识符的对象条带,则不再将该对象条带写入存储池,而是增加该对象条带的引用计数。由于,命名方式与存储桶绑定的重删范围对应,而存储桶又与用户对应,因而可以实现不同用户数据间的隔离,即不会出现不同用户间数据的相互参与重删的情况。由此可见,本技术能够隔离不同用户数据,并基于实际需求,调整重删条带大小,也不会影响其他无需进行重删的对象数据的底层交互次数,能够实现高效且可靠地重删。
40.相应地,本技术实施例还提供了与上述数据存储方法相对应的数据存储装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
41.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本技术实施例中一种数据存储方法的实施流程图;
43.图2为本技术实施例中一种数据存储装置的结构示意图;
44.图3为本技术实施例中一种电子设备的结构示意图;
45.图4为本技术实施例中一种电子设备的具体结构示意图。
具体实施方式
46.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
47.请参考图1,图1为本技术实施例中一种数据存储方法的流程图,该方法可以应用于rgw(对象存储网关服务,在对象场景下,可为管理软件提供访问查询接口)中,该方法包括以下步骤:
48.s101、向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带。
49.存储桶,即对象存储中的桶是针对用户可用的逻辑上的存放对象的容器。
50.在本技术实施例中,可以预先为涉及重删的存储桶绑定相应的重删条带大小。该重删条带大小的数值可以根据实际需求进行设置或调整,即,该重删条带大小可以与系统默认的条带大小一致(例如为4m(兆字节)),也可以不一致。
51.在本技术中的一种具体实施方式中,步骤s101按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带,包括:若存储桶用于存储小文件对象,则按照小于4兆字节的重删条带大小,切割目标数据,得到若干个对象条带。一般来说,若该存储桶主要面对小对象存储,为了实现重删,从而减少存储空间,可设置较小的重删条带大小如(1m,2m,3m等小于4m的数值大小)。
52.当向存储桶上传目标数据时,则可按照存储桶绑定的重删条带大小,对目标数据进行切割,从而得到若干个对象条带。
53.例如,若存储桶所绑定的重删条带大小为4m,目标数据共10m,进行切割之后,则可以得到4m,4m和2m的对象条带;若存储桶所绑定的重删条带大小为3m,目标数据共10m,进行切割之后,则可以得到3m,3m,3m和1m的对象条带。
54.在本技术中的一种具体实施方式中,为存储桶绑定重删条带和重删范围,包括:
55.步骤一、获取上传目标数据的用户的存储策略;
56.步骤二、若存储策略对应启用重删服务,则从存储策略中获取重删字段信息;
57.步骤三、基于重删字段信息,确定存储桶的重删策略;重删策略包括重删策略名称、重删条带大小和重删范围;
58.步骤四、将重删策略与存储桶进行绑定。
59.为便于描述,下面将上述四个步骤结合起来进行说明。
60.在本技术实施例中,可以直接通过从可读存储介质中读取上传目标数据的用户的存储策略,或者从管理软件的用户界面获取该存储策略,或者通过其他设备中拉取等方式获取到该存储策略。其中,管理软件可具体为分布式存储软件,其可提供管理界面给用户操作。
61.其中,步骤一获取上传目标数据的用户的存储策略,可具体包括:获取用户上传的针对不同的存储桶,分别设置的不同重删字段信息的存储策略。也就是说,在本技术中,即便是同一个用户,也可以针对其所使用的不同存储桶设置不同的重删字段信息。即,同一个用户可以对其所使用的不同的存储桶设置不同的重删范围、重删条带大小,从而匹配差异化使用存储桶的场景(如一部分存储桶经常存大文件对象,一部分存储桶经常存储小文件对象,为了分别提高重删几率,可以设置不同的重删条带大小,相应地,若需要差异化设置同一个用户的不同存储桶的重删情况,则需要设置重删范围为桶)。
62.存储策略可以具体包括该用户对应的存储相关的设置,如包括是否启用重删服务,重删策略名称、重删范围、重删条带大小等关于重删的字段信息。
63.若明确了存储策略对应启用重删服务,则可从该存储策略中获取到重删字段信息,然后再基于重删字段信息,确定出存储桶的重删策略。需要注意的是,该重删策略具体包括重删策略名称、重删条带大小和重删范围。
64.具体的,可以基于重删策略名称将重删策略与存储桶进行了绑定。后续为了便于描述,直接将存储桶绑定的重删策略中的重删范围和重删条带大小直接视为与存储桶进行了绑定。即存储桶绑定了重删策略,则该存储桶就存在与至绑定的重删范围和重删条带大小。
65.s102、在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符。
66.存储池:存储池是逻辑存储概念,客户端上传的文件被切割成固定大小的对象后存放在存储池中。
67.常规模式下,对对象条带进行命名,即以该对象条带的唯一标识符进行命名即可,例如md5值,如此便导致同一存储池被多个用户使用的情况下,会存在不同用户间的数据出现相互重删,导致不同用户间数据无隔离。
68.在本技术实施例中,为不同的存储桶绑定不同的重删范围,不同的重删范围对应不同的命名格式,由于命名是检测是否重删的依据,因而基于不同重删范围对应的命名格式,可以实现不同的重删范围的数据隔离,如不同用户间的数据隔离,或者同一个用户下的不同存储桶之间的数据隔离。
69.具体的,在向存储池写入对象条带时,按照该存储桶绑定的重删范围对应的命名格式,可以对对象条带的对象标识符进行定义。
70.具体的,不同重删范围对应的命名格式,可以具体包括对象条带的唯一标识符以及重删范围对应的唯一标识,按照某种特定的方式进行组合/拼接,从而定义出能够实现数据隔离的对象标识符。
71.在本技术中的,重删范围可以设置为用户也可以为桶,下面分别针对不同的情况下的命名进行说明。
72.对于重删范围为桶,则上述步骤s102按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符,包括:
73.步骤一、若重删范围为桶,则获取存储桶的桶id和对象条带的唯一标识值;
74.步骤二、将桶id和唯一标识值填入桶重删命名格式中,得到对象标识符。
75.为便于描述,下面将上述两个步骤结合起来进行说明。
76.若重删范围设置为桶,则需要获取存储桶的桶id以及该对象条带的唯一标识值。其中,对象条带的唯一标识值可以基于哈希算法等算法计算出来,例如可以直接将对象条带的md5值作为对象条带的唯一标识值。
77.其中,md5值可以通过md5消息摘要算法(md5 message-digest algorithm)计算出,md5消息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值。不同数据的md5值将不同。
78.在本技术中,可以预先设置桶重删命令格式,当获取到桶id和对象条带的唯一标识值之后,将二者填入桶重删命令格式中,即可定义该对象条带的对象标识符。
79.举例说明:设置桶重删命令格式为条带名称(对象标识符,oid)=桶id_条带md5值,若桶id为a,对象条带的条带md5值为x,则该对象条带的oid为a_x。
80.对于重删范围为用户,考虑到不同的租户下,可以用户名id相同或不同,因而下面针对不同的用户id情况,对对象条带的对象标识符定义进行解释说明:
81.情况一:不同租户id下,允许用户id相同,则步骤s102按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符,包括:
82.步骤一、若重删范围为用户,则获取上传目标数据的用户id、用户id所属的租户id和对象条带的唯一标识值;
83.步骤二、将用户id、租户id和唯一标识值填入用户重删命名格式中,得到对象标识符。
84.为便于描述,下面将上述两个步骤结合起来进行说明。
85.当不同租户id下,允许出现相同用户id,为了有效隔离不同的用户,则需要获取上传目标数据的用户id,该用户id对应的所属的租户id,以及该对象条带的唯一标识值。
86.然后,可以基于预先设置的用户重删命名格式,将用户id、租户id和唯一标识值进行填入,从而得到对象标识符。
87.举例说明:当重删范围是用户时,条带名称=租户id_用户id_条带md5值(无租户时,租户id默认使用admin)。
88.情况一:不同租户id下,不允许用户id相同,则步骤s102按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符,包括:
89.步骤一、若重删范围为用户,且不同租户id间的用户id不重复,则获取上传目标数据的用户id和对象条带的唯一标识值;
90.步骤二、将用户id和唯一标识值填入用户重删命名格式中,得到对象标识符。
91.为便于描述,下面将上述两个步骤结合起来进行说明。
92.当不同的用户id间的用户id不重复,则仅基于用户id即可明确各个用户,因而可以仅基于用户id和对象条带的唯一标识值,即可隔离用户数据。
93.在获取到用户id和对象条带的唯一标识值之后,可直接将二者填写至用户重删命名格式中,即可得到对象标识符。
94.举例说明:当重删范围是用户时,条带名称=用户id_条带md5值。
95.s103、若存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
96.定义了对象条带的对象标识符之后,基于该对象标识符,完成有重删范围的重删处理。
97.具体的,当存储池中已有相同对象标识符的对象条带时,则可无需再次写入该对象条带,而是直接增加该对象条带的引用计数,从而减少相同数据的对象条带占用的存储空间。
98.其中,引用计数:当有对象条带上传时,发现存储池中有相同的条带,则只将该对象条带的引用计数加1;在删除的时候,每次删除将引用计数减1,当引用计数减为0时,才会将该对象条带完全删除。
99.当然,在存储池中没有相同的对象标识符的对象条带时,此时需要将该对象条带写入到存储池进行数据存储,以及方便下次出现相同数据的对象条带时,仅增加该对象条带的引用计数,而无需重复存储。
100.应用本技术实施例所提供的方法,向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带;在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符;若存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
101.在本技术中,在向存储桶上传目标数据时,将会按照与存储桶绑定的重删条带大小,对目标数据进行切割,而不是按照系统默认的对象条带大小进行数据切割,因而,可以根据实际应用场景需求,选择设定不同的重删条带大小,从而提高重删机率。该重删条带大小仅针对所绑定的存储桶,而不会影响该存储桶之外的数据切割的条带大小,因而不会使
得其他数据的底层交互次数,不会降低其他数据的读取性能。切割完成之后,在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符。当存储池中已有相对对象标识符的对象条带,则不再将该对象条带写入存储池,而是增加该对象条带的引用计数。由于,命名方式与存储桶绑定的重删范围对应,而存储桶又与用户对应,因而可以实现不同用户数据间的隔离,即不会出现不同用户间数据的相互参与重删的情况。由此可见,本技术能够隔离不同用户数据,并基于实际需求,调整重删条带大小,也不会影响其他无需进行重删的对象数据的底层交互次数,能够实现高效且可靠地重删。
102.为便于本领域技术人员更好地理解本技术实施例所提供的数据存储方法,下面结合相关技术,并以实际应用场景为例,对数据存储方法的具体实施应用进行距离说明。
103.通常,在分布式存储对象场景下的重删,多数是基于对象存储条带的重删。具体实现包括:
104.步骤1、当有一个15m的文件向对象存储上传时,rgw将15m的文件切割为4m、4m、4m、3m的对象条带。条带的命名方式是条带数据的md5值。
105.步骤2、rgw向存储池写入数据的时候,首先会判断存储池中是否有该md5值命名的对象条带(md5值相同说明条带数据相同):如果有,会将该条带元数据中的引用计数加1,然后不再上传该数据条带,达到相同数据只上传一份的效果;如果没有,则对该数据条带进行上传。
106.可见,上述2个步骤描述的重删方法,其重删的范围是同一个存储池中的所有对象。在这种重删方法的应用场景中,存在以下几个问题:
107.1、如果该存储池被很多用户使用且开启了重删功能,那么不同的用户数据将会在一起相互引用参与重删,没有做用户数据之间的隔离。
108.2、对象条带大小一般系统默认为4m;在重删的场景下,对于小于4m的数据,无法实现重删,若设置对象条带切割的越小,可实现重删,但如果修改整个系统的条带大小参数,会将正常未开启重删功能的用户上传的数据也按调整后的条带大小进行切割上传,这样增加了rgw于底层的交互次数,会降低性能。
109.从上文实施例描述可知,本技术针对以上问题,提出了重删策略的概念,主要实现:
110.1、用户间数据隔离,提高数据安全性;
111.2、根据重删策略,定制化服务对象重删场景,提高重删机率。
112.本技术提出重删策略的概念,可通过配置重删策略进而实现,重删策略配置过程如下:
113.1、在管理软件添加设置重删策略的接口,向用户信息中添加重删策略的字段:
114.(1)、重删策略的名称(集群内重删策略的名称不允许重复,可通过管理软件进行重复限制);
115.(2)、重删产生对象条带的大小;
116.(3)、重删的范围选择为桶或者用户。
117.2、一个用户允许创建多条重删策略。
118.3、创建桶之后,在管理软件对该桶绑定需要执行的重删策略,每个桶只允许绑定一个重删策略(当桶未绑定重删策略时,默认重删不开启)。
119.4、向桶中上传数据时,按照该桶绑定的重删策略中条带的大小参数,对数据进行切割。
120.5、切割后的数据条带向存储池中写入时,对象条带命名如下:
121.当重删范围是用户时:条带名称=租户id_用户id_条带md5值(无租户时,租户id默认使用admin);
122.当重删范围是桶时:条带名称=桶id_条带md5值。
123.即,实施本技术所提供的数据存储方法,主要实现的流程如下:
124.1、在管软界面设置用户的存储策略。
125.2、在创建桶之后,为桶绑定重删策略。
126.3、在上传对象时,rgw需按照对象策略切割数据条带的大小。
127.4、在向存储池写入对象条带时,rgw需按照对象策略定义上传对象条带的oid。
128.5、在上传时,rgw发现存储池中有相同oid的对象时,不再上传该对象条带,而是增加该条带的引用计数,达到多个对象共用一个数据条带的效果。
129.由此可见,在本技术中,能够达到用户间数据隔离以及根据业务特点配置重删条带大小,提高重删率。
130.其中,用户间数据隔离:因为每个数据条带中都带有租户id_用户id或者桶id的标志,所以使用者可以根据自身需求,让数据实现用户与用户之间的数据隔离,或者该用户下不同桶之间的数据隔离。使用者可以根据自身业务需求进行灵活的调整。
131.根据业务特点配置重删条带大小,提高重删率:用户对于可能含有大量重复数据的对象,进行定制性的条带大小的设置,进而提升重删的概率,做到定制化的精确重删服务。
132.也就是说,应用本技术实施例所提供的数据存储方法,可以根据重删策略中相关参数的灵活组排,可以灵活化定制重删的方法,更加适用现场需要重删的场景。
133.相应于上面的方法实施例,本技术实施例还提供了一种数据存储装置,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。
134.参见图2所示,该装置包括以下模块:
135.条带切割模块101,用于向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带;
136.对象命名模块102,用于在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符;
137.重删引用模块103,用于若存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
138.应用本技术实施例所提供的装置,向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带;在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符;若存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。
139.在本技术中,在向存储桶上传目标数据时,将会按照与存储桶绑定的重删条带大小,对目标数据进行切割,而不是按照系统默认的对象条带大小进行数据切割,因而,可以根据实际应用场景需求,选择设定不同的重删条带大小,从而提高重删机率。该重删条带大
小仅针对所绑定的存储桶,而不会影响该存储桶之外的数据切割的条带大小,因而不会使得其他数据的底层交互次数,不会降低其他数据的读取性能。切割完成之后,在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符。当存储池中已有相对对象标识符的对象条带,则不再将该对象条带写入存储池,而是增加该对象条带的引用计数。由于,命名方式与存储桶绑定的重删范围对应,而存储桶又与用户对应,因而可以实现不同用户数据间的隔离,即不会出现不同用户间数据的相互参与重删的情况。由此可见,本技术能够隔离不同用户数据,并基于实际需求,调整重删条带大小,也不会影响其他无需进行重删的对象数据的底层交互次数,能够实现高效且可靠地重删。
140.在本技术的一种具体实施方式中,条带切割模块101,用于若存储桶用于存储小文件对象,则按照小于4兆字节的重删条带大小,切割目标数据,得到若干个对象条带。
141.在本技术的一种具体实施方式中,对象命名模块102,具体用于若重删范围为桶,则获取存储桶的桶id和对象条带的唯一标识值;将桶id和唯一标识值填入桶重删命名格式中,得到对象标识符。
142.在本技术的一种具体实施方式中,对象命名模块102,具体用于若重删范围为用户,则获取上传目标数据的用户id、用户id所属的租户id和对象条带的唯一标识值;将用户id、租户id和唯一标识值填入用户重删命名格式中,得到对象标识符。
143.在本技术的一种具体实施方式中,对象命名模块102,具体用于若重删范围为用户,且不同租户id间的用户id不重复,则获取上传目标数据的用户id和对象条带的唯一标识值;将用户id和唯一标识值填入用户重删命名格式中,得到对象标识符。
144.在本技术的一种具体实施方式中,重删配置模块,用于为存储桶绑定重删条带和重删范围,具体的,可获取上传目标数据的用户的存储策略;若存储策略对应启用重删服务,则从存储策略中获取重删字段信息;基于重删字段信息,确定存储桶的重删策略;重删策略包括重删策略名称、重删条带大小和重删范围;
145.将重删策略与存储桶进行绑定。
146.在本技术的一种具体实施方式中,重删配置模块,具体用于获取用户上传的针对不同的存储桶,分别设置的不同重删字段信息的存储策略。
147.相应于上面的方法实施例,本技术实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种数据存储方法可相互对应参照。
148.参见图4所示,该电子设备包括:
149.存储器332,用于存储计算机程序;
150.处理器322,用于执行计算机程序时实现上述方法实施例的数据存储方法的步骤。
151.具体的,请参考图4,图4为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
152.电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网
络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
153.上文所描述的数据存储方法中的步骤可以由电子设备的结构实现。
154.相应于上面的方法实施例,本技术实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据存储方法可相互对应参照。
155.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据存储方法的步骤。
156.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
157.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
158.本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本技术的范围。
159.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
160.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
161.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种数据存储方法,其特征在于,包括:向存储桶上传目标数据时,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带;在向存储池写入所述对象条带时,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符;若所述存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。2.根据权利要求1所述的数据存储方法,其特征在于,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带,包括:若所述存储桶用于存储小文件对象,则按照小于4兆字节的所述重删条带大小,切割所述目标数据,得到若干个所述对象条带。3.根据权利要求1所述的数据存储方法,其特征在于,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符,包括:若所述重删范围为桶,则获取所述存储桶的桶id和所述对象条带的唯一标识值;将所述桶id和所述唯一标识值填入桶重删命名格式中,得到所述对象标识符。4.根据权利要求1所述的数据存储方法,其特征在于,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符,包括:若所述重删范围为用户,则获取上传所述目标数据的用户id、所述用户id所属的租户id和所述对象条带的唯一标识值;将所述用户id、所述租户id和所述唯一标识值填入用户重删命名格式中,得到所述对象标识符。5.根据权利要求1所述的数据存储方法,其特征在于,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符,包括:若所述重删范围为用户,且不同租户id间的用户id不重复,则获取上传所述目标数据的用户id和所述对象条带的唯一标识值;将所述用户id和所述唯一标识值填入用户重删命名格式中,得到所述对象标识符。6.根据权利要求1至5任一项所述的数据存储方法,其特征在于,为所述存储桶绑定所述重删条带和所述重删范围,包括:获取上传所述目标数据的用户的存储策略;若所述存储策略对应启用重删服务,则从所述存储策略中获取重删字段信息;基于所述重删字段信息,确定所述存储桶的重删策略;所述重删策略包括重删策略名称、所述重删条带大小和所述重删范围;将所述重删策略与所述存储桶进行绑定。7.根据权利要求6所述的数据存储方法,其特征在于,获取上传所述目标数据的用户的存储策略,包括:获取所述用户上传的针对不同的存储桶,分别设置的不同重删字段信息的存储策略。8.一种数据存储装置,其特征在于,包括:条带切割模块,用于向存储桶上传目标数据时,按照所述存储桶绑定的重删条带大小,切割所述目标数据,得到若干个对象条带;
对象命名模块,用于在向存储池写入所述对象条带时,按照所述存储桶绑定的重删范围对应命名格式,定义所述对象条带的对象标识符;重删引用模块,用于若所述存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。9.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据存储方法的步骤。10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据存储方法的步骤。

技术总结
本申请在存储技术领域公开了一种数据存储方法、装置、设备及可读存储介质,该方法包括:向存储桶上传目标数据时,按照存储桶绑定的重删条带大小,切割目标数据,得到若干个对象条带;在向存储池写入对象条带时,按照存储桶绑定的重删范围对应命名格式,定义对象条带的对象标识符;若存储池中已有相同对象标识符的对象条带,则不再写入该对象条带,并增加该对象条带的引用计数。本申请能够隔离不同用户数据,并基于实际需求,调整重删条带大小,也不会影响其他无需进行重删的对象数据的底层交互次数,能够实现高效且可靠地重删。能够实现高效且可靠地重删。能够实现高效且可靠地重删。


技术研发人员:蔡骞 闫磊 袁圣骐 陶桐桐
受保护的技术使用者:济南浪潮数据技术有限公司
技术研发日:2023.05.11
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐