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

文档序号:31732010发布日期:2022-10-05 02:14阅读:119来源:国知局
一种数据存储方法、装置、电子设备及存储介质与流程

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.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的数据存储方法。
34.本发明提供一种数据存储方法,包括:当接收到待存储文件时,确定所述待存储文件对应的文件属性信息、指纹信息及预处理信息;利用所述指纹信息和所述预处理信息生成初始条带,并在确定存储池中保存有与所述初始条带相同的目标条带时,获取所述目标条带对应的目标文件元数据;利用所述文件属性信息、所述目标条带及所述目标文件元数据生成所述待存储文件对应的待存储文件元数据,并将所述待存储文件元数据保存至所述存储池。
35.可见,本发明在接收到待存储文件时,会首先确定其对应的文件属性信息、指纹信息及预处理信息;随后,本发明将利用指纹信息和预处理信息生成初始条带,并利用该初始
条带与存储池中的已存条带进行比较,假若发现与初始条带相同的目标条带,则获取与目标条带对应的目标文件元数据,并利用所述文件属性信息、所述目标条带及所述目标文件元数据生成所述待存储文件对应的待存储文件元数据,进而仅将所述待存储文件元数据保存至所述存储池。换而言之,本发明在保存文件时,除了额外保存有该文件的指纹信息之外,还额外保存有该文件对应的预处理信息,这样,当接收到待存储文件时,仅在确定存储池中已保存有指纹信息及预处理信息与待存储文件相同的目标文件时才进行重删处理,能够有效避免现有重删机制无法与预处理功能相互兼容的问题。本发明还提供一种数据存储装置、电子设备及计算机可读存储介质,具有上述有益效果。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
37.图1为本发明实施例所提供的一种数据存储方法的流程图;
38.图2为本发明实施例所提供的一种数据存储装置的结构框图。
具体实施方式
39.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.为解决现有重删机制完全无法与预处理功能相互兼容的问题,本发明可提供一种数据存储方法,可在存储池中额外记录各文件的指纹信息和预处理信息,并在接收到待存储文件时,仅在确定存储池中已保存有指纹信息及预处理信息与待存储文件相同的目标文件时才进行重删处理,进而可确保重删机制与预处理功能相互兼容。请参考图1,图1为本发明实施例所提供的一种数据存储方法的流程图,该方法可以包括:
41.s101、当接收到待存储文件时,确定待存储文件对应的文件属性信息、指纹信息及预处理信息。
42.在本发明实施例中,待存储文件的文件属性信息是指待存储文件的基本属性,例如文件名等;指纹信息是指待存储文件的md5值(message-digest algorithm,md5消息摘要算法),该值由待存储文件具体的文件内容计算得到,通常用于验证文件的完整性;而预处理信息则为压缩、加密的具体信息,例如具体使用的压缩算法名称、加密所采用的算法名称、加密密钥名称等。上述三个信息用于生成待存储文件在存储池(即由一个或多个存储设备组成的存储系统)中对应的元数据,而指纹信息和预处理信息进一步用于对待存储文件进行重删处理。具体的,在现有的重删方案中,重删过程仅会对待存储文件的指纹信息进行比较,但并不考虑存储池是否会对待存储文件进行预处理,即并不会对待存储文件相关的预处理信息进行比对。然而,具备相同文件内容的两个文件在存储池中对应的预处理方式可能不同,例如文件a被存储池加密,而文件b被存储池压缩,虽然文件a和文件b对应的指纹
信息相同,即原始的文件a和原始的文件b具有相同的文件内容,但这两个文件在存储池中实际对应的文件内容其实并不相同。进而,假若仅保留文件a而移除了文件b,则后续在读取文件b时,将无法使用文件a在存储池中的数据及对应的解压手段恢复出文件b,进而将直接导致用户数据丢失。因此,在本发明实施例中,在进行重删之前,除了会对将待存储文件的指纹信息与存储池中的记录进行比对,还会将该文件的预处理信息与存储池中的记录进行比对,仅在发现存储池中存在指纹信息及预处理信息与待存储文件相同的目标文件时,才会对待存储文件进行重删,进而可确保重删机制与预处理功能相互兼容,进而有效避免因不兼容问题可能导致的用户数据丢失问题。需要说明的是,本发明实施例并不限定具体的文件属性信息和预处理信息,可根据实际应用需求进行设定;本发明实施例也不限定指纹信息的具体生成方式,具体可参考md5的相关技术。
43.进一步,需要说明的是,本发明实施例并不限定如何确定待存储文件对应的预处理信息,该信息既可以由主机设备(即下发存储指令的设备)指定,也可以根据待存储文件所归属的逻辑存储单元(在本发明实施例中称为存储桶)所对应的预处理方式来确定,其中存储桶为预先对存储池进行逻辑划分得到的存储区域,其能够更好地区分不同用户或是不同用途的数据,并可设置对应的预处理方式。在本发明实施例中,为提升数据管理效率,预处理信息可根据待存储文件所归属的存储桶所设置的预处理方式确定。
44.在一种可能的情况中,确定待存储文件对应的预处理信息,可以包括:
45.步骤11:确定待存储文件对应的存储桶,并确定存储桶对应的预处理信息。
46.具体的,待存储文件所述的存储桶信息可由上述主机设备指定,进而在接收到待存储文件时,可进一步从该文件的写入属性中提取出存储桶信息,进而根据该信息确定对应的存储桶。随后,可判断该存储桶是否设置有对应的预处理功能,若已设置,则根据该功能的具体类型设置待存储文件的预处理信息;若未设置,则将待存储文件的预处理信息设置为预设字符,已便区分管理。
47.在一种可能的情况中,确定存储桶对应的预处理信息,可以包括:
48.步骤21:判断存储桶是否开启预处理功能;若是,则进入步骤22;若否,则进入步骤23;
49.步骤22:根据预处理功能的类型设置预处理信息;
50.步骤23:将预处理信息设置为预设字符。
51.需要说明的是,本发明实施例并不限定各预处理功能具体对应的预处理信息,例如压缩功能对应的预处理信息可以为压缩方式,加密功能对应的预处理信息可以为加密密钥名称,可根据实际应用需求进行设定。本发明实施例也不限定具体的预设字符,例如可以为“null”,也可以设置其他便于区分管理的字符。
52.s102、利用指纹信息和预处理信息生成初始条带,并在确定存储池中保存有与初始条带相同的目标条带时,获取目标条带对应的目标文件元数据。
53.在一种可能的情况中,利用指纹信息和预处理信息生成初始条带,可以包括:
54.步骤31:对指纹信息和预处理信息进行拼接处理,得到初始条带。
55.需要说明的是,本发明实施例并不限定具体的拼接处理方式,例如可采用如下方式进行拼接处理:
56.条带名称=对象md5值+_+压缩方式
57.条带名称=对象md5值+_+密钥名称
58.条带名称=对象md5值+_+null(不开加密与压缩)
59.在得到上述初始条带后,可将其与存储池中已记录的其他条带进行比对,以确定存储池中是否已保存有与待存储文件具有相同指纹信息和预处理信息的目标文件。若存在,则可获取该目标文件对应的目标文件元数据,以便生成待存储文件在存储池中对应的待存储文件元数据。需要说明的是,本发明实施例并不限定文件元数据(manifest)中具体保存的数据内容,例如可以包含文件对应的文件属性信息、条带信息等,可根据实际应用需求进行设定。
60.s103、利用文件属性信息、目标条带及目标文件元数据生成待存储文件对应的待存储文件元数据,并将待存储文件元数据保存至存储池。
61.在本发明实施例中,为进一步提升存储空间的利用率,可通过建立映射关系的方式,利用文件属性信息、目标条带及目标文件元数据生成待存储文件对应的待存储文件元数据。具体的,可从目标文件元数据中提取第二条带,其中该条带包含目标文件在存储池中具体的存储属性信息(如目标文件各数据块对应的指纹信息);随后,可利用待存储文件的文件属性信息生成第一条带,并将第一条带与目标条带和第二条带建立映射关系,进而利用第一条带和这一映射关系生成待存储文件元数据。这样,不仅能够实现对待存储文件的重删,同时还能够进一步降低待存储文件在存储池中相关信息的大小,可进一步提升存储池的利用率。
62.在一种可能的情况中,利用文件属性信息、目标条带及目标文件元数据生成待存储文件对应的待存储文件元数据,可以包括:
63.步骤41:利用文件属性信息生成第一条带,并从目标文件元数据中提取第二条带;第二条带包含有目标文件元数据对应的目标文件在存储池中的存储属性信息;
64.步骤42:将第一条带与目标条带和第二条带建立映射关系,并利用第一条带和映射关系生成待存储文件元数据。
65.基于上述实施例,本发明在接收到待存储文件时,会首先确定其对应的文件属性信息、指纹信息及预处理信息;随后,本发明将利用指纹信息和预处理信息生成初始条带,并利用该初始条带与存储池中的已存条带进行比较,假若发现与初始条带相同的目标条带,则获取与目标条带对应的目标文件元数据,并利用文件属性信息、目标条带及目标文件元数据生成待存储文件对应的待存储文件元数据,进而仅将待存储文件元数据保存至存储池。换而言之,本发明在保存文件时,除了额外保存有该文件的指纹信息之外,还额外保存有该文件对应的预处理信息,这样,当接收到待存储文件时,仅在确定存储池中已保存有指纹信息及预处理信息与待存储文件相同的目标文件时才进行重删处理,能够有效避免现有重删机制无法与预处理功能相互兼容的问题。
66.基于上述实施例,假若存储池中并未保存与待存储文件在指纹信息和预处理信息方面相同的目标文件,则可对待存储文件进行完整保存。下面对上述完整保存的流程进行介绍。在一种可能的情况中,在利用指纹信息和预处理信息生成初始条带之后,还可以包括:
67.s201、在确定存储池中未存有目标条带时,将待存储文件保存至存储池,并确定待存储文件对应的存储属性信息。
68.在确定存储池中并不存在与初始条带相同的目标条带时,可确定待存储文件在存储池中并不具有文件内容和预处理方式相同的目标文件,进而需要对待存储文件保存完整保存至存储池,并收集该文件具体对应的存储属性信息,以便生成该文件对应的元数据。为提升文件存储的灵活性,待存储文件可采用分块保存的方式进行存储,即可将待存储文件按数据先后顺序分割为多个数据块,并数据块保存至存储池中,以便存储池进行空间分配;此外,为确保各数据块的完整性,在完成分块之后,可为每一数据块生成对应的指纹信息,并将这些数据块的指纹信息整合至该文件对应的存储属性信息中,以便后续进行校验。关于各数据块指纹信息的相关描述,与上述对待存储文件指纹信息的相关描述一致,可参考上述实施例中描述,此处不再赘述。
69.在一种可能的情况中,将待存储文件保存至存储池,并确定待存储文件对应的存储属性信息,可以包括:
70.步骤51:对待存储文件进行分块处理得到文件块,并确定各文件块对应的指纹信息;
71.步骤52:将文件块保存至存储池,并将文件块对应的指纹信息设置为存储属性信息。
72.s202、利用文件属性信息、初始条带及存储属性信息生成待存储文件元数据,并将待存储文件元数据保存至存储池。
73.在完成对待存储文件的保存之后,需将该文件的文件存储信息、初始条带(即待存储文件的指纹信息和预处理信息)及存储属性信息完整地写入该文件对应的文件元数据,并将文件元数据也保存至存储池中,便于后续管理及重删。
74.基于上述实施例,下面基于具体的例子介绍上述数据存储方法。
75.1、在开启重删的用户下,上传对象时,记录整体对象md5值的条带命名方式调整为以下三种:
76.条带名称=对象md5值+_+压缩方式
77.条带名称=对象md5值+_+密钥名称
78.条带名称=对象md5值+_+null(不开加密与压缩)
79.2、在每次极速上传对象时,按照要上传的存储桶的属性,可组成以上条带名称。
80.3、对象网关根据上述组成的条带名称向存储池中读取该名称的条带。
81.4、如果能够读取到,说明存储池中存在相同对象。
82.5、根据该条带读取该对象的manifest。
83.6、根据manifest获得该整体对象的其他数据存放信息。
84.7、将新对象的元数据信息和该manifest放在一起重新生成头对象,写入存储池即可。
85.8、至此完成对象级重删,整个流程中无对象数据上传。
86.下面对本发明实施例提供的数据存储装置、电子设备及计算机可读存储介质进行介绍,下文描述的数据存储装置、电子设备及计算机可读存储介质与上文描述的数据存储方法可相互对应参照。
87.请参考图2,图2为本发明实施例所提供的一种数据存储装置的结构框图,该装置可以包括:
88.信息获取模块201,用于当接收到待存储文件时,确定待存储文件对应的文件属性信息、指纹信息及预处理信息;
89.判定模块202,用于利用指纹信息和预处理信息生成初始条带,并在确定存储池中保存有与初始条带相同的目标条带时,获取目标条带对应的目标文件元数据;
90.存储模块203,用于利用文件属性信息及目标文件元数据生成待存储文件对应的待存储文件元数据,并将待存储文件元数据保存至存储池。
91.可选地,判定模块202,可以包括:
92.条带生成子模块,用于对指纹信息和预处理信息进行拼接处理,得到初始条带。
93.可选地,信息获取模块201,可以包括:
94.预处理信息确定子模块,用于确定待存储文件对应的存储桶,并确定存储桶对应的预处理信息。
95.可选地,预处理信息确定子模块,可以包括:
96.判断单元,用于判断存储桶是否开启预处理功能;
97.第一设置单元,用于若是,则根据预处理功能的类型设置预处理信息;
98.第二设置单元,用于若否,则将预处理信息设置为预设字符。
99.可选地,该装置还可以包括:
100.第一保存模块,用于在确定存储池中未存有目标条带时,将待存储文件保存至存储池,并确定待存储文件对应的存储属性信息;
101.第二保存模块,用于利用文件属性信息、初始条带及存储属性信息生成待存储文件元数据,并将待存储文件元数据保存至存储池。
102.可选地,第一保存模块,可以包括:
103.分块子模块,用于对待存储文件进行分块处理得到文件块,并确定各文件块对应的指纹信息;
104.保存子模块,用于将文件块保存至存储池,并将文件块对应的指纹信息设置为存储属性信息。
105.可选地,存储模块203,包括:
106.第一处理子模块,用于利用文件属性信息生成第一条带,并从目标文件元数据中提取第二条带;第二条带包含有目标文件元数据对应的目标文件在存储池中的存储属性信息;
107.第二处理子模块,用于将第一条带与目标条带和第二条带建立映射关系,并利用第一条带和映射关系生成待存储文件元数据。
108.本发明实施例还提供一种电子设备,包括:
109.存储器,用于存储计算机程序;
110.处理器,用于执行计算机程序时实现如上述的数据存储方法的步骤。
111.由于电子设备部分的实施例与数据存储方法部分的实施例相互对应,因此电子设备部分的实施例请参见数据存储方法部分的实施例的描述,这里不再赘述。
112.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的数据存储方法的步骤。
113.由于计算机可读存储介质部分的实施例与数据存储方法部分的实施例相互对应,
因此存储介质部分的实施例请参见数据存储方法部分的实施例的描述,这里不再赘述。
114.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
115.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
116.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
117.以上对本发明所提供的一种数据存储方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1