CN109597903A - 图像文件处理装置和方法、文件存储系统及存储介质 - Google Patents
图像文件处理装置和方法、文件存储系统及存储介质 Download PDFInfo
- Publication number
- CN109597903A CN109597903A CN201811393463.3A CN201811393463A CN109597903A CN 109597903 A CN109597903 A CN 109597903A CN 201811393463 A CN201811393463 A CN 201811393463A CN 109597903 A CN109597903 A CN 109597903A
- Authority
- CN
- China
- Prior art keywords
- data block
- file
- data
- image file
- unit
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例公开了一种图像文件处理装置和方法、文件存储系统及存储介质,提高了对批量小图像文件的读写性能。装置包括:命名单元用于接收待存储的多个图像文件;数据处理单元用于对多个图像文件进行聚合,获得至少一个数据块;数据处理单元还用于以数据块为存储单元将至少一个数据块存储至存储设备中;数据处理单元还用于基于多个图像文件中每个图像文件所属的数据块以及命名单元确定的多个图像文件的对象标识和至少一个数据块的块标识,确定多个图像文件的元数据;元数据单元用于存储多个图像文件的元数据。
Description
技术领域
本申请实施例涉及存储处理技术领域,尤其涉及一种图像文件处理装置和方法、文件存储系统及存储介质。
背景技术
随着存储技术的发展,分布式存储装置得了广泛的应用。例如,在人工神经网络算法中,需要借助大量数据进行模型的训练,即算法的成熟离不开大数据的支持。但是,已有的分布式存储装置,在面对大量小文件时,写入性能非常差,使得小文件写入比较费时。同时,在不使用高速介质做缓存的情况下,大量小文件的读取性能也比较差。
发明内容
本申请实施例提供一种对图像文件进行批量处理的技术方案。
第一方面,本申请实施例提供一种图像文件处理装置,所述图像文件处理装置分别与客户端设备与存储设备通信连接,所述图像文件处理装置包括:命名单元、元数据单元和数据处理单元;所述命名单元,用于接收所述客户端设备发送的待存储的多个图像文件,并确定所述多个图像文件中每个图像文件的对象标识;所述数据处理单元,用于对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;所述命名单元,还用于确定所述数据处理单元得到的所述至少一个数据块的块标识;所述数据处理单元,还用于以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中;所述数据处理单元,还用于基于所述多个图像文件中每个图像文件所属的数据块以及所述命名单元确定的所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;所述元数据单元,用于存储所述多个图像文件的元数据。
在第一方面的一种可能的实现方式中,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在第一方面的另一种可能的实现方式中,所述装置还包括随机处理单元,用于对所述多个图像文件进行随机化排列;所述数据处理单元,用于对所述随机处理单元得到的随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
在第一方面的另一种可能的实现方式中,所述多个图像文件属于至少一个训练数据集;所述数据处理单元,用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在第一方面的另一种可能的实现方式中,所述装置还包括:收发单元,用于接收客户端设备发送的读请求,所述读请求中携带待读取文件的数量;所述数据处理单元,还用于根据所述待读取文件的数量,确定待读取数据块的目标数量P,并以数据块为读取单元,读取存储的所述P个数据块;所述收发单元,还用于向所述客户端设备发送所述数据处理单元读取的所述P个数据块。
在第一方面的另一种可能的实现方式中,所述数据处理单元,用于随机读取存储的所述P个数据块。
在第一方面的另一种可能的实现方式中,所述数据处理单元,用于从所述元数据单元中随机获取P个元数据,并根据所述P个元数据读取存储的所述P个数据块。
在第一方面的另一种可能的实现方式中,所述装置还包括:缓存单元,用于缓存多个数据块;所述数据处理单元,用于从所述缓存单元中读取存储的所述P个数据块。
在第一方面的另一种可能的实现方式中,所述缓存单元,还用于在所述数据处理单元从所述缓存单元中读取存储的所述P个数据块之前,从所述存储设备中读取多个数据块,并存储读取的所述多个数据块。
在第一方面的另一种可能的实现方式中,所述缓存单元,还用于从所述缓存单元中移除所述数据处理单元读取到的所述P个数据块;和/或
所述缓存单元,还用于以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块。
在第一方面的另一种可能的实现方式中,所述缓存单元,用于将所述数据处理单元读取到的所述P个数据块标记为删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
在第一方面的另一种可能的实现方式中,所述元数据单元包括多个元数据分组,每个元数据分组包括至少一个节点;所述数据处理单元,用于:
确定所述图像文件的元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;将所述图像文件的元数据的哈希值添加到所述目标元数据分组的哈希表中。
在第一方面的另一种可能的实现方式中,所述数据处理单元用于:对所述哈希值进行校验处理,得到所述哈希值的校验值;使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
在第一方面的另一种可能的实现方式中,所述对象标识是通过对时间戳、自增序列和对象名进行编码处理生成的。
在第一方面的另一种可能的实现方式中,所述对象标识包括数据中心标识和对象编码,其中,所述对象编码是通过对时间戳、自增序列和对象名进行编码处理生成的。
在第一方面的另一种可能的实现方式中,所述对象标识的长度为16字节。
在第一方面的另一种可能的实现方式中,所述数据处理单元,用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
在第一方面的另一种可能的实现方式中,所述命名单元包括至少一个代理节点;所述命名服务器用于将接收到所述多个图像文件分发给每个代理节点,以使每个代理节点确定分发到的图像文件的标识;或者,所述命名服务器用于将接收到所述多个图像文件分发给每个代理节点,以使每个代理节点确定分发到的图像文件的标识。
在第一方面的另一种可能的实现方式中,所述图像文件用于训练神经网络。
第二方面,本申请实施例提供一种图像文件处理方法,包括:接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量;根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件;以数据块为读取单元,读取存储的所述P个数据块;向所述客户端设备发送读取的所述P个数据块。
在第二方面的一种可能的实现方式中,所述读取存储的所述P个数据块,包括:随机读取存储的所述P个数据块。
在第二方面的另一种可能的实现方式中,所述随机读取存储的所述P个数据块,包括:从元数据单元中随机获取所述P个数据块的块标识;根据所述P个数据块的块标识,读取所述P个数据块。
在第二方面的另一种可能的实现方式中,所述读取存储的所述P个数据块,包括:从缓存单元中读取存储的所述P个数据块,其中,所述缓存单元,用于缓存多个数据块。
在第二方面的另一种可能的实现方式中,所述从缓存单元中读取存储的所述P个数据块之前,所述方法还包括:从存储设备中读取多个数据块,并存储读取的所述多个数据块。
在第二方面的另一种可能的实现方式中,所述从缓存单元中读取存储的所述P个数据块之后,所述方法还包括:从所述缓存单元中移除已读取的所述P个数据块;和/或以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块至所述缓存单元中。
在第二方面的另一种可能的实现方式中,所述从所述缓存单元中移除读取过的所述P个数据块,包括:将所述已读取的所述P个数据块标记为被删除;在间隔第一时间段后移除标记为删除的所述P个数据块。
在第二方面的另一种可能的实现方式中,所述图像文件用于训练神经网络。
第三方面,本申请实施例提供一种图像文件处理装置,包括:接收模块,用于接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量;确定模块,用于根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件;读取模块,用于以数据块为读取单元,读取存储的所述P个数据块;发送模块,用于向所述客户端设备发送读取的所述P个数据块。
在第三方面的一种可能的实现方式中,所述读取存储的所述P个数据块,包括:随机读取存储的所述P个数据块。
在第三方面的另一种可能的实现方式中,所述读取模块包括获取单元和读取单元:所述获取单元,用于从元数据单元中随机获取所述P个数据块的块标识;所述读取单元,用于根据所述P个数据块的块标识,读取所述P个数据块。
在第三方面的另一种可能的实现方式中,所述读取模块,用于从缓存单元中读取存储的所述P个数据块,其中,所述缓存单元,用于缓存多个数据块。
在第三方面的另一种可能的实现方式中,所述读取模块在从缓存单元中读取存储的所述P个数据块之前,还用于从存储设备中读取多个数据块,并存储读取的所述多个数据块。
在第三方面的另一种可能的实现方式中,所述装置还包括:所述移除模块,用于在所述读取模块从缓存单元中读取存储的所述P个数据块之后,从所述缓存单元中移除已读取的所述P个数据块;和/或所述读取模块,还用于以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块至所述缓存单元中。
在第三方面的另一种可能的实现方式中,所述移除模块,用于将所述已读取的所述P个数据块标记为被删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
在第三方面的另一种可能的实现方式中,所述图像文件用于训练神经网络。
第四方面,本申请实施例提供一种图像文件处理方法,包括:接收来自客户端设备的待存储的多个图像文件;确定所述多个图像文件中每个图像文件的对象标识;对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;以数据块为存储单元,存储所述至少一个数据块。
在第四方面的一种可能的实现方式中,所述方法还包括:确定所述至少一个数据块的块标识;基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;存储所述多个图像文件的元数据。
在第四方面的另一种可能的实现方式中,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在第四方面的另一种可能的实现方式中,对所述多个图像文件进行聚合,获得至少一个数据块,包括:对所述多个图像文件进行随机化排列;对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
在第四方面的另一种可能的实现方式中,所述多个图像文件属于至少一个训练数据集,所述方法还包括:将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在第四方面的另一种可能的实现方式中,存储所述多个图像文件的元数据,包括:确定所述元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;将所述元数据的哈希值添加到所述目标元数据分组的哈希表中。
在第四方面的另一种可能的实现方式中,所述确定所述哈希值所属的目标哈希分区,包括:对所述哈希值进行校验处理,得到所述哈希值的校验值;使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
在第四方面的另一种可能的实现方式中,对所述多个图像文件进行聚合,获得至少一个数据块,包括:依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
在第四方面的另一种可能的实现方式中,所述图像文件用于训练神经网络。
第五方面,本申请实施例提供一种图像文件处理装置,包括:接收模块,用于接收来自客户端设备的待存储的多个图像文件;确定模块,用于确定所述多个图像文件中每个图像文件的对象标识;聚合模块,用于对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;存储模块,用于以数据块为存储单元,存储所述至少一个数据块。
在第五方面的一种可能的实现方式中,所述确定模块,还用于确定所述至少一个数据块的块标识;并基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;所述存储模块,还用于存储所述多个图像文件的元数据。
在第五方面的另一种可能的实现方式中,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在第五方面的另一种可能的实现方式中,所述聚合模块包括排序单元和聚合单元,包括:所述排序单元,用于对所述多个图像文件进行随机化排列;所述聚合单元,用于对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
在第五方面的另一种可能的实现方式中,所述多个图像文件属于至少一个训练数据集,所述存储模块,还用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在第五方面的另一种可能的实现方式中,存储模块包括确定单元和存储单元:所述确定单元,用于确定所述元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;所述存储单元,用于将所述元数据的哈希值添加到所述目标元数据分组的哈希表中。
在第五方面的另一种可能的实现方式中,所述确定单元,具体用于对所述哈希值进行校验处理,得到所述哈希值的校验值;使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
在第五方面的另一种可能的实现方式中,所述聚合模块,还用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
在第五方面的另一种可能的实现方式中,所述图像文件用于训练神经网络。
第六方面,本申请实施例提供一种图像文件处理装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,以实现如第二方面和/或第四方面任一项所述的图像文件处理方法。
第七方面,本申请实施例提供一种文件存储系统,包括:图像文件处理装置客户端设备和存储设备,所述图像文件处理装置分别与所述客户端设备和所述存储设备通信连接;所述图像文件处理装置,用于接收所述客户端设备发送的待存储的多个图像文件,并对所述多个图像文件进行聚合,获得至少一个数据块,以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中,并基于所述多个图像文件中每个图像文件所属的数据块,确定所述多个图像文件的元数据,并存储所述多个图像文件的元数据;其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件。
在第七方面的一种可能的实现方式中,所述图像文件处理装置,用于确定多个图像文件中每个图像文件的对象标识,以及确定所述至少一个数据块的块标识,并基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据。
在第七方面的另一种可能的实现方式中,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,还用于对所述多个图像文件进行随机化排列,对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
在第七方面的另一种可能的实现方式中,所述多个图像文件属于至少一个训练数据集;所述图像文件处理装置,还用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,还用于接收客户端设备发送的读请求,所述读请求中携带待读取文件的数量;根据所述待读取文件的数量,确定待读取数据块的目标数量P,并以数据块为读取单元,读取存储的所述P个数据块,并将读取的所述P个数据块发送给所述客户端设备。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于随机读取存储的所述P个数据块。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于随机获取P个元数据,并根据所述P个元数据读取存储的所述P个数据块。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于从所述存储设备中读取多个数据块,并存储读取的所述多个数据块,并从缓存的多个数据块中读取存储的所述P个数据块。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,还用于移除已读取的所述P个数据块,并以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于将已读取的所述P个数据块标记为删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于确定所述图像文件的元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;并将所述图像文件的元数据的哈希值添加到所述目标元数据分组的哈希表中。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于对所述哈希值进行校验处理,得到所述哈希值的校验值,并使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
在第七方面的另一种可能的实现方式中,所述图像文件处理装置,用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
第八方面,本申请实施例提供一种计算机可读存储介质,包括:所述存储介质中存储计算机程序,所述计算机程序在执行时实现第二方面和/或第四方面任一项所述的图像文件处理方法。
本申请实施例提供的图像文件处理装置和方法、文件存储系统及存储介质,其中图像文件处理装置包括命名单元、元数据单元和数据处理单元,命名单元用于接收客户端设备发送的待存储的多个图像文件,并确定多个图像文件中每个图像文件的对象标识;数据处理单元用于对多个图像文件进行聚合,获得至少一个数据块;命名单元还用于确定数据处理单元得到的至少一个数据块的块标识;数据处理单元还用于以数据块为存储单元,将至少一个数据块存储至存储设备中;数据处理单元还用于基于多个图像文件中每个图像文件所属的数据块以及命名单元确定的所述多个图像文件的对象标识和至少一个数据块的块标识,确定多个图像文件的元数据;元数据单元用于存储多个图像文件的元数据。即本申请实施例的图像文件处理装置对客户端设备发送的图像文件聚合成数据块,以数据块为存储单元,将各数据块存储至存储设备中,实现图像文件的快速存储,提高了大量小图像文件的写性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的图像文件处理装置的应用场景图;
图2为本申请实施例提供的图像文件处理装置的结构示意图;
图3为本申请实施例涉及的数据逻辑映射示意图;
图4为本申请实施例涉及的图像文件处理装置的存储机制架构图;
图5为本申请实施例涉及的写请求队列的示意图;
图6为本申请实施例涉及的命名单元的结构示意图;
图7是本申请实施例的元数据的示例图;
图8为本申请实施例提供的图像文件处理装置的结构示意图;
图9所示本申请实施例的随机处理的示意图;
图10本申请实施例涉及的元数据单元的结构示例的示意图;
图11为本申请实施例提供的图像文件处理装置的结构示意图;
图12为本申请实施例提供的图像文件处理装置的结构示意图;
图13为本申请实施例中的缓存数据结构图;
图14为本申请实施例提供的图像文件处理方法的流程图;
图15为本申请实施例提供的图像文件处理装置的结构图;
图16为本申请实施例提供的图像文件处理装置的结构图;
图17为本申请实施例提供的图像文件处理方法的流程图;
图18为本申请实施例提供的图像文件处理方法的流程图;
图19为本申请实施例提供的图像文件处理装置的结构图;
图20为本申请实施例提供的图像文件处理装置的结构图;
图21为本申请实施例提供的图像文件处理装置的结构图;
图22为本申请实施例提供的图像文件处理装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的技术方案适用于对象存储(Object-based Storage,OS)、存储局域网(Storage Area Network,SAN)和网络附件存储(Network Attached Storage,NAS)等对图像文件进行批量存储和读取的场景。
图1为本申请实施例提供的文件存储系统的架构示意图,如图1所示,图像文件处理装置设置在客户端设备与存储设备之间,以数据块的形式存储和读取图像文件,进而降低对存储设备I/O的访问次数,提高了图像文件的读写速度。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的图像文件处理装置的结构示意图。该如图2所示,图像文件处理装置包括:命名单元10、元数据单元20和数据处理单元30。其中,命名单元10,用于接收所述客户端设备发送的待存储的多个图像文件,并确定所述多个图像文件中每个图像文件的对象标识;所述数据处理单元30,用于对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;所述命名单元10,还用于确定所述数据处理单元30得到的所述至少一个数据块的块标识;所述数据处理单元30,还用于以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中;所述数据处理单元30,还用于基于所述多个图像文件中每个图像文件所属的数据块以及所述命名单元10确定的所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;所述元数据单元20,用于存储所述多个图像文件的元数据。
在图像文件的存储(即写)过程中,客户端设备向图像文件处理装置中的命名单元10发送写请求,该写请求中携带有待存储的多个图像文件。该写请求用于指示图像文件处理装置将多个图像文件存储至存储设备中。
命名单元10接收客户端设备发送的写请求,并从该写请求中解析出其携带的多个图像文件,以确定多个图像文件中每个图像文件的对象标识。
接着,命名单元10将接收到的多个图像文件发送给数据处理单元30,数据处理单元30对多个图像文件进行聚合处理,获得至少一个数据块,其中,每个数据块中包括至少两个图像文件。例如,数据处理单元30将3个图像文件聚合为一个数据块,这样可以将多个图像文件聚合,形成至少一个数据块。
可选的,数据处理单元30,用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
可选的,每个数据块中包括的图片文件的数量可以不同。
可选的,每个数据块中包括的图片文件的数量可以相同。此时,当数据块中的图像文件的数量达不到预设值M时,可以填充0。例如,图像文件有1008个,预设值M为10,即将每10个图像文件聚合为一个数据块,这样第101个数据块中包括8个图像文件,此时,可以在第101个数据块中补入两个0,构成101个数据块,进而使得每个数据块中包括10个图像文件。
本申请实施例中,图像文件处理装置将多个图像文件聚合为一个数据块,然后以数据块为单位将图像文件写到底层存储设备中。本申请实施例的底层的存储设备是一个分布式的装置,为了防止数据块发生冲突导致元数据的覆盖或者被删除,需要保证数据块的块标识在全局是唯一的,因此,需要对数据块进行命名,而数据块的命名由命名单元10完成。
即数据处理单元30聚合完数据块后,命名单元10对该数据块进行命名,以确定该数据块的块标识。
例如,数据处理单元30每生成一个数据块,命名单元10确定该数据块的块标识。
可选的,数据块的命名方式可以采用自增序列的方式,即按照时间的顺序进行递增。
可选的,本申请实施例的数据块的块标识长度可以为8个字节(即64bit),满足X86架构的机器字长,不会因为长度不够而导致数据块的块标识不够分配的情况。数据块的块标识如表1所示:
表1
数据块的块标识 |
02987537 |
可选的,本申请实施例针对的是大量图像文件的存储,生成的数据块数量较大,为了减少数据处理单元30与命名单元10的交互次数,则本申请实施例采用批量命名的方式,即命名单元10一次确定多个数据块的块标识。
例如,命名单元10一次生成W个数据块的块标识后,将各数据块的块标识一一分配给各数据块。
例如,数据处理单元30生成一个数据块,命名单元10从W个数据块的块标识中选出一个数据块的块标识分配给该数据块,并从W个数据块的块标识中删除已被选取的数据块的块标识,保证各数据块的块标识各不相同。
可选的,命名单元10还可以根据各数据块的块标识的时序顺序和各所述数据块的聚合时序,将各所述数据块的块标识依次分配给各数据块。
具体的,按照数据块的块标识的时序顺序对数据块的块标识进行排序,获得块标识序列,待生成第一个数据块则从块标识序列中选出第一个块标识作为该第一个数据块的块标识,待生成第二个数据块则从块标识序列中选出第二个块标识作为该第二个数据块的块标识,依次进行,待生成第i个数据块则从块标识序列中选出第i个块标识作为该第i个数据块的块标识,进而实现对各数据块的准确命名。
待命名单元10确定完数据块的块标识后,数据处理单元30以数据块为存储单元,将各数据块存储至存储设备中。
可选的,上述多个图像文件属于至少一个训练数据集,数据处理单元30,用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在深度学习平台的训练过程中,通常使用数据集来进行训练,如图3所示,一个训练数据集中包括多个数据块,一个数据块中包括多个图像文件,本申请实施例将一个训练数据集对应的数据块存储到一个存储桶中,如果没有指定具体的训练数据集,会将数据块存储到公共存储桶中。存储桶可以设置访问权限,用于从逻辑上隔离数据图像文件。
这样在存储时,以数据块为存储单元,将同一个存储桶中的各数据块按预设顺序存储至存储设备中。在后续的读取时,可以根据访问权限,从存储设备中读取某一训练数据集对应的各数据块,便训练数据集的快速读取。
图4为本申请实施例涉及的图像文件处理装置的存储机制架构图,图5为本申请实施例涉及的写请求队列的示意图,如图4和图5所示,图像文件处理装置对数据的存储过程包括:
数据处理单元30,将多个图像文件放入写请求队列中,例如,按照时间的先后顺序将各图像文件放到写请求队列中。例如,如图5所示,将各图像文件分别放入3个写请求队列中,各写请求队列中图像文件为对象obj。
接着,将写请求队列中的图像文件分配到数据块中,例如将写请求队列中的图像文件按照时间的先后顺序分配到各数据块中。例如,如图5所示,将相邻的三个写请求队列中的各存储图像文件聚合至一个数据块中,这样可以保证所有的图像文件最后以数据块为单位在存储设备中存在。
可选的,本申请实施例的数据块大小可以为4M。
可选的,数据处理单元30将上述获得的数据块先存储在存储桶,存储桶是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储桶,存储桶的名称为全局唯一。这里可以选择将数据块分散存储到多个存储桶中,也可以将数据块存储到一个存储桶中,例如,将同一个训练数据集对应的数据块存储在同一个存储桶中。
由于存储桶是逻辑上的概念,因此需要将存储桶中的数据块转换成对象存储装置中的对象。然后以对象为单位,进行一次对象存储设备(OSD)的选择。
可选的,如图4所示,为了保证数据存储安全,则可以将同一个存储桶中的各数据块保存至多个存储设备中,这样当一个存储设备发生故障时,可以从其他的存储设备中读取该数据块。
由上述可知,在图像文件存储的过程中,本申请实施例以数据块为存储单元将各图像文件存储到存储设备中,即存储设备中的各图像文件是以数据块的形式存储的,这样在读图像文件时,也是以数据块为单元进行读取,即实现图像文件的批量读取。
例如在神经网络模型训练过程中,需要读取大量的小图像文件来完成神经网络模型的训练。而已有的存储方法,小图像文件是以图像文件或对象为存储单元进行存储,这样在图像文件的读取过程中,神经网络模型以图像文件或对象单元从存储装置中读取图像文件,这样读取访问次数多,当存储装置存在并行读操作时,则读取速度更缓慢。例如,神经网络模型需要读取1000个图像文件作为训练数据,已有的存储方法,需要读取1000次,即访问存储装置1000次,其读取次数多,读取速度缓慢。
本申请实施例的存储方法,例如各数据块由100个图像文件组成,这样,神经网络模型读取1000个图像文件时,则需要从存储设备中读取10个数据块即可,即神经网络模型对存储设备进行10次读取,即读完1000个图像文件,其读取次数少,读取读数快,进而提高了神经网络模型的训练速度。
数据处理单元30根据上述步骤,将数据块存入存储设备,与此同时,数据处理单元30还基于多个图像文件中每个图像文件所属的数据块以及命名单元10确定的多个图像文件的对象标识和至少一个数据块的块标识,确定多个图像文件的元数据。
接着,数据处理单元30将确定的多个图像文件的元数据发送给元数据单元20,元数据单元20存储所述多个图像文件的元数据。
本申请实施例提供的图像文件处理装置,包括命名单元、元数据单元和数据处理单元,其中命名单元用于接收客户端设备发送的待存储的多个图像文件,并确定多个图像文件中每个图像文件的对象标识;数据处理单元用于对多个图像文件进行聚合,获得至少一个数据块;命名单元还用于确定数据处理单元得到的至少一个数据块的块标识;数据处理单元还用于以数据块为存储单元,将至少一个数据块存储至存储设备中;数据处理单元还用于基于多个图像文件中每个图像文件所属的数据块以及命名单元确定的所述多个图像文件的对象标识和至少一个数据块的块标识,确定多个图像文件的元数据;元数据单元用于存储多个图像文件的元数据。即本申请实施例的图像文件处理装置对客户端设备发送的图像文件聚合成数据块,以数据块为存储单元,将各数据块存储至存储设备中,实现图像文件的快速存储,提高了大量小图像文件的写性能。
在一些实施例中,上述命名单元10还用于对各图像文件进行命名,确定图像文件的对象标识。
在实际应用中,客户端设备写入的图像文件的文件名的长度是不固定的,一般会用字符串来表示。由于图像文件的图像文件名长度不一,存储设备在申请内存时无法明确大小。另外,在进行数据存储和读取时需要进行大量的网络以及磁盘操作,一个统一的标识相当于图像文件在存储设备中的“身份证”。因此,本申请实施例的数据处理单元30在获取各图像文件后,需要对各图像文件进行命名。
在一种示例中,本申请实施例中图像文件的对象标识可以包括四个部分,分别为数据中心标识、时间戳、自增序列和对象名编码。
其中,数据中心标识:是配置值,支持多个数据中心,用于区分图像文件的类型,例如大小为8bit。
时间戳:毫秒数,可以使用556年不会重复,例如大小为44bit。
自增序列:最大值4096,毫秒之内的自增,过了一毫秒会重新置0,对上面的毫秒数的一个补充,例如为大小12bit。
对象名编码:采用常用的哈希编码算法,将对象名编码确定为数值,例如大小为8byte。
其中对象编码为对时间戳、自增序列和对象名进行编码生成的。
例如,命名单元10确定的一个图像文件的对象标识如表2所述:
表2
上述表2中存储图像文件的对象标识较长,图像文件处理装置将表2中的后面三部分编码为一个整体,经过编码操作后的对象标识的长度是固定的,例如16个字节。
目前通常使用哈希编码算法对表2中的后三部分进行编码,但是,哈希编码算法会产生哈希冲突,对于千亿级别甚至更大规模的数据,发生冲突的概率会大大增加。
相比于找到一个完美哈希函数的复杂性,本申请实施例采用多字段编码的方式来对表2中后三部分进行编码,形成如表3所述的图像文件的对象标识。
表3
本申请实施例采用的多字段编码的方式其方式简单,编码速度快。
图6为本申请实施例涉及的命名单元的结构示意图,为了提高命名单元10对图像文件的命名的可靠性,则本申请实施例的命名单元10包括至少一个代理节点。
此时,数据处理单元30用于将接收到所述多个图像文件分发给每个代理节点,以使每个代理节点确定分发到的图像文件的对象标识。
可选的,数据处理单元30还可以用于将所述至少一个数据块分发给每个代理节点,以使每个代理节点确定分发到的数据块的块标识。
可选的,命名单元10还可以采用master-slave的高可用架构,命名单元10包括两个命名服务节点,一个命名服务节点Master的角色,负责平时命名的工作,另一个命名服务节点是Slave的角色,作为Master节点的一个热备,两个节点通过心跳传输保持通信。
此时,本申请实施例的图像文件的元数据可以包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息(Offset)和所述图像文件的数据长度(Length)。图7是本申请实施例的一种元数据的示例图。
本申请实施例中,数据块的块与对象标识(即待存储文件的key值)是一种一对多的映射关系。这样在读图像文件时,根据对象标识和数据块的块标识的映射关系,首先从存储设备中取出数据块的块标识对应的数据块,然后根据图像文件的元数据中的Offset和Length从数据块中读取该图像文件。
图8为本申请实施例提供的图像文件处理装置的结构示意图,在上述实施例的基础上,本申请实施例的图像文件处理装置还包括随机处理单元。随机处理单元40,用于对所述多个图像文件进行随机化排列;数据处理单元30,用于对所述随机处理单元40得到的随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
在深度学习等训练过程中,需要对训练数据进行随机化处理,鉴于此,本申请实施例在图像文件存储之前先进行随机化处理,使得保存的图像文件是随机化处理后的,这样深度学习平台等训练平台读取图像文件后,无需对图像文件进行随机化处理,进而简化了学习平台的训练过程,提高了学习平台的训练速度。
在一种示例中,图9所示一种原地打乱顺序的示意图,如图9所示,其图像文件的对象标识为a-b-c-d-e-f-g-f,每次从未处理的图像文件中随机取出一个图像文件放到队列的尾部,即队列尾部是已经处理过的图像文件,这种方式适合于单个队列的随机化处理。从图9中可以看出,第一次取出的是图像文件e,图像文件e已处理,接着从剩下的图像文件中取出图像文件g放入队列的尾部,接着取出图像文件d,依次进行,最后取出图像文件f,构造了新的对象队列,即图9中最后获得e-g-d-c-a-b-h-f顺序排列的图像文件。
数据处理单元30,用于对所述随机处理单元40得到的随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
例如,如图9所示,随机化排列后的多个图像文件为e-g-d-c-a-b-h-f,假设一个数据块中包括4个图像文件,则数据处理单元30可以将图像文件e-g-d-c聚合至一个数据块中,将图像文件a-b-h-f聚合至另一个数据块中。
即本申请实施例的方法,在存储过程对图像文件进行随机化处理,使得存储至存储设备中的图像文件是随机化处理后的,这样深度学习平台等训练平台读取图像文件后,无需对图像文件进行随机化处理,进而简化了学习平台的训练过程,提高了学习平台的训练速度。
在一些实施例中,图10本申请实施例涉及的元数据单元的结构示意图,为了方便管理元数据,也为了提高用户对元数据地访问效率,本申请实施例的元数据单元20包括多个元数据分组,每个元数据分组包括至少一个节点。
所述数据处理单元30,用于确定所述图像文件的元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;并将所述图像文件的元数据的哈希值添加到所述目标元数据分组的哈希表中。
具体的,如图10所示,假设本申请实施例的元数据单元20包括三个元数据分组,分别为Group_1、Group_2、Group_3,各元数据分组之间采用主备模式,各元数据分组之间采用心跳检测的方式保证节点的健康状态。每个元数据分组包括至少一个节点,在一个节点内采用master-slave(主-备)的模式,当部分masters节点失效或者无法与大多数节点通讯时,为了能够保持元数据单元20的有效性,可以使用slaves节点提供服务,本申请实施例采用三备份的方式来保证元数据的安全。例如Group_1中,master节点因为某些原因发生了宕机,为了保持元数据单元20的可用性,Group_2中的slave节点主动升级为master的角色为系统提供服务。下面分别从数据分配机制和数据一致性等方面详细介绍元数据单元20。
本申请实施例的元数据单元20使用hash zone的分配机制。即元数据单元20分配16384个哈希分区(hash zone),元数据在元数据单元20中以key的方式作为索引,每个group都负责一部分zone,例如,
(a)Group_1负责的zone区间为0~5500;
(b)Group_2负责的zone区间为5501~11000;
(c)Group_3负责的zone区间为11001~16384。
每个zone对应多个哈希值,这样,在将原数据存储在元数据单元20中时,数据处理单元30首先确定图像文件的元数据的哈希值,并确定哈希值所属的目标哈希分区,并确定目标哈希分区对应的目标元数据分组。进而将该图像文件的元数据的哈希值添加到目标元数据分组的哈希表中。
可选的,数据处理单元30确定目标哈希分区的过程可以是,数据处理单元30对图像文件的哈希值进行校验处理(例如,采用CRC16方法进行校验),得到哈希值的校验值;使用该校验值对预设数值(例如16384)取模运算,确定目标哈希分区。
hash zone机制使得集群中增加、删除机器变得十分简单,比如需要添加一个新的Group_4,这时候只需要将Group_1、Group_2、Group_3中的部分zone迁移到Group_4上,避免了所有数据的重新分配。
与此同时,如果想要删除一个Group,只需要将这个Group中的zone迁移到其它Group中,然后将这个Group从集群中删除。因此,从上面的描述中可以看出,hash zone从一个Group迁移到另一个Group,或者增加Group以及删除Group,都不需要中断用户的操作,元数据单元20仍然可以提供正常的服务。
本申请实施例提供的图像文件处理装置,通过将元数据单元设置个元数据分组,每个元数据分组包括至少一个节点,进而使得数据处理单元,用于确定图像文件的元数据的哈希值,并确定哈希值所属的目标哈希分区以及目标哈希分区对应的目标元数据分组,并将图像文件的元数据的哈希值添加到目标元数据分组的哈希表中,进而为了方便管理元数据,也为了提高用户对元数据地访问效率。
图11为本申请实施例提供的图像文件处理装置的结构示意图,在上述图2和/或图8所示实施例的基础上,本申请实施例的图像文件处理装置还包括:收发单元50。
其中,收发单元50,用于接收客户端设备发送的读请求,所述读请求中携带待读取文件的数量;数据处理单元30,还用于根据所述待读取文件的数量,确定待读取数据块的目标数量P,并以数据块为读取单元,读取存储的所述P个数据块;收发单元50,还用于向所述客户端设备发送所述数据处理单元30读取的所述P个数据块。
在训练神经网络等训练中,需要大量的训练数据,因此,本申请实施例的读数据是以数据块为单位进行数据读取,进而提高数据读取的效率。
在读数据时,客户端设备向图像文件处理装置中的收发单元50发送读请求,该读请求中包括待读取文件的数量。数据处理单元30根据待读取文件的数量,确定需要待读取的数据块的目标数量P,例如,待读取文件的数量为1000,存储的数据块中每个数据块包括100个图像文件,这样,数据处理单元30可以确定需要待读取的数据块的目标数量P为10,进而读取存储的10个数据块。接着,收发单元50将数据处理单元30读取的P个数据块发送给客户端设备。
可选的,数据处理单元30,用于随机读取存储的P个数据块。
可选的,数据处理单元30,用于从所述元数据单元20中随机获取P个元数据,并根据所述P个元数据读取存储的所述P个数据块。
具体的,数据处理单元30从元数据单元20中随机获取P个元数据,进而获得P个元数据中每个元数据对应的数据块的块标识,进而获得P个数据块的块标识。接着,读取P个数据块的块标识对应的数据块。
本申请实施例的图像文件处理装置,以数据块为读取单元,可以降低对存储设备的I/O的访问次数,提高读取速度。
图12为本申请实施例提供的图像文件处理装置的结构示意图,在上述图2和/或图8和/或图11所示实施例的基础上,本申请实施例的图像文件处理装置100还包括:缓存单元6。
缓存单元60,用于缓存多个数据块;
数据处理单元30,用于从所述缓存单元60中读取存储的所述P个数据块。
为了提高系统的读取速度,本申请实施例的图像文件处理装置还包括缓存单元60,该缓存单元60中缓存有多个数据块,读数据时,数据处理单元30直接从缓存单元60中取出数据块即可,不用调用文件读接口从底层存储设备中读取数据块。
其中,缓存单元60,还用于在所述数据处理单元30从所述缓存单元60中读取存储的所述P个数据块之前,从所述存储设备中读取多个数据块,并存储读取的所述多个数据块。
具体是,缓存单元60的空间大小可以动态调整,缓存单元60每次从存储设备(例如Ceph)中取出多个数据块,然后将读取的多个数据块保存在缓存单元60中。
当上层客户端发送读请求时,数据处理单元30解析该读请求,获知该读请求携带的待读取文件的数量,数据处理单元30并根据待读取文件的数量,确定待读取的目标数据块的数量P。接着,数据处理单元30从所述缓存单元60中读取存储的P个数据块。
可选的,目标数据块的数量P一般是缓存单元60中存储的数据块数量的十分之一。
一般情况下,在完全随机的情况下,这批已读取的P个数据块再次被访问的概率和其它未被访问的数据块一样,因此缓存单元60从缓存单元60中移除数据处理单元30读取到的P个数据块。
例如,缓存单元60将已读取的P个数据块标记为删除,将其放入淘汰队列中,执行文件淘汰。即在间隔第一时间段后移除标记为删除的所述P个数据块。
由上述可知,缓存单元60中移除P个已读取数据块后,缓存单元60中的数据块数量不足。因此,缓存单元60需要通过数据块预取的方式从底层存储设备中将数据块取出,具体是,以数据块为读取单元,从所述存储设备中重新读取P个数据块保存在缓存单元60中。
图13为本申请实施例涉及的缓存数据结构图,如图13所示,缓存数据结构图包括缓存单元、读取队列、淘汰队列和预取队列。读取队列将干净数据块从缓存单元中取出,淘汰队列将脏数据(即已读取的数据块)从缓存单元中移除,预取队列将干净数据块从底层存储设备中取出放入缓存单元。
本申请实施例提供的图像文件处理装置,通过设置缓存单元,进一步提高了文件的读取速度。
图14为本申请实施例提供的图像文件处理方法的流程图。在上述所述图像文件处理装置实施例的基础上,该如图14所示,本申请实施例的方法可以包括:
S401、接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量。
S402、根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件。
S403、以数据块为读取单元,读取存储的所述P个数据块。
S404、向所述客户端设备发送读取的所述P个数据块。
本申请实施例的执行主体为上述图像文件处理装置中的数据处理单元。
可选的,本申请实施例的图像文件用于训练神经网络。
具体的,数据处理单元接收到客户端设备发送读请求,该读请求中包括待读取文件的数量。数据处理单元根据待读取文件的数量,确定需要待读取的数据块的目标数量P,例如,待读取文件的数量为1000,存储的数据块中每个数据块包括100个图像文件,这样,数据处理单元可以确定需要待读取的数据块的目标数量P为10,进而读取存储的10个数据块。接着,数据处理单元将读取的P个数据块发送给客户端设备。
可选的,数据处理单元随机读取存储的P个数据块。
可选的,数据处理单元从所述元数据单元中随机获取P个元数据,并根据所述P个元数据读取存储的所述P个数据块。
例如,数据处理单元从元数据单元中随机获取P个元数据,进而获得P个元数据中每个元数据对应的数据块的块标识,进而获得P个数据块的块标识。接着,读取存储的P个数据块的块标识对应的数据块。
可选的,数据处理单元还可以从缓存单元中读取存储的所述P个数据块,其中,所述缓存单元,用于缓存多个数据块。
可选的,数据处理单元从缓存单元中读取存储的所述P个数据块之前,从存储设备中读取多个数据块,并存储读取的所述多个数据块。
可选的,数据处理单元从缓存单元中读取存储的所述P个数据块之后,从所述缓存单元中移除已读取的所述P个数据块;和/或以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块至所述缓存单元中。
可选的,数据处理单元将所述已读取的所述P个数据块标记为被删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
本申请实施例提供的图像文件处理方法,以数据块为读取单元,可以降低对存储设备的I/O的访问次数,提高读取速度,其读数据的实现原理和技术效果与上述图像文件处理装置类似,此处不再赘述。
图15为本申请实施例提供的图像文件处理装置的结构图,如图15所示,所述图像文件处理装置100包括:
接收模块110,用于接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量;
确定模块120,用于根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件;
读取模块130,用于以数据块为读取单元,读取存储的所述P个数据块。
发送模块140,用于向所述客户端设备发送读取的所述P个数据块。
在一些实现方式中,本申请实施例的图像文件处理装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,读取模块130,具有用于随机读取存储的所述P个数据块。
可选的,读取模块130,用于从元数据单元中随机获取所述P个数据块的块标识,并根据所述P个数据块的块标识,读取所述P个数据块。
可选的,读取模块130,用于从缓存单元中读取存储的所述P个数据块,其中,所述缓存单元,用于缓存多个数据块。
可选的,读取模块130在从缓存单元中读取存储的所述P个数据块之前,还用于从存储设备中读取多个数据块,并存储读取的所述多个数据块。
在一些实现方式中,本申请实施例的图像文件处理装置,可以用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图16为本申请实施例提供的图像文件处理装置的结构图,在上述图15所示实施例的基础上,如图16所示,本申请实施例的图像文件处理装置100还包括移除模块150:
所述移除模块150,用于在所述读取模块从缓存单元中读取存储的所述P个数据块之后,从所述缓存单元中移除已读取的所述P个数据块;和/或
所述读取模块130,还用于以数据块为读取单元,从所述存储设备中读取P个数据块并存储所述P个数据块至所述缓存单元中。
可选的,所述移除模块150,用于将所述已读取的所述P个数据块标记为被删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
可选的,所述图像文件用于训练神经网络。
在一些实现方式中,本申请实施例的图像文件处理装置,用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图17为本申请实施例提供的图像文件处理方法的流程图。在上述所述图像文件处理装置实施例的基础上,如图17所示,本申请实施例的方法可以包括:
S501、接收来自客户端设备的待存储的多个图像文件;
S502、确定所述多个图像文件中每个图像文件的对象标识;
S503、对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;
S504、以数据块为存储单元,存储所述至少一个数据块。
本申请实施例的执行主体为上述图像文件处理装置中的数据处理单元。
可选的,本申请实施例的图像文件用于训练神经网络。
客户端设备向图像文件处理装置发送写请求,该写请求中携带有待存储的多个图像文件。该写请求用于指示图像文件处理装置将多个图像文件进行存储,例如存储至存储设备中。
数据处理单元接收客户端设备发送的写请求,并从该写请求中解析出其携带的多个图像文件,以确定多个图像文件中每个图像文件的对象标识。
接着,对多个图像文件进行聚合处理,获得至少一个数据块,其中,每个数据块中包括至少两个图像文件。例如,将3个图像文件聚合为一个数据块,这样可以将多个图像文件聚合,形成至少一个数据块。
可选的,上述S503可以包括:对所述多个图像文件进行随机化排列;对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
可选的,上述S503可以包括:依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
本申请实施例提供的图像文件处理方法,以数据块为写单元,可以降低对存储设备的I/O的访问次数,提高写速度,其写数据的实现原理和技术效果与上述图像文件处理装置类似,此处不再赘述。
图18为本申请实施例提供的图像文件处理方法的流程图。在上述图17所示S503之后,如图18所示,本申请实施例的方法可以包括:
S601、确定所述至少一个数据块的块标识;
S602、基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;
S603、存储所述多个图像文件的元数据。
本申请实施例,根据上述步骤,确定多个图像文件的元数据,并对元数据进行保存,其实现过程与上述图像文件处理装置确定原数据的过程相同,参照上述实施例的描述,在此不再赘述。
可选的,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在一些实现方式中,当多个图像文件属于至少一个训练数据集,本申请实施例的方法还包括:将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在一些实现方式中,上述S603可以包括:确定所述元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;将所述元数据的哈希值添加到所述目标元数据分组的哈希表中。
在一些实现方式中,上述确定所述哈希值所属的目标哈希分区,可以包括:对所述哈希值进行校验处理,得到所述哈希值的校验值;使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
本申请实施例提供的图像文件处理方法,其实现原理和技术效果与上述图像文件处理装置类似,此处不再赘述。
图19为本申请实施例提供的图像文件处理装置的结构图,所述图像文件处理装置400,包括:
接收模块410,用于接收来自客户端设备的待存储的多个图像文件;
确定模块420,用于确定所述多个图像文件中每个图像文件的对象标识;
聚合模块430,用于对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;
存储模块440,用于以数据块为存储单元,存储所述至少一个数据块。
可选的,所述聚合模块430,还用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
可选的,图像文件用于训练神经网络。
可选的,所述确定模块420,还用于确定所述至少一个数据块的块标识;并基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;
所述存储模块440,还用于存储所述多个图像文件的元数据。
可选的,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
在一些实现方式中,本申请实施例的图像文件处理装置,用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图20为本申请实施例提供的图像文件处理装置的结构图,在上述图19所示实施例的基础上,如图20所示,本申请实施例的聚合模块430包括排序单元431和聚合单元432,包括:
所述排序单元431,用于对所述多个图像文件进行随机化排列;
所述聚合单元432,用于对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
可选的,所述多个图像文件属于至少一个训练数据集,所述存储模块440,还用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
在一些实现方式中,本申请实施例的图像文件处理装置,用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图21为本申请实施例提供的图像文件处理装置的结构图,在上述图19和/或20所示实施例的基础上,如图21所示,本申请实施例的存储模块440包括确定单元441和存储单元442:
所述确定单元441,用于确定所述元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;
所述存储单元442,用于将所述元数据的哈希值添加到所述目标元数据分组的哈希表中。
可选的,所述确定单元441,具体用于对所述哈希值进行校验处理,得到所述哈希值的校验值;使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
在一些实现方式中,本申请实施例的图像文件处理装置,用于执行上述所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图22为本申请实施例提供的图像文件处理装置的结构示意图,如图22所示,本申请实施例的图像文件处理装置200包括:
存储器210,用于存储计算机程序;
处理器220,用于执行所述计算机程序,以实现上述图像文件处理方法,其实现原理和技术效果类似,此处不再赘述。
本申请实施例提供的文件存储系统的示意图,如图1所示,本申请实施例的文件存储系统包括:图像文件处理装置、客户端设备和存储设备,所述图像文件处理装置分别与所述客户端设备和所述存储设备通信连接。
所述图像文件处理装置,用于接收所述客户端设备发送的待存储的多个图像文件,并对所述多个图像文件进行聚合,获得至少一个数据块,以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中,并基于所述多个图像文件中每个图像文件所属的数据块,确定所述多个图像文件的元数据,并存储所述多个图像文件的元数据;
其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件。
本申请实施例的文件存储系统,与上述图像文件处理装置的原理相同和技术效果类似,此处不再赘述。
可选的,所述图像文件处理装置,用于确定多个图像文件中每个图像文件的对象标识,以及确定所述至少一个数据块的块标识,并基于所述多个图像文件中每个图像文件所属的数据块以及所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据。
可选的,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
可选的,所述图像文件处理装置,还用于对所述多个图像文件进行随机化排列,对随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
可选的,所述多个图像文件属于至少一个训练数据集,则图像文件处理装置,还用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
可选的,所述图像文件处理装置,还用于接收客户端设备320发送的读请求,所述读请求中携带待读取文件的数量;根据所述待读取文件的数量,确定待读取数据块的目标数量P,并以数据块为读取单元,读取存储的所述P个数据块,并将读取的所述P个数据块发送给所述客户端设备320。
可选的,所述图像文件处理装置,用于随机读取存储的所述P个数据块。
可选的,所述图像文件处理装置,用于随机获取P个元数据,并根据所述P个元数据读取存储的所述P个数据块。
可选的,所述图像文件处理装置,用于从所述存储设备330中读取多个数据块,并存储读取的所述多个数据块,并从缓存的多个数据块中读取存储的所述P个数据块。
可选的,所述图像文件处理装置,还用于移除已读取的所述P个数据块,并以数据块为读取单元,从所述存储设备330中读取P个数据块并存储所述P个数据块。
可选的,所述图像文件处理装置,用于将已读取的所述P个数据块标记为删除,并在间隔第一时间段后移除标记为删除的所述P个数据块。
可选的,所述图像文件处理装置,用于确定所述图像文件的元数据的哈希值,并确定所述哈希值所属的目标哈希分区以及所述目标哈希分区对应的目标元数据分组,其中,所述多个元数据分组中每个元数据分组对应至少一个哈希分区,每个哈希分区对应多个哈希值;并将所述图像文件的元数据的哈希值添加到所述目标元数据分组的哈希表中。
可选的,所述图像文件处理装置,用于对所述哈希值进行校验处理,得到所述哈希值的校验值,并使用所述校验值对预设数值取模运算,确定所述目标哈希分区。
可选的,所述图像文件处理装置,用于依据所述多个图像文件的时间顺序,对所述多个图像文件进行聚合,得到至少一个数据块。
应理解,本文对技术方案的描述着重于强调各个实施例的不同之处,其相同之处可以相互参考,为了简洁,不再一一赘述。
进一步的,当本申请实施例中图像文件处理方法的至少一部分功能通过软件实现时,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于储存为上述对数据处理的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述方法实施例中各种可能的图像文件处理方法。在计算机上加载和执行所述计算机执行指令时,可全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,所述传输可以通过无线(例如蜂窝通信、红外、短距离无线、微波等)方式向另一个网站站点、计算机、单元或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的单元、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种图像文件处理装置,其特征在于,所述图像文件处理装置分别与客户端设备与存储设备通信连接,所述图像文件处理装置包括:命名单元、元数据单元和数据处理单元;
所述命名单元,用于接收所述客户端设备发送的待存储的多个图像文件,并确定所述多个图像文件中每个图像文件的对象标识;
所述数据处理单元,用于对所述多个图像文件进行聚合,获得至少一个数据块,其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件;
所述命名单元,还用于确定所述数据处理单元得到的所述至少一个数据块的块标识;
所述数据处理单元,还用于以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中;
所述数据处理单元,还用于基于所述多个图像文件中每个图像文件所属的数据块以及所述命名单元确定的所述多个图像文件的对象标识和所述至少一个数据块的块标识,确定所述多个图像文件的元数据;
所述元数据单元,用于存储所述多个图像文件的元数据。
2.根据权利要求1所述的装置,其特征在于,所述图像文件的元数据包括下列中的至少一项:所述图像文件的对象标识、所述图像文件所属数据块的块标识、所述图像文件在所述数据块中的位置信息和所述图像文件的数据长度。
3.根据权利要求1或2所述的装置,其特征在于,所述装置还包括随机处理单元,用于对所述多个图像文件进行随机化排列;
所述数据处理单元,用于对所述随机处理单元得到的随机化排列后的所述多个图像文件进行聚合,获得至少一个数据块。
4.根据权利要求1-3任一项所述的装置,其特征在于,
所述多个图像文件属于至少一个训练数据集;
所述数据处理单元,用于将属于同一训练数据集的至少一个数据块存储在相同的存储桶中。
5.根据权利要求1-4任一项所述的装置,其特征在于,还包括:
收发单元,用于接收客户端设备发送的读请求,所述读请求中携带待读取文件的数量;
所述数据处理单元,还用于根据所述待读取文件的数量,确定待读取数据块的目标数量P,并以数据块为读取单元,读取存储的所述P个数据块;
所述收发单元,还用于向所述客户端设备发送所述数据处理单元读取的所述P个数据块。
6.一种图像文件处理方法,其特征在于,包括:
接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量;
根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件;
以数据块为读取单元,读取存储的所述P个数据块;
向所述客户端设备发送读取的所述P个数据块。
7.一种图像文件处理装置,其特征在于,包括:
接收模块,用于接收来自于客户端设备的读请求,所述读请求中携带待读取的图像文件的数量;
确定模块,用于根据所述待读取的图像文件的数量,确定待读取的数据块的目标数量P,其中,所述数据块包括至少两个图像文件;
读取模块,用于以数据块为读取单元,读取存储的所述P个数据块;
发送模块,用于向所述客户端设备发送读取的所述P个数据块。
8.一种图像文件处理装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求6所述的图像文件处理方法。
9.一种文件存储系统,其特征在于,包括:图像文件处理装置、客户端设备和存储设备,所述图像文件处理装置分别与所述客户端设备和所述存储设备通信连接;
所述图像文件处理装置,用于接收所述客户端设备发送的待存储的多个图像文件,并对所述多个图像文件进行聚合,获得至少一个数据块,以数据块为存储单元,将所述至少一个数据块存储至所述存储设备中,并基于所述多个图像文件中每个图像文件所属的数据块,确定所述多个图像文件的元数据,并存储所述多个图像文件的元数据;
其中,所述数据块中包括所述多个图像文件中的至少两个所述图像文件。
10.一种计算机可读存储介质,其特征在于,包括:所述存储介质中存储计算机程序,所述计算机程序在执行时实现如权利要求6所述的图像文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393463.3A CN109597903B (zh) | 2018-11-21 | 2018-11-21 | 图像文件处理装置和方法、文件存储系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393463.3A CN109597903B (zh) | 2018-11-21 | 2018-11-21 | 图像文件处理装置和方法、文件存储系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597903A true CN109597903A (zh) | 2019-04-09 |
CN109597903B CN109597903B (zh) | 2021-12-28 |
Family
ID=65960338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811393463.3A Active CN109597903B (zh) | 2018-11-21 | 2018-11-21 | 图像文件处理装置和方法、文件存储系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597903B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716696A (zh) * | 2019-09-27 | 2020-01-21 | 新华三信息安全技术有限公司 | 对象处理方法及相关装置 |
CN110826697A (zh) * | 2019-10-31 | 2020-02-21 | 深圳市商汤科技有限公司 | 获取样本的方法及装置、电子设备和存储介质 |
CN110929868A (zh) * | 2019-11-18 | 2020-03-27 | 中国银行股份有限公司 | 一种数据处理方法、装置、电子设备及可读存储介质 |
CN117667853A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029576A1 (en) * | 2009-07-30 | 2011-02-03 | Jason Goldman | Collection of Media Files |
US20140376786A1 (en) * | 2012-06-15 | 2014-12-25 | Shutterfly, Inc. | Assisted photo-tagging with facial recognition models |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN106649702A (zh) * | 2016-12-20 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 云存储系统的文件存储方法、装置及云存储系统 |
CN106874941A (zh) * | 2017-01-19 | 2017-06-20 | 四川大学 | 一种分布式数据识别方法及系统 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
CN107066505A (zh) * | 2017-01-10 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种性能优化的小文件存储访问的系统及方法 |
CN108073986A (zh) * | 2016-11-16 | 2018-05-25 | 北京搜狗科技发展有限公司 | 一种神经网络模型训练方法、装置及电子设备 |
-
2018
- 2018-11-21 CN CN201811393463.3A patent/CN109597903B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110029576A1 (en) * | 2009-07-30 | 2011-02-03 | Jason Goldman | Collection of Media Files |
US20140376786A1 (en) * | 2012-06-15 | 2014-12-25 | Shutterfly, Inc. | Assisted photo-tagging with facial recognition models |
CN104272274A (zh) * | 2013-12-31 | 2015-01-07 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN106911743A (zh) * | 2015-12-23 | 2017-06-30 | 中兴通讯股份有限公司 | 小文件的写聚合、读聚合方法及系统和客户端 |
CN108073986A (zh) * | 2016-11-16 | 2018-05-25 | 北京搜狗科技发展有限公司 | 一种神经网络模型训练方法、装置及电子设备 |
CN106649702A (zh) * | 2016-12-20 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 云存储系统的文件存储方法、装置及云存储系统 |
CN107066505A (zh) * | 2017-01-10 | 2017-08-18 | 郑州云海信息技术有限公司 | 一种性能优化的小文件存储访问的系统及方法 |
CN106874941A (zh) * | 2017-01-19 | 2017-06-20 | 四川大学 | 一种分布式数据识别方法及系统 |
Non-Patent Citations (2)
Title |
---|
刘君: ""基于Hadoop的海量小文件存储优化方法"", 《厦门理工学院学报》 * |
李林阳 等: "" 海量GNSS小文件云存储优化方法研究"", 《武汉大学学报(信息科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716696A (zh) * | 2019-09-27 | 2020-01-21 | 新华三信息安全技术有限公司 | 对象处理方法及相关装置 |
CN110826697A (zh) * | 2019-10-31 | 2020-02-21 | 深圳市商汤科技有限公司 | 获取样本的方法及装置、电子设备和存储介质 |
CN110929868A (zh) * | 2019-11-18 | 2020-03-27 | 中国银行股份有限公司 | 一种数据处理方法、装置、电子设备及可读存储介质 |
CN110929868B (zh) * | 2019-11-18 | 2023-10-10 | 中国银行股份有限公司 | 一种数据处理方法、装置、电子设备及可读存储介质 |
CN117667853A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
CN117667853B (zh) * | 2024-01-30 | 2024-05-03 | 苏州元脑智能科技有限公司 | 数据读取方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109597903B (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6778795B2 (ja) | データを記憶するための方法、装置及びシステム | |
US11954002B1 (en) | Automatically provisioning mediation services for a storage system | |
US10209893B2 (en) | Massively scalable object storage for storing object replicas | |
KR101852136B1 (ko) | 동적 샤딩을 위한 컴퓨터 구현 방법 | |
US11995336B2 (en) | Bucket views | |
US10176242B2 (en) | Local key-value database synchronization | |
US20200326877A1 (en) | Storage system with efficient detection and clean-up of stale data for sparsely-allocated storage in replication | |
US20210174208A1 (en) | Search acceleration for artificial intelligence | |
CN102708165B (zh) | 分布式文件系统中的文件处理方法及装置 | |
CN104618482B (zh) | 访问云数据的方法、服务器、传统存储设备、系统 | |
US9547706B2 (en) | Using colocation hints to facilitate accessing a distributed data storage system | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
US20150227606A1 (en) | Massively scalable object storage system | |
CN103150394A (zh) | 面向高性能计算的分布式文件系统元数据管理方法 | |
CN104754001A (zh) | 云存储系统和数据存储方法 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
JP2011516994A (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
US20210055885A1 (en) | Enhanced data access using composite data views | |
CN103970875A (zh) | 一种并行重复数据删除方法 | |
CN106960011A (zh) | 分布式文件系统元数据管理系统及方法 | |
CN109844723B (zh) | 使用基于服务的统计信息进行主控建立的方法和系统 | |
CN110362590A (zh) | 数据管理方法、装置、系统、电子设备及计算机可读介质 | |
CN112328697A (zh) | 一种基于大数据的数据同步方法 | |
US11360712B2 (en) | Storage system with continuous data verification for synchronous replication of logical storage volumes | |
CN111212138B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |