CN109885535A - 一种文件存储的方法及相关装置 - Google Patents
一种文件存储的方法及相关装置 Download PDFInfo
- Publication number
- CN109885535A CN109885535A CN201910007687.4A CN201910007687A CN109885535A CN 109885535 A CN109885535 A CN 109885535A CN 201910007687 A CN201910007687 A CN 201910007687A CN 109885535 A CN109885535 A CN 109885535A
- Authority
- CN
- China
- Prior art keywords
- file
- stored
- merging
- address
- storage
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及分布式存储领域,提供了一种文件存储方法及相关装置。一种文件存储的方法包括:获取第一待存储文件的大小;当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值;在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件;若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址;根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。本发明实施例的技术方案,节约了系统的存储资源并且提高了系统性能。
Description
技术领域
本发明涉及分布式存储领域,尤其是一种文件存储的方法及相关装置。
背景技术
对象存储系统是综合了网络附属存储和存储区域网络的优点,同时具有存储区域网络的高速直接访问和网络附属存储的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。
目前在对象存储系统中,客户端在大量存储占用内存较小的小文件时,小文件都是随机存储在对象存储设备的底层数据盘,同时生成小文件的元数据存储在元数据服务器,大量的小文件进行存储时会生成大量的元数据存储在元数据服务器,这样会造成系统存储资源的浪费。客户端访问小文件时,先向元数据服务器查询小文件的元数据,得到小文件的存储地址,然后根据小文件的存储地址对小文件进行操作,但是底层数据盘操作占用内存较小的小文件的性能较差。这样造成了系统存储资源的浪费,而且系统性能较差。
发明内容
本发明实施例提供文件存储的方法及相关装置,以期节约存储系统的存储资源并且提高系统性能。
本发明第一方面提供一种文件存储的方法,包括:
获取第一待存储文件的大小;
当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值;
在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件;
若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址;
根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
本发明第二方面提供了一种文件存储的装置,包括:
第一获取模块,用于获取第一待存储文件的大小;
处理模块,用于当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值;
查找模块,用于在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件;
第二获取模块,用于若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址;
存储模块,用于根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
本发明第三方面提供了一种文件存储的电子设备,所述电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行上述任一实施方式的指令。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被所述处理器执行,以实现上述任一实施方式。
可以看到,本发明提供了一种文件存储的方法及相关装置,通过上述技术方案,客户端存储第一待存储文件时,获取第一待存储文件的大小,当第一待存储文件的大小比存储阈值小时,通过哈希算法对第一待存储文件进行处理,得到第一待存储文件的哈希值,在对象存储设备中查找是否存在文件名与第一待存储文件的哈希值相同的第一合并文件,若存在,则获取第一合并文件的存储地址,根据第一合并文件的存储地址将第一待存储文件存储在第一合并文件中,客户端在存储第二待存储文件时,如果第二待存储文件的哈希值和第一待存储文件的哈希值相同,则将第二待存储文件也存储在第一合并文件中。将哈希值相同的占用内存较小的待存储文件存储在占用内存较大的合并文件中,这样充分利用了对象存储系统的存储资源,避免占用内存较小的待存储文件随机存储在对象存储设备中造成存储资源的浪费,并且客户端可以通过操作占用内存较大的合并文件从而操作存储在该合并文件中的占用内存较小的待存储文件,由于系统的底层数据盘操作占用内存较大的文件的性能较好,所以这样提高了系统的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种文件存储方法的流程图;
图2为本发明实施例提供的另一种文件存储方法的流程图;
图3为本发明实施例提供的另一种文件存储方法的流程图;
图4为本发明实施例提供的另一种文件存储方法的流程图;
图5为本发明实施例中待存储文件存储在合并文件中的示意图;
图6为本发明实施例提供的一种对象存储系统结构示意图;
图7为本发明实施例提供的一种对象存储设备示意图;
图8为本发明实施例提供的一种文件存储装置的示意图;
图9为本发明实施例涉及的硬件运行环境的电子设备结构示意图。
具体实施方式
本发明实施例提供文件存储的方法及相关装置,以期提高分布式存储系统的可靠性和效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明的实施例中的系统为对象存储系统,对象存储系统包括客户端、元数据服务器和对象存储设备,本发明实施例中的执行主体为客户端,客户端可以和对象存储设备连接。
其中,上述客户端例如可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备、可穿戴设备或其他类型的客户端。
首先参见图1,图1为本发明的一个实施例提供的一种文件存储方法的流程图。其中,如图1所示,本发明的一个实施例提供的一种文件存储方法可以包括:
101、获取第一待存储文件的大小。
102、当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值。
可选的,所述存储阈值由对象存储系统配置,所述存储阈值可以是4kb、8kb或者16kb,当所述第一待存储文件的大小比所述存储阈值小时,说明所述第一待存储文件在存储时占用的存储空间较小。
可选的,通过哈希算法对所述第一待存储文件进行处理包括通过哈希算法对所述第一待存储文件的文件名进行处理,或者提取所述第一待存储文件的文件标识,通过哈希算法对所述第一待存储文件的文件标识进行处理。哈希算法是固定的,对每个待存储文件进行哈希后得到一个哈希值,多个待存储文件的哈希值可以相同。
103、在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件。
其中,所述对象存储设备中存储了多个对象,对象是数据和数据属性集的综合体,其中,数据属性集包括数据分布和服务质量等,所述对象存储设备使用对象对保存的数据进行管理。
可选的,所述第一合并文件的大小由所述对象存储系统配置,所述第一合并文件的大小可以是4MB、8MB或者16MB,所述第一合并文件占用的存储空间较大,由于底层数据盘对占用内存较大的文件操作时性能更好,所以所述对象存储系统对所述第一合并文件中的数据进行操作时性能较好。
104、若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址。
若所述对象存储设备中存在所述第一合并文件,则客户端向所述对象存储设备发送获取所述第一合并文件存储地址的请求,所述对象存储设备接收到该请求时,将所述第一合并文件的存储地址返回给所述客户端。
由于所述第一合并文件的文件名与所述第一待存储文件的哈希值相同,这样在访问所述第一待存储文件时,客户端先通过哈希算法对所述第一待存储文件进行处理,得到所述第一待存储文件的哈希值,然后根据所述第一待存储文件的哈希值可以得到存储所述第一待存储文件的所述第一合并文件的文件名。
105、根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
将所述第一待存储文件存储在所述第一合并文件中之前,所述客户端向所述对象存储设备发送身份验证请求,所述身份验证请求携带所述客户端的标识信息,所述对象存储设备接收到该身份验证请求时,对所述客户端的标识信息进行验证,验证通过时,才可以将所述第一待存储文件存储在所述第一合并文件中。
将所述第一待存储文件存储在所述第一合并文件中之后,将所述第一待存储文件的哈希值存储在所述对象存储设备中,并且将所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小也存储在所述对象存储设备中,将所述第一待存储文件的哈希值设为所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小的索引信息,即客户端根据所述第一待存储文件的哈希值可以获得所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小,然后客户端可以对所述第一待存储文件进行读取或者删除操作。
可选的,所述对象存储系统扩容时,所述对象存储系统增加存储节点,将原来的存储节点上的合并文件部分转移到新增的存储节点中,转移过程中,由于底层数据盘对占用内存较大的文件操作时性能更好,所以在所述对象存储系统扩容时,系统的性能更好。
可选的,所述对象存储系统异常时,例如所述对象存储设备挂掉或者宕机时,需要对数据进行恢复或者回填,异常恢复过程中,所述对象存储系统对合并文件进行操作,同样由于底层数据盘对占用内存较大的文件操作时性能更好,所以在所述对象存储系统异常恢复时,系统的性能更好。
参见图2,图2为本发明的另一个实施例提供的另一种文件存储方法的流程图。其中,如图2所示,本发明的另一个实施例提供的另一种文件存储方法可以包括:
201、客户端获取第一待存储文件的大小。
202、当第一待存储文件的大小比存储阈值小时,客户端通过哈希算法对第一待存储文件进行处理以得到第一待存储文件的哈希值。
可选的,存储阈值由对象存储系统配置,例如存储阈值可以是4kb、8kb或者16kb,当第一待存储文件的大小比存储阈值小时,说明第一待存储文件在存储时占用的存储空间较小。
可选的,客户端通过哈希算法对第一待存储文件进行处理包括:
客户端通过哈希算法对第一待存储文件的文件名进行处理,或者客户端提取第一待存储文件的文件标识,通过哈希算法对第一待存储文件的文件标识进行处理。哈希算法是固定的,对每个待存储文件进行哈希后得到一个哈希值,多个待存储文件的哈希值可以相同。
203、客户端在对象存储设备中查找到文件名与第一待存储文件的哈希值相同的第一合并文件。
其中,对象存储设备中存储了多个对象,对象是数据和数据属性集的综合体,其中,数据属性集包括数据分布和服务质量等,对象存储设备使用对象对保存的数据进行管理。
可选的,第一合并文件的大小由对象存储系统配置,第一合并文件的大小可以是4MB、8MB或者16MB,第一合并文件占用的存储空间较大,由于底层数据盘对占用内存较大的文件操作时性能更好,所以对象存储系统对第一合并文件中的数据进行操作时性能较好。
204、客户端获取第一合并文件的存储地址。
客户端向对象存储设备发送获取第一合并文件存储地址的请求,对象存储设备接收到该请求时,将第一合并文件的存储地址返回给客户端。
由于第一合并文件的文件名与第一待存储文件的哈希值相同,这样在访问第一待存储文件时,客户端先通过哈希算法对第一待存储文件进行处理,得到第一待存储文件的哈希值,然后根据第一待存储文件的哈希值可以得到存储第一待存储文件的第一合并文件的文件名。
205、客户端向对象存储设备发送身份验证请求。
其中,上述身份验证请求携带客户端的标识信息,对象存储设备接收到该身份验证请求时,对客户端的标识信息进行验证,验证通过时,客户端才可以在对象存储设备中进行存储操作。
206、客户端根据第一合并文件的存储地址将第一待存储文件存储在第一合并文件中。
可选的,将第一待存储文件存储在第一合并文件中包括:
客户端根据第一合并文件的存储地址访问第一合并文件,从第一合并文件的存储地址开始按照地址递增的顺序查询第一合并文件的存储空间。
当查询到第一合并文件中未被占用的存储空间时,将未被占用的存储空间的起始地址作为第一待存储文件在第一合并文件中存储的起始地址,从第一待存储文件在第一合并文件中存储的起始地址开始按照地址递增的顺序将第一待存储文件存储在第一合并文件中。
其中,按照递增的顺序将第一待存储文件存储在第一合并文件中,可以避免第一待存储文件中的数据随机存储在第一合并文件中,这样在后续访问第一待存储文件时,根据第一待存储文件在第一合并文件中的起始地址和第一待存储文件的大小就可以获得第一待存储文件。
207、客户端将第一待存储文件的哈希值、第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小存储在对象存储设备中。
进一步地,客户端将第一待存储文件的哈希值设为第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小的索引信息,即客户端根据第一待存储文件的哈希值可以获得第一待存储文件在所述第一合并文件中存储的起始地址和第一待存储文件的大小,然后客户端可以对第一待存储文件进行读取或者删除操作。
可选的,对象存储系统扩容时,对象存储系统增加存储节点,将原来的存储节点上的合并文件部分转移到新增的存储节点中,转移过程中,由于底层数据盘对占用内存较大的文件操作时性能更好,所以在对象存储系统扩容时,系统的性能更好。
可选的,对象存储系统异常时,例如对象存储设备挂掉或者宕机时,需要对数据进行恢复或者回填,异常恢复过程中,对象存储系统对合并文件进行操作,同样由于底层数据盘对占用内存较大的文件操作时性能更好,所以在对象存储系统异常恢复时,系统的性能更好。
参见图3,图3为本发明的另一个实施例提供的另一种文件存储方法的流程图。其中,如图3所示,本发明的另一个实施例提供的另一种文件存储方法可以包括:
301、客户端获取第一待存储文件的大小。
302、当第一待存储文件的大小比存储阈值小时,客户端通过哈希算法对第一待存储文件进行处理以得到第一待存储文件的哈希值。
可选的,存储阈值由对象存储系统配置,例如存储阈值可以是4kb、8kb或者16kb,当第一待存储文件的大小比存储阈值小时,说明第一待存储文件在存储时占用的存储空间较小。
可选的,客户端通过哈希算法对第一待存储文件进行处理包括:
客户端通过哈希算法对第一待存储文件的文件名进行处理,或者客户端提取第一待存储文件的文件标识,通过哈希算法对第一待存储文件的文件标识进行处理。哈希算法是固定的,对每个待存储文件进行哈希后得到一个哈希值,多个待存储文件的哈希值可以相同。
303、客户端在对象存储设备中查找到文件名与第一待存储文件的哈希值相同的第一合并文件。
其中,对象存储设备中存储了多个对象,对象是数据和数据属性集的综合体,其中,数据属性集包括数据分布和服务质量等,对象存储设备使用对象对保存的数据进行管理。
可选的,第一合并文件的大小由对象存储系统配置,第一合并文件的大小可以是4MB、8MB或者16MB,第一合并文件占用的存储空间较大,由于底层数据盘对占用内存较大的文件操作时性能更好,所以对象存储系统对第一合并文件中的数据进行操作时性能较好。
304、客户端获取第一合并文件的存储地址。
客户端向对象存储设备发送获取第一合并文件存储地址的请求,对象存储设备接收到该请求时,将第一合并文件的存储地址返回给客户端。
由于第一合并文件的文件名与第一待存储文件的哈希值相同,这样在访问第一待存储文件时,客户端先通过哈希算法对第一待存储文件进行处理,得到第一待存储文件的哈希值,然后根据第一待存储文件的哈希值可以得到存储第一待存储文件的第一合并文件的文件名。
305、客户端根据第一合并文件的存储地址将第一待存储文件存储在第一合并文件中。
将第一待存储文件存储在第一合并文件中之前,客户端向对象存储设备发送身份验证请求,该身份验证请求携带客户端的标识信息,对象存储设备接收到该身份验证请求时,对客户端的标识信息进行验证,验证通过时,才可以将第一待存储文件存储在第一合并文件中。
可选的,将第一待存储文件存储在第一合并文件中包括:
客户端根据第一合并文件的存储地址访问第一合并文件,从第一合并文件的存储地址开始按照地址递增的顺序查询第一合并文件的存储空间。
当查询到第一合并文件中未被占用的存储空间时,将未被占用的存储空间的起始地址作为第一待存储文件在第一合并文件中存储的起始地址,从第一待存储文件在第一合并文件中存储的起始地址开始按照地址递增的顺序将第一待存储文件存储在第一合并文件中。
其中,按照递增的顺序将第一待存储文件存储在第一合并文件中,可以避免第一待存储文件中的数据随机存储在第一合并文件中,这样在后续访问第一待存储文件时,根据第一待存储文件在第一合并文件中的起始地址和第一待存储文件的大小就可以获得第一待存储文件。
306、客户端将第一待存储文件的哈希值、第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小存储在对象存储设备中。
进一步地,客户端将第一待存储文件的哈希值设为第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小的索引信息,即客户端根据第一待存储文件的哈希值可以获得第一待存储文件在所述第一合并文件中存储的起始地址和第一待存储文件的大小,然后客户端可以对第一待存储文件进行读取或者删除操作。
307、客户端获取第二待存储文件的大小。
308、当第二待存储文件的大小比存储阈值小时,客户端通过哈希算法对第二待存储文件进行处理以得到第二待存储文件的哈希值。
可选的,存储阈值由对象存储系统配置,例如存储阈值可以是4kb、8kb或者16kb,当第二待存储文件的大小比存储阈值小时,说明第二待存储文件在存储时占用的存储空间较小。
可选的,客户端通过哈希算法对第二待存储文件进行处理包括:
客户端通过哈希算法对第二待存储文件的文件名进行处理,或者客户端提取第二待存储文件的文件标识,通过哈希算法对第二待存储文件的文件标识进行处理。哈希算法是固定的,对每个待存储文件进行哈希后得到一个哈希值,多个待存储文件的哈希值可以相同。
309、当第二待存储文件的哈希值与第一待存储文件的哈希值相同时,客户端将第二待存储文件存储在第一合并文件中。
可选的,客户端将第二待存储文件存储在第一合并文件中包括:
根据第二待存储文件的哈希值在对象存储设备中查找第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小。
根据第一待存储文件在第一合并文件中存储的起始地址和第一待存储文件的大小得到第一待存储文件在第一合并文件中存储的末尾地址,将第一待存储文件在第一合并文件中存储的末尾地址的下一个地址作为第二待存储文件在第一合并文件中存储的起始地址。
从第二待存储文件在第一合并文件中存储的起始地址开始按照地址递增的顺序将第二待存储文件存储在第一合并文件中。
其中,按照递增的顺序将第二待存储文件存储在第一合并文件中,可以避免第二待存储文件中的数据随机存储在第一合并文件中,这样在后续访问第二待存储文件时,根据第二待存储文件在第一合并文件中的起始地址和第二待存储文件的大小就可以获得第二待存储文件。
参见图4,图4为本发明的另一个实施例提供的另一种文件存储方法的流程图。其中,如图4所示,本发明的另一个实施例提供的另一种文件存储方法可以包括:
401、客户端获取第一待存储文件的大小。
402、当第一待存储文件的大小比存储阈值小时,客户端通过哈希算法对第一待存储文件进行处理以得到第一待存储文件的哈希值。
可选的,存储阈值由对象存储系统配置,例如存储阈值可以是4kb、8kb或者16kb,当第一待存储文件的大小比存储阈值小时,说明第一待存储文件在存储时占用的存储空间较小。
可选的,客户端通过哈希算法对第一待存储文件进行处理包括:
客户端通过哈希算法对第一待存储文件的文件名进行处理,或者客户端提取第一待存储文件的文件标识,通过哈希算法对第一待存储文件的文件标识进行处理。哈希算法是固定的,对每个待存储文件进行哈希后得到一个哈希值,多个待存储文件的哈希值可以相同。
403、客户端在对象存储设备中没有查找到文件名与第一待存储文件的哈希值相同的第一合并文件。
其中,对象存储设备中存储了多个对象,对象是数据和数据属性集的综合体,其中,数据属性集包括数据分布和服务质量等,对象存储设备使用对象对保存的数据进行管理。
可选的,第一合并文件的大小由对象存储系统配置,第一合并文件的大小可以是4MB、8MB或者16MB,第一合并文件占用的存储空间较大,由于底层数据盘对占用内存较大的文件操作时性能更好,所以对象存储系统对第一合并文件中的数据进行操作时性能较好。
404、客户端向对象存储设备发送增加第三合并文件请求。
其中,该增加第三合并文件请求携带第一待存储文件的哈希值,该增加第三合并文件请求用于指示对象存储设备增加第三合并文件,第三合并文件的文件名与第一待存储文件的哈希值相同。
405、客户端接收对象存储设备发送的增加第三合并文件请求响应。
其中,该增加第三合并文件请求响应携带第三合并文件的存储地址。
406、客户端从第三合并文件的存储地址开始按照地址递增的顺序将第一待存储文件存储在第三合并文件中。
其中,按照递增的顺序将第一待存储文件存储在第三合并文件中,可以避免第一待存储文件中的数据随机存储在第三合并文件中,这样在后续访问第一待存储文件时,根据第一待存储文件在第三合并文件中的起始地址和第一待存储文件的大小就可以获得第一待存储文件。
参见图8,图8为本发明的另一个实施例提供的一种文件存储装置的示意图。其中,如图8所示,本发明的另一个实施例提供的一种文件存储装置可以包括:
第一获取模块801,用于获取第一待存储文件的大小。
处理模块802,用于当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值。
查找模块803,用于在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件。
第二获取模块804,用于若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址。
存储模块805,用于根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
其中,存储模块具体用于:
根据所述第一合并文件的存储地址访问所述第一合并文件。
从所述第一合并文件的存储地址开始按照地址递增的顺序查询所述第一合并文件的存储空间。
当查询到所述第一合并文件中未被占用的存储空间时,将所述未被占用的存储空间的起始地址作为所述第一待存储文件在所述第一合并文件中存储的起始地址。
从所述第一待存储文件在所述第一合并文件中存储的起始地址开始按照地址递增的顺序将所述第一待存储文件存储在所述第一合并文件中。
可选的,存储模块还用于:
将所述第一待存储文件的哈希值、所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小存储在所述对象存储设备中,将所述第一待存储文件的哈希值设为所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小的索引信息。
本发明文件存储装置的具体实施例与上述文件存储方法的各实施例基本相同,在此不做赘述。
参见图9,图9为本发明的实施例涉及的硬件运行环境的电子设备结构示意图。
本发明实施例文件存储的电子设备可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备、可穿戴设备或其他类型的客户端。
其中,如图9所示,本发明的实施例涉及的硬件运行环境的电子设备可以包括:
处理器901,例如CPU。
存储器902,可选的,存储器可以为高速RAM存储器,也可以是稳定的存储器,例如磁盘存储器。
通信接口903,用于实现处理器901和存储器902之间的连接通信。
可选的,本发明实施例文件存储的电子设备还可以包括用户接口、网络接口、摄像头、传感器、WiFi模块等等。用户接口可以包括显示屏、输入单元比如键盘,可选用户接口还可以包括标准的有线接口和无线接口。网络接口可选的可以包括标准的有线接口和无线接口(如WiFi接口)。
本领域技术人员可以理解,图9中示出的文件存储电子设备的结构并不构成对文件存储电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图9所示,存储器902中可以包括操作系统、网络通信模块以及文件存储的程序。操作系统是管理和控制文件存储的电子设备硬件和软件资源的程序,支持文件存储的程序以及其他软件或程序的运行。网络通信模块用于实现存储器902内部各组件之间的通信,以及与文件存储的电子设备中其他硬件和软件之间通信。
在图9所示的文件存储的电子设备中,处理器901用于执行存储器902中存储的文件存储的程序,实现以下步骤:
获取第一待存储文件的大小。
当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值。
在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件。
若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址。
根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
进一步地,根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中的步骤之前,处理器901用于执行存储器902中存储的文件存储的程序,实现以下步骤:
向所述对象存储设备发送身份验证请求,其中,所述身份验证请求携带客户端的标识信息,所述身份验证请求用于指示所述对象存储设备对所述客户端的标识信息进行验证。
进一步地,根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中的步骤中,处理器901用于执行存储器902中存储的文件存储的程序,实现以下步骤:
根据所述第一合并文件的存储地址访问所述第一合并文件。
从所述第一合并文件的存储地址开始按照地址递增的顺序查询所述第一合并文件的存储空间。
当查询到所述第一合并文件中未被占用的存储空间时,将所述未被占用的存储空间的起始地址作为所述第一待存储文件在所述第一合并文件中存储的起始地址。
从所述第一待存储文件在所述第一合并文件中存储的起始地址开始按照地址递增的顺序将所述第一待存储文件存储在所述第一合并文件中。
进一步地,处理器901还用于执行存储器902中存储的文件存储的程序,实现以下步骤:
将所述第一待存储文件的哈希值、所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小存储在所述对象存储设备中。
将所述第一待存储文件的哈希值设为所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小的索引信息。
进一步地,处理器901还用于执行存储器902中存储的文件存储的程序,实现以下步骤:
获取第二待存储文件的大小。
当所述第二待存储文件的大小比所述存储阈值小时,通过哈希算法对所述第二待存储文件进行处理以得到所述第二待存储文件的哈希值。
当所述第二待存储文件的哈希值与所述第一待存储文件的哈希值相同时,将所述第二待存储文件存储在所述第一合并文件中。
当所述第二待存储文件的哈希值与所述第一待存储文件的哈希值不同时,向所述对象存储设备发送增加第二合并文件请求,其中,所述增加第二合并文件请求携带所述第二待存储文件的哈希值,所述增加第二合并文件请求用于指示所述对象存储设备增加第二合并文件,所述第二合并文件的文件名与所述第二待存储文件的哈希值相同。
接收所述对象存储设备发送的增加第二合并文件请求响应,其中,所述增加第二合并文件请求响应携带所述第二合并文件的存储地址。
从所述第二合并文件的存储地址开始按照地址递增的顺序将所述第二待存储文件存储在所述第二合并文件中。
进一步地,将所述第二待存储文件存储在所述第一合并文件中的步骤中,处理器901用于执行存储器902中存储的文件存储的程序,实现以下步骤:
根据所述第二待存储文件的哈希值在所述对象存储设备中查找所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小。
根据所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小得到所述第一待存储文件在所述第一合并文件中存储的末尾地址。
将所述第一待存储文件在所述第一合并文件中存储的末尾地址的下一个地址作为所述第二待存储文件在所述第一合并文件中存储的起始地址。
从所述第二待存储文件在所述第一合并文件中存储的起始地址开始按照地址递增的顺序将所述第二待存储文件存储在所述第一合并文件中。
进一步地,处理器901还用于执行存储器902中存储的文件存储的程序,实现以下步骤:
若所述对象存储设备中不存在所述第一合并文件,则向所述对象存储设备发送增加第三合并文件请求,其中,所述增加第三合并文件请求携带所述第一待存储文件的哈希值,所述增加第三合并文件请求用于指示所述对象存储设备增加第三合并文件,所述第三合并文件的文件名与所述第一待存储文件的哈希值相同。
接收所述对象存储设备发送的增加第三合并文件请求响应,其中,所述增加第三合并文件请求响应携带所述第三合并文件的存储地址。
从所述第三合并文件的存储地址开始按照地址递增的顺序将所述第一待存储文件存储在所述第三合并文件中。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种文件存储的方法,其特征在于,包括:
获取第一待存储文件的大小;
当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值;
在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件;
若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址;
根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
2.根据权利要求1所述的方法,其特征在于,根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中之前包括:
向所述对象存储设备发送身份验证请求,其中,所述身份验证请求携带客户端的标识信息,所述身份验证请求用于指示所述对象存储设备对所述客户端的标识信息进行验证。
3.根据权利要求2所述的方法,其特征在于,根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中包括:
根据所述第一合并文件的存储地址访问所述第一合并文件;
从所述第一合并文件的存储地址开始按照地址递增的顺序查询所述第一合并文件的存储空间;
当查询到所述第一合并文件中未被占用的存储空间时,将所述未被占用的存储空间的起始地址作为所述第一待存储文件在所述第一合并文件中存储的起始地址;
从所述第一待存储文件在所述第一合并文件中存储的起始地址开始按照地址递增的顺序将所述第一待存储文件存储在所述第一合并文件中。
4.根据权利要求3所述的方法,其特征在于,还包括:
将所述第一待存储文件的哈希值存储在所述对象存储设备中;
将所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小存储在所述对象存储设备中;
将所述第一待存储文件的哈希值设为所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小的索引信息。
5.根据权利要求4所述的方法,其特征在于,还包括:
获取第二待存储文件的大小;
当所述第二待存储文件的大小比所述存储阈值小时,通过哈希算法对所述第二待存储文件进行处理以得到所述第二待存储文件的哈希值;
当所述第二待存储文件的哈希值与所述第一待存储文件的哈希值相同时,将所述第二待存储文件存储在所述第一合并文件中;
当所述第二待存储文件的哈希值与所述第一待存储文件的哈希值不同时,向所述对象存储设备发送增加第二合并文件请求,其中,所述增加第二合并文件请求携带所述第二待存储文件的哈希值,所述增加第二合并文件请求用于指示所述对象存储设备增加第二合并文件,所述第二合并文件的文件名与所述第二待存储文件的哈希值相同;
接收所述对象存储设备发送的增加第二合并文件请求响应,其中,所述增加第二合并文件请求响应携带所述第二合并文件的存储地址;
从所述第二合并文件的存储地址开始按照地址递增的顺序将所述第二待存储文件存储在所述第二合并文件中。
6.根据权利要求5所述的方法,其特征在于,所述将所述第二待存储文件存储在所述第一合并文件中包括:
根据所述第二待存储文件的哈希值在所述对象存储设备中查找所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小;
根据所述第一待存储文件在所述第一合并文件中存储的起始地址和所述第一待存储文件的大小得到所述第一待存储文件在所述第一合并文件中存储的末尾地址;
将所述第一待存储文件在所述第一合并文件中存储的末尾地址的下一个地址作为所述第二待存储文件在所述第一合并文件中存储的起始地址;
从所述第二待存储文件在所述第一合并文件中存储的起始地址开始按照地址递增的顺序将所述第二待存储文件存储在所述第一合并文件中。
7.根据权利要求1所述的方法,其特征在于,还包括:
若所述对象存储设备中不存在所述第一合并文件,则向所述对象存储设备发送增加第三合并文件请求,其中,所述增加第三合并文件请求携带所述第一待存储文件的哈希值,所述增加第三合并文件请求用于指示所述对象存储设备增加第三合并文件,所述第三合并文件的文件名与所述第一待存储文件的哈希值相同;
接收所述对象存储设备发送的增加第三合并文件请求响应,其中,所述增加第三合并文件请求响应携带所述第三合并文件的存储地址;
从所述第三合并文件的存储地址开始按照地址递增的顺序将所述第一待存储文件存储在所述第三合并文件中。
8.一种文件存储的装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一待存储文件的大小;
处理模块,用于当所述第一待存储文件的大小比存储阈值小时,通过哈希算法对所述第一待存储文件进行处理以得到所述第一待存储文件的哈希值;
查找模块,用于在对象存储设备中查找是否存在文件名与所述第一待存储文件的哈希值相同的第一合并文件;
第二获取模块,用于若所述对象存储设备中存在所述第一合并文件,则获取所述第一合并文件的存储地址;
存储模块,用于根据所述第一合并文件的存储地址将所述第一待存储文件存储在所述第一合并文件中。
9.一种文件存储的电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行权利要求1至7任一项方法中的步骤的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被所述处理器执行,以实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007687.4A CN109885535A (zh) | 2019-01-04 | 2019-01-04 | 一种文件存储的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007687.4A CN109885535A (zh) | 2019-01-04 | 2019-01-04 | 一种文件存储的方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109885535A true CN109885535A (zh) | 2019-06-14 |
Family
ID=66925547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007687.4A Pending CN109885535A (zh) | 2019-01-04 | 2019-01-04 | 一种文件存储的方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885535A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026720A (zh) * | 2019-12-20 | 2020-04-17 | 深信服科技股份有限公司 | 一种文件处理方法、系统及相关设备 |
CN113342813A (zh) * | 2021-06-09 | 2021-09-03 | 南京冰鉴信息科技有限公司 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
CN113609076A (zh) * | 2021-08-04 | 2021-11-05 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法和文件读取方法 |
CN114064572A (zh) * | 2021-11-12 | 2022-02-18 | 苏州慧工云信息科技有限公司 | 一种基于哈希算法的对象存储方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069048A (zh) * | 2015-07-23 | 2015-11-18 | 东方网力科技股份有限公司 | 一种小文件存储方法、查询方法和装置 |
US20160170838A1 (en) * | 2014-12-12 | 2016-06-16 | Invensys Systems, Inc. | Event data merge system in an event historian |
US20170270117A1 (en) * | 2016-03-18 | 2017-09-21 | EMC IP Holding Company LLC | Converging of data management and data analysis |
CN107357921A (zh) * | 2017-07-21 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种小文件存储定位方法及系统 |
-
2019
- 2019-01-04 CN CN201910007687.4A patent/CN109885535A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160170838A1 (en) * | 2014-12-12 | 2016-06-16 | Invensys Systems, Inc. | Event data merge system in an event historian |
CN105069048A (zh) * | 2015-07-23 | 2015-11-18 | 东方网力科技股份有限公司 | 一种小文件存储方法、查询方法和装置 |
US20170270117A1 (en) * | 2016-03-18 | 2017-09-21 | EMC IP Holding Company LLC | Converging of data management and data analysis |
CN107357921A (zh) * | 2017-07-21 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种小文件存储定位方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026720A (zh) * | 2019-12-20 | 2020-04-17 | 深信服科技股份有限公司 | 一种文件处理方法、系统及相关设备 |
CN113342813A (zh) * | 2021-06-09 | 2021-09-03 | 南京冰鉴信息科技有限公司 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
CN113342813B (zh) * | 2021-06-09 | 2024-01-26 | 南京冰鉴信息科技有限公司 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
CN113609076A (zh) * | 2021-08-04 | 2021-11-05 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法和文件读取方法 |
CN114064572A (zh) * | 2021-11-12 | 2022-02-18 | 苏州慧工云信息科技有限公司 | 一种基于哈希算法的对象存储方法及系统 |
CN114064572B (zh) * | 2021-11-12 | 2024-03-19 | 苏州慧工云信息科技有限公司 | 一种基于哈希算法的对象存储方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885535A (zh) | 一种文件存储的方法及相关装置 | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习系统 | |
US8977662B1 (en) | Storing data objects from a flat namespace in a hierarchical directory structured file system | |
US20160188723A1 (en) | Cloud website recommendation method and system based on terminal access statistics, and related device | |
CN104424199A (zh) | 搜索方法和装置 | |
US9020994B1 (en) | Client-based migrating of data from content-addressed storage to file-based storage | |
CN112099800B (zh) | 代码数据的处理方法、装置和服务器 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN105138312A (zh) | 一种表格生成方法及装置 | |
CN103685400B (zh) | 一种信息处理方法、服务器及电子设备 | |
CN110134496A (zh) | 容器监控方法、装置、设备及计算机可读存储介质 | |
CN107077345A (zh) | 用于在当前应用中插入内容的个性化上下文菜单 | |
CN110019048A (zh) | 基于MongoDB的文件处理方法、装置、系统及服务器 | |
CN103780676A (zh) | 一种文件传输方法、设备和系统 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
Zhang et al. | In‐memory staging and data‐centric task placement for coupled scientific simulation workflows | |
CN109947729A (zh) | 一种实时数据分析方法及装置 | |
CN108090186A (zh) | 一种大数据平台上的电力数据去重方法 | |
CN110352410A (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
Nguyen et al. | An index scheme for similarity search on cloud computing using mapreduce over docker container | |
Yan et al. | Hmfs: efficient support of small files processing over HDFS | |
CN109324955A (zh) | 一种具有智能推荐功能的it运维系统界面生成方法 | |
CN110020297A (zh) | 一种网页内容的加载方法、装置及系统 | |
Nguyen et al. | An efficient similar image search framework for large-scale data on cloud | |
CN104281486B (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 |