CN108614837A - 文件存储和检索的方法及装置 - Google Patents
文件存储和检索的方法及装置 Download PDFInfo
- Publication number
- CN108614837A CN108614837A CN201611146725.7A CN201611146725A CN108614837A CN 108614837 A CN108614837 A CN 108614837A CN 201611146725 A CN201611146725 A CN 201611146725A CN 108614837 A CN108614837 A CN 108614837A
- Authority
- CN
- China
- Prior art keywords
- file
- merging
- attribute information
- destination
- file destination
- 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)
Abstract
本发明公开了一种文件存储和检索的方法及装置,属于数据存储技术领域。应用于文件存储系统包括的应用服务器中,文件存储系统还包括客户端和分布式存储系统,所述方法包括:当接收到客户端发送的待存储的第一目标文件时,判断第一目标文件是否为小文件,当第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,将第一目标文件写入至所述合并文件中,并判断写入后的合并文件的文件大小是否大于或等于所述第二预设阈值;当写入后的合并文件的文件大小大于或等于第二预设阈值时,将写入后的合并文件存储至分布式存储系统。本发明提高了分布式存储系统的存储性能。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种文件存储和检索的方法及装置。
背景技术
随着互联网的普及,越来越多的用户开始通过互联网来享受生活的便利。随着互联网中的用户日益增多,互联网所产生的数据也越来越多,这些数据可以以文件的形式存储,比如,音频、视频、图片等数据均可以通过文件的形式存储。因此,亟需一种文件存储和检索的方法。
现有技术中,通常可以由客户端获取文件,并通过分布式存储系统存储文件,即,客户端可以获取待存储的目标文件,并将目标文件发送给分布式存储系统,当该分布式存储系统接收到目标文件时,可以将目标文件进行存储。为了便于在存储该目标文件之后,对该目标文件进行检索,该分布式存储系统还可以生成并存储该目标文件的元数据,该元数据用于记录目标文件的文件标识和目标文件在该分布式存储系统中的存储地址等信息。
由于在分布式存储系统中存储的文件可能会包括小文件,即文件大小在几MB(MByte,兆)以下的文件,因此,当该分布式存储系统中存储了海量的小文件时,可能会导致该分布式存储系统出现大量的磁盘碎片。另外,由于该分布式存储系统需要为每个文件生成并存储元数据,当需要对存储的某个文件进行检索时,该分布式存储系统需要耗费大量的时间来在存储的海量的元数据中检索该文件,从而降低了该分布式存储系统的存储性能。
发明内容
为了解决提高分布式存储系统的存储性能,本发明实施例提供了一种文件存储和检索的方法及装置。所述技术方案如下:
第一方面,提供了一种文件存储的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述方法包括:
当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;
当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;
将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;
当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。
结合第一方面,在上述第一方面的第一种可能的实现方式中,所述将所述第一目标文件写入至所述合并文件之后,还包括:
生成所述第一目标文件的属性信息,所述第一目标文件的属性信息包括所述应用服务器为所述第一目标文件分配的文件标识、所述应用服务器为所述合并文件分配的文件标识和所述第一目标文件写入在所述合并文件中的位置信息;
存储所述第一目标文件的属性信息。
结合第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述存储所述第一目标文件的属性信息,包括:
将所述第一目标文件的属性信息存储至第一关系型数据库中,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述大文件为文件大小大于或等于所述第一预设阈值的文件;或,
将所述第一目标文件的属性信息存储至第二关系型数据库中,所述第二关系型数据库用于存储小文件的属性信息。
结合第一方面,在上述第一方面的第三种可能的实现方式中,所述从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件之前,还包括:
判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;
当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,执行从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件的步骤;
当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中。
结合第一方面的第三种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中之后,还包括:
生成所述空白合并文件的属性信息,所述空白合并文件的属性信息包括所述应用服务器为所述空白合并文件分配的文件标识、所述空白合并文件的本地存储地址和第一标识,所述第一标识用于标识文件大小小于所述第二预设阈值且未存储至所述分布式存储系统的文件;
存储所述空白合并文件的属性信息。
结合第一方面的第四种可能的实现方式,在上述第一方面的第五种可能的实现方式中,所述存储所述空白合并文件的属性信息,包括:
将所述空白合并文件的属性信息存储至第一关系型数据库中;或,
将所述空白合并文件的属性信息存储至第三关系型数据库中,所述第三关系型数据库用于存储合并文件的属性信息。
结合第一方面,在上述第一方面的第六种可能的实现方式中,所述判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值之后,还包括:
当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将所述合并文件的属性信息包括的第一标识替换为第二标识,所述第二标识用于标识文件大小大于或等于所述第二预设阈值且未存储至所述分布式存储系统的文件。
结合第一方面至第一方面的第六种可能的实现方式中任一种可能的实现方式,在上述第一方面的第七种可能的实现方式中,所述将写入后的所述合并文件存储至分布式存储系统,包括:
每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;
将所选择的合并文件存储至所述分布式存储系统。
结合第一方面的第七种可能的实现方式,在上述第一方面的第八种可能的实现方式中,所述将所选择的合并文件存储至所述分布式存储系统之后,还包括:
确定所述分布式存储系统为所选择的合并文件分配的文件标识;
在所选择的合并文件的属性信息中添加所述分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的所述第二标识替换为第三标识,所述第三标识用于标识已存储至所述分布式存储系统的文件。
结合第一方面的第八种可能的实现方式,在上述第一方面的第九种可能的实现方式中,所述方法还包括:
每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括所述第三标识的合并文件;
将所选择的合并文件删除。
第二方面,提供了一种文件检索的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述方法包括:
接收客户端发送的文件检索请求,所述文件检索请求携带待检索的第二目标文件的索引信息;
基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息;
基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
结合第二方面,在上述第二方面的第一种可能的实现方式中,所述基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息,包括:
基于所述索引信息,对本地存储的第一关系型数据库进行遍历,以获取所述第二目标文件的属性信息,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述小文件为文件大小小于第一预设阈值的文件,所述合并文件为需要与小文件进行合并的文件,所述大文件为文件大小大于或等于所述第一预设阈值的文件。
结合第二方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
当所述第二目标文件的属性信息中包括删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件,所述删除标识用于标识所述第二目标文件已在本地删除;
当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件;
当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对所述第一关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
结合第二方面,在上述第二方面的第三种可能的实现方式中,所述基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息,包括:
基于所述索引信息,对本地存储的第二关系型数据库进行遍历,所述第二关系型数据库用于存储小文件的属性信息;
当所述第二关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为小文件,从所述第二关系型数据库中获取所述第二目标文件的属性信息;
当所述第二关系型数据库不包括所述第二目标文件的属性信息时,基于所述索引信息,对所述第四关系型数据库进行遍历,所述第四关系型数据库用于存储大文件的属性信息;
当所述第四关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为大文件,从所述第四关系型数据库中获取所述第二目标文件的属性信息。
结合第二方面的第三种可能的实现方式,在上述第二方面的第四种可能的实现方式中,所述基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
当所述第二目标文件为小文件、所述第二目标文件的属性信息不包括删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息,所述第三关系型数据库用于存储合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件;
当所述第二目标文件为大文件、且所述第二目标文件的属性信息中包括所述删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件;
当所述第二目标文件为大文件,且所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件。
结合第二方面的第二种可能的实现方式或第四种可能的实现方式,在上述第二方面的第五种可能的实现方式中,所述根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
根据所述第二目标文件所在的合并文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件所在的合并文件;
根据所述第二目标文件在所述合并文件中的位置信息,从所述第二目标文件所在的合并文件中获取所述第二目标文件。
结合第二方面的第二种可能的实现方式或第四种可能的实现方式,在上述第二方面的第六种可能的实现方式中,所述根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从所述分布式存储系统中获取所述第二目标文件,包括:
根据所述第二目标文件所在的合并文件的属性信息,确定所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识;
向所述分布式存储系统发送文件获取请求,所述文件获取请求中携带所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识,以及所述第二目标文件在所述合并文件中的位置信息;
接收所述分布式存储系统发送的所述第二目标文件,所述第二目标文件为所述分布式存储系统基于所述文件获取请求获取得到。
第三方面,提供了一种文件存储的装置,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述装置包括:
第一判断模块,用于当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;
获取模块,用于当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;
写入模块,用于将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;
第一存储模块,用于当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。
结合第三方面,在上述第三方面的第一种可能的实现方式中,所述装置还包括:
第一生成模块,用于生成所述第一目标文件的属性信息,所述第一目标文件的属性信息包括所述应用服务器为所述第一目标文件分配的文件标识、所述应用服务器为所述合并文件分配的文件标识和所述第一目标文件写入在所述合并文件中的位置信息;
第二存储模块,用于存储所述第一目标文件的属性信息。
结合第三方面的第一种可能的实现方式,在上述第三方面的第二种可能的实现方式中,所述第二存储模块包括:
第一存储子模块,用于将所述第一目标文件的属性信息存储至第一关系型数据库中,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述大文件为文件大小大于或等于所述第一预设阈值的文件;或,
第二存储子模块,用于将所述第一目标文件的属性信息存储至第二关系型数据库中,所述第二关系型数据库用于存储小文件的属性信息。
结合第三方面,在上述第三方面的第三种可能的实现方式中,所述装置还包括:
第二判断模块,用于判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;
触发模块,用于当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,触发所述获取模块从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件;
创建模块,用于当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中。
结合第三方面的第三种可能的实现方式,在上述第三方面的第四种可能的实现方式中,所述装置还包括:
第二生成模块,用于生成所述空白合并文件的属性信息,所述空白合并文件的属性信息包括所述应用服务器为所述空白合并文件分配的文件标识、所述空白合并文件的本地存储地址和第一标识,所述第一标识用于标识文件大小小于所述第二预设阈值且未存储至所述分布式存储系统的文件;
第三存储模块,用于存储所述空白合并文件的属性信息。
结合第三方面的第四种可能的实现方式,在上述第三方面的第五种可能的实现方式中,所述第三存储模块包括:
第三存储子模块,用于将所述空白合并文件的属性信息存储至第一关系型数据库中;或,
第四存储子模块,用于将所述空白合并文件的属性信息存储至第三关系型数据库中,所述第三关系型数据库用于存储合并文件的属性信息。
结合第三方面,在上述第三方面的第六种可能的实现方式中,所述装置还包括:
替换模块,用于当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将所述合并文件的属性信息包括的第一标识替换为第二标识,所述第二标识用于标识文件大小大于或等于所述第二预设阈值且未存储至所述分布式存储系统的文件。
结合第三方面至第三方面的第六种可能的实现方式中任一种可能的实现方式,在上述第三方面的第七种可能的实现方式中,所述第一存储模块包括:
遍历子模块,用于每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;
选择子模块,用于基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;
第五存储子模块,用于将所选择的合并文件存储至所述分布式存储系统。
结合第三方面的第七种可能的实现方式,在上述第三方面的第八种可能的实现方式中,所述第一存储模块还包括:
确定子模块,用于确定所述分布式存储系统为所选择的合并文件分配的文件标识;
添加子模块,用于在所选择的合并文件的属性信息中添加所述分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的所述第二标识替换为第三标识,所述第三标识用于标识已存储至所述分布式存储系统的文件。
结合第三方面的第八种可能的实现方式,在上述第三方面的第九种可能的实现方式中,所述装置还包括:
遍历模块,用于每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;
选择模块,用于基于遍历结果,从本地存储的合并文件中,选择属性信息包括所述第三标识的合并文件;
删除模块,用于将所选择的合并文件删除。
第四方面,提供了一种文件检索的装置,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述装置包括:
接收模块,用于接收客户端发送的文件检索请求,所述文件检索请求携带待检索的第二目标文件的索引信息;
遍历模块,用于基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息;
获取模块,用于基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
结合第四方面,在上述第四方面的第一种可能的实现方式中,所述遍历模块包括:
第一遍历子模块,用于基于所述索引信息,对本地存储的第一关系型数据库进行遍历,以获取所述第二目标文件的属性信息,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述小文件为文件大小小于第一预设阈值的文件,所述合并文件为需要与小文件进行合并的文件,所述大文件为文件大小大于或等于所述第一预设阈值的文件。
结合第四方面的第一种可能的实现方式,在上述第四方面的第二种可能的实现方式中,所述获取模块包括:
第一获取子模块,用于当所述第二目标文件的属性信息中包括删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件,所述删除标识用于标识所述第二目标文件已在本地删除;
第二获取子模块,用于当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件;
第三获取子模块,用于当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对所述第一关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
结合第四方面,在上述第四方面的第三种可能的实现方式中,所述遍历模块包括:
第二遍历子模块,用于基于所述索引信息,对本地存储的第二关系型数据库进行遍历,所述第二关系型数据库用于存储小文件的属性信息;
第四获取子模块,用于当所述第二关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为小文件,从所述第二关系型数据库中获取所述第二目标文件的属性信息;
第三遍历子模块,用于当所述第二关系型数据库不包括所述第二目标文件的属性信息时,基于所述索引信息,对所述第四关系型数据库进行遍历,所述第四关系型数据库用于存储大文件的属性信息;
第五获取子模块,用于当所述第四关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为大文件,从所述第四关系型数据库中获取所述第二目标文件的属性信息。
结合第四方面的第三种可能的实现方式,在上述第四方面的第四种可能的实现方式中,所述获取模块包括:
第三获取子模块,用于当所述第二目标文件为小文件、所述第二目标文件的属性信息不包括删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息,所述第三关系型数据库用于存储合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件;
第一获取子模块,用于当所述第二目标文件为大文件、且所述第二目标文件的属性信息中包括所述删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件;
第二获取子模块,用于当所述第二目标文件为大文件,且所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件。
结合第四方面的第二种可能的实现方式或第四种可能的实现方式,在上述第四方面的第五种可能的实现方式中,所述第三获取子模块还用于:
根据所述第二目标文件所在的合并文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件所在的合并文件;
根据所述第二目标文件在所述合并文件中的位置信息,从所述第二目标文件所在的合并文件中获取所述第二目标文件。
结合第四方面的第二种可能的实现方式或第四种可能的实现方式,在上述第四方面的第六种可能的实现方式中,所述第三获取子模块还用于:
根据所述第二目标文件所在的合并文件的属性信息,确定所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识;
向所述分布式存储系统发送文件获取请求,所述文件获取请求中携带所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识,以及所述第二目标文件在所述合并文件中的位置信息;
接收所述分布式存储系统发送的所述第二目标文件,所述第二目标文件为所述分布式存储系统基于所述文件获取请求获取得到。
本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,该应用服务器在接收到待存储的第一目标文件时,不是直接将第一目标文件存储至该分布式存储系统,而是根据第一目标文件的文件大小判断第一目标文件是否为小文件,如果第一目标文件为小文件,将第一目标文件写入至本地存储的文件大小小于第二预设阈值的合并文件中,并在合并文件大于或等于第二预设阈值时,将该合并文件存储至该分布式存储系统,因此,避免了直接将小文件存储至该分布式存储系统而导致该分布式系统出现大量磁盘碎片的问题,提高了分布式存储系统的存储性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明实施例提供的一种文件存储和检索的系统架构图;
图1B是本发明实施例提供的一种文件存储的方法流程图;
图2是本发明实施例提供的一种文件检索的方法流程图;
图3是本发明实施例提供的另一种文件存储的方法流程图;
图4是本发明实施例提供的另一种文件检索的方法流程图;
图5是本发明实施例提供的一种文件存储的装置框图;
图6是本发明实施例提供的另一种文件检索的装置框图;
图7是本发明实施例提供的一种文件存储的装置框图;
图8是本发明实施例提供的另一种文件检索的装置框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1A是根据一示例性实施例示出的一种文件存储和检索的系统架构图,参照图1,该系统可以包括应用服务器02和分布式存储系统03,客户端01和应用服务器02之间可以通过有线或者无线网络连接,应用服务器02和分布式存储系统03之间也可以通过有线或者无线网络连接。
该客户端01可以是能够生成文件,并需要存储文件的设备,比如,在监控行业中,该客户端01可以是监控摄像头或者监控平台。当然,在实际应用中,该客户端01也可以是其它能够生成文件,并需要存储文件的设备。
该应用服务器02能够接收该客户端01发送的待存储的第一目标文件,判断该目标文件是否为小文件,当该目标文件是小文件时,可以将该目标文件与本地存储的其它文件进行合并,将合并后的文件存储至该分布式存储系统03。该应用服务器02还可以接收客户端01发送的文件检索请求,并对待检索的第二目标文件进行检索,将检索到的第二目标文件发送给客户端01。
需要说明的是,该应用服务器02可以是一个服务器,也可以是一个服务器集群。
该分布式存储系统03可以包括多个分布式存储节点,并通过该多个分布式存储节点对接收到的文件进行存储。
图1B是本发明实施例提供的一种文件存储的方法的流程图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图1B,该方法包括:
步骤101:当接收到客户端发送的待存储的第一目标文件时,判断该第一目标文件是否为小文件,该小文件为文件大小小于第一预设阈值的文件。
步骤102:当该第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,该第二预设阈值大于或等于该第一预设阈值,该合并文件为需要与小文件进行合并的文件。
步骤103:将该第一目标文件写入至该合并文件中,并判断写入后的该合并文件的文件大小是否大于或等于该第二预设阈值。
步骤104:当写入后的该合并文件的文件大小大于或等于该第二预设阈值时,将写入后的该合并文件存储至该分布式存储系统。
在本发明实施例中,该应用服务器在接收到待存储的第一目标文件时,不是直接将第一目标文件存储至该分布式存储系统,而是根据第一目标文件的文件大小判断第一目标文件是否为小文件,如果第一目标文件为小文件,将第一目标文件写入至本地存储的文件大小小于第二预设阈值的合并文件中,并在合并文件大于或等于第二预设阈值时,将该合并文件存储至该分布式存储系统,因此,避免了直接将小文件存储至该分布式存储系统而导致该分布式系统出现大量磁盘碎片的问题,提高了分布式存储系统的存储性能。
可选地,将该第一目标文件写入至该合并文件之后,还包括:
生成该第一目标文件的属性信息,该第一目标文件的属性信息包括该应用服务器为该第一目标文件分配的文件标识、该应用服务器为该合并文件分配的文件标识和该第一目标文件写入在该合并文件中的位置信息;
存储该第一目标文件的属性信息。
可选地,存储该第一目标文件的属性信息,包括:
将该第一目标文件的属性信息存储至第一关系型数据库中,该第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,该大文件为文件大小大于或等于该第一预设阈值的文件;或,
将该第一目标文件的属性信息存储至第二关系型数据库中,该第二关系型数据库用于存储小文件的属性信息。
可选地,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件之前,还包括:
判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;
当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,执行从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件的步骤;
当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将该第一目标文件写入至该空白合并文件中。
可选地,在本地创建空白合并文件,并将该第一目标文件写入至该空白合并文件中之后,还包括:
生成该空白合并文件的属性信息,该空白合并文件的属性信息包括该应用服务器为该空白合并文件分配的文件标识、该空白合并文件的本地存储地址和第一标识,该第一标识用于标识文件大小小于该第二预设阈值且未存储至该分布式存储系统的文件;
存储该空白合并文件的属性信息。
可选地,存储该空白合并文件的属性信息,包括:
将该空白合并文件的属性信息存储至第一关系型数据库中;或,
将该空白合并文件的属性信息存储至第三关系型数据库中,该第三关系型数据库用于存储合并文件的属性信息。
可选地,判断写入后的该合并文件的文件大小是否大于或等于该第二预设阈值之后,还包括:
当写入后的该合并文件的文件大小大于或等于该第二预设阈值时,将该合并文件的属性信息包括的第一标识替换为第二标识,该第二标识用于标识文件大小大于或等于该第二预设阈值且未存储至该分布式存储系统的文件。
可选地,将写入后的该合并文件存储至分布式存储系统,包括:
每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;
将所选择的合并文件存储至该分布式存储系统。
可选地,将所选择的合并文件存储至该分布式存储系统之后,还包括:
确定该分布式存储系统为所选择的合并文件分配的文件标识;
在所选择的合并文件的属性信息中添加该分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的该第二标识替换为第三标识,该第三标识用于标识已存储至该分布式存储系统的文件。
可选地,该方法还包括:
每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括该第三标识的合并文件;
将所选择的合并文件删除。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图2是本发明实施例提供的一种文件检索的方法流程图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图2,该方法包括:
步骤201:接收客户端发送的文件检索请求,该文件检索请求携带待检索的第二目标文件的索引信息。
步骤202:基于该索引信息,对本地存储的属性信息进行遍历,以获取该第二目标文件的属性信息。
步骤203:基于该第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件。
在本发明实施例中,该应用服务器在接收到文件检索请求时,不是直接从该分布式存储系统中获取待检索的第二目标文件,而是先基于该索引信息,对本地存储的属性信息进行遍历,从而获取到第二目标文件的属性信息,再基于第二目标文件的属性信息,从本地存储或分布式存储系统获取第二目标文件,减少了该分布式存储系统的压力,从而提高了分布式存储系统的存储性能。
可选地,基于该索引信息,对本地存储的属性信息进行遍历,以获取该第二目标文件的属性信息,包括:
基于该索引信息,对本地存储的第一关系型数据库进行遍历,以获取该第二目标文件的属性信息,该第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,该小文件为文件大小小于第一预设阈值的文件,该合并文件为需要与小文件进行合并的文件,该大文件为文件大小大于或等于该第一预设阈值的文件。
可选地,基于该第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件,包括:
当该第二目标文件的属性信息中包括删除标识和该分布式存储系统为该第二目标文件分配的文件标识时,根据该分布式存储系统为该第二目标文件分配的文件标识,从该分布式存储系统中,获取该第二目标文件,该删除标识用于标识该第二目标文件已在本地删除;
当该第二目标文件的属性信息中不包括该删除标识,但包括该第二目标文件的本地存储地址时,根据该第二目标文件的本地存储地址,从本地存储中获取该第二目标文件;
当该第二目标文件的属性信息中不包括该删除标识,但包括该第二目标文件所在的合并文件的文件标识和该第二目标文件在该合并文件中的位置信息时,基于该第二目标文件所在的合并文件的文件标识,对该第一关系型数据库进行遍历,以获取该第二目标文件所在的合并文件的属性信息;根据该第二目标文件所在的合并文件的属性信息和该第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取该第二目标文件。
可选地,基于该索引信息,对本地存储的属性信息进行遍历,以获取该第二目标文件的属性信息,包括:
基于该索引信息,对本地存储的第二关系型数据库进行遍历,该第二关系型数据库用于存储小文件的属性信息;
当该第二关系型数据库包括该第二目标文件的属性信息时,确定该第二目标文件为小文件,从该第二关系型数据库中获取该第二目标文件的属性信息;
当该第二关系型数据库不包括该第二目标文件的属性信息时,基于该索引信息,对该第四关系型数据库进行遍历,该第四关系型数据库用于存储大文件的属性信息;
当该第四关系型数据库包括该第二目标文件的属性信息时,确定该第二目标文件为大文件,从该第四关系型数据库中获取该第二目标文件的属性信息。
可选地,基于该第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件,包括:
当该第二目标文件为小文件、该第二目标文件的属性信息不包括删除标识,但包括该第二目标文件所在的合并文件的文件标识和该第二目标文件在该合并文件中的位置信息时,基于该第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取该第二目标文件所在的合并文件的属性信息,该第三关系型数据库用于存储合并文件的属性信息;根据该第二目标文件所在的合并文件的属性信息和该第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取该第二目标文件;
当该第二目标文件为大文件、且该第二目标文件的属性信息中包括该删除标识和该分布式存储系统为该第二目标文件分配的文件标识时,根据该分布式存储系统为该第二目标文件分配的文件标识,从该分布式存储系统中,获取该第二目标文件;
当该第二目标文件为大文件,且该第二目标文件的属性信息中不包括该删除标识,但包括该第二目标文件的本地存储地址时,根据该第二目标文件的本地存储地址,从本地存储中获取该第二目标文件。
可选地,根据该第二目标文件所在的合并文件的属性信息和该第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取该第二目标文件,包括:
根据该第二目标文件所在的合并文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件所在的合并文件;
根据该第二目标文件在该合并文件中的位置信息,从该第二目标文件所在的合并文件中获取该第二目标文件。
可选地,根据该第二目标文件所在的合并文件的属性信息和该第二目标文件在该合并文件中的位置信息,从该分布式存储系统中获取该第二目标文件,包括:
根据该第二目标文件所在的合并文件的属性信息,确定该分布式存储系统为该第二目标文件所在的合并文件分配的文件标识;
向该分布式存储系统发送文件获取请求,该文件获取请求中携带该分布式存储系统为该第二目标文件所在的合并文件分配的文件标识,以及该第二目标文件在该合并文件中的位置信息;
接收该分布式存储系统发送的该第二目标文件,该第二目标文件为该分布式存储系统基于该文件获取请求获取得到。
上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再一一赘述。
图3是本发明实施例提供的一种文件存储的方法流程图,该方法应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图3,该方法包括:
步骤301:当该应用服务器接收到该客户端发送的待存储的第一目标文件时,判断第一目标文件是否为小文件,小文件为文件大小小于第一预设阈值的文件,当第一目标文件为小文件时执行步骤302,当该第一目标文件不为小文件时,执行步骤306。
由于小文件为文件大小小于第一预设阈值的文件,因此,当该第一目标文件的文件大小小于第一预设阈值时,可以确定第一目标文件是小文件;当该第一目标文件的大小大于或等于第一预设阈值时,可以确定该第一目标文件是大文件。
需要说明的是,第一预设阈值可以由该应用服务器在判断该第一目标文件是否为小文件之前确定,比如,一种可能的实现方式为,该应用服务器接收用户输入的数值得到。第一预设阈值可以是1MB或者10MB,当然,在实际应用中,第一预设阈值还可以是其它数值,并可以由该应用服务器通过其它方式确定得到,比如,可以由应用服务器设置得到。
例如,该应用服务器接收到的文件1的文件大小为5MB,第一预设阈值为10MB。由于5小于10,也即是,文件1的文件大小小于第一预设阈值,因此,该应用服务器确定文件1为小文件。
步骤302:该应用服务器从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,第二预设阈值大于或等于第一预设阈值,合并文件为需要与小文件进行合并的文件。
由于合并文件为需要与小文件进行合并的文件,且为了避免直接通过分布式存储系统存储小文件而导致该分布式存储系统中出现大量磁盘碎片的问题,可以将该第一目标文件进行合并之后再进行存储,因此,该应用服务器可以从本地存储的合并文件中获取文件大小小于第二预设阈值的合并文件。
需要说明的是,该应用服务器确定第二预设阈值的方式,可以与该应用服务器确定第一预设阈值的方式相同。
其中,当应用服务器从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件时,可以直接获取本地存储的每个合并文件的文件大小,然后获取文件大小小于第二预设阈值的合并文件。当然,为了提高获取文件大小小于第二预设阈值的合并文件的效率,在应用服务器存储每个合并文件时,可以在本地存储每个合并文件的属性信息,因此,该应用服务器可以遍历本地存储的属性信息,基于遍历结果,从本地存储的合并文件中,选择属性信息包括第一标识的合并文件,并将选择的文件确定为文件大小小于第二预设阈值的合并文件。
需要说明的是,合并文件的属性信息可以包括应用服务器为该合并文件分配的文件标识、该合并文件的本地存储地址、以及第一标识、第二标识和第三标识中的一个。应用服务器为该合并文件分配的文件标识可以用于在应用服务器中唯一标识该合并文件。第一标识用于标识文件大小小于第二预设阈值且未存储至分布式存储系统的文件,即第一标识用于标识需要与小文件进行合并的合并文件。第二标识用于标识文件大小大于或等于第二预设阈值且未存储至分布式存储系统的文件,即第二标识用于标识不需要与小文件进行合并且待存储至该分布式存储系统的文件。第三标识用于标识已存储至该分布式存储系统的文件。其中,第一标识、第二标识和第三标识的形式均可以是一个字符或者字符串,比如,第一标识可以为0,第二标识可以为1,第三标识可以为2。当然,在实际应用中,合并文件的属性信息还可以包括其它与该合并文件有关的信息,比如,合成文件标识,该合成文件标识用于说明该文件为合成文件。
还需要说明的是,该合成文件标识可以是一个字符或者字符串,该合成文件标识可以由该应用服务器在存储合并文件的属性信息之前确定。
进一步地,由于关系型数据库有快速访问的属性,也即是,从关系型数据库中获取数据的速度比较快,因此,为了提高获取该合并文件的效率,进而提高存储第一目标文件的效率,该应用服务器可以将本地存储的属性信息存储到关系型数据库中,进而在应用服务器获取文件大小小于第二预设阈值的合并文件时,可以直接从关系型数据库中遍历本地存储的属性信息,并基于遍历结果获取文件大小小于第二预设阈值的合并文件。
其中,由前述可知,该应用服务器可以是一个服务器集群,因此,该关系型数据库可以与接收待存储的第一目标文件的服务器是同一个服务器,也可以与接收待存储的第一目标文件的服务器不是同一个服务器。该关系型数据库可以是基于SQL(Structured QueryLanguage,结构化查询语言)的数据库,比如MySQL或PostgreSQL等数据库,当然,在实际应用中,该关系型数据库还可以是其它数据库。
例如,该应用服务器从该关系型数据库中遍历本地存储的每个合并文件的属性信息,其中,本地存储有属性信息1、属性信息2和属性信息3,该应用服务器确定属性信息1中包括第一标识,属性信息2中包括第三标识,属性信息3中包括第二标识,因此,该应用服务器根据属性信息1中包括的本地存储地址,获取到文件2,文件2即为文件大小小于第二预设阈值的合并文件。
进一步地,该应用服务器可以通过下述两种可能的实现方式,将合并文件的属性信息存储到关系型数据库:
第一种可能的实现方式,为了提高存储属性信息的效率,该应用服务器可以将合并文件的属性信息存储至第一关系型数据库中,第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,大文件为文件大小大于或等于第一预设阈值的文件。
其中,如果该应用服务器通过第一种可能的实现方式存储合并文件的属性信息,当该应用服务器遍历本地存储的属性信息时,可以对第一关系型属性信息数据库中存储的包括合并文件标识的属性信息进行遍历。
进一步地,在第一种可能的实现方式中,为了便于对合并文件的属性信息进行管理,提高获取文件大小小于第二预设阈值的合并文件的效率,该应用服务器可以事先将第一关系型数据库划分为第一属性信息存储区、第二属性信息存储区和第三属性信息存储区,其中,第一属性信息存储区用于小文件的属性信息、第二属性信息存储区用于存储合并文件的属性信息,第三属性信息存储区用于存储大文件的属性信息,之后,在存储合并文件的属性信息时,将合并文件的属性信息存储在第二属性信息存储区。进而当该应用服务器遍历本地存储的属性信息时,可以对第一关系型属性信息数据库包括的第二属性信息存储区存储的属性信息进行遍历。
第二种可能的实现方式,由于该应用服务器中可能会同时存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,因此,为了便于对合并文件的属性信息进行管理,提高获取文件大小小于第二预设阈值的合并文件的效率,该应用服务器可以将合并文件的属性信息存储至第三关系型数据库中,第三关系型数据库用于存储合并文件的属性信息。
进一步地,为了确保能够将该第一目标文件与合并文件进行合并,继而提高存储第一目标文件的可靠性,该应用服务器可以判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件,当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,执行步骤302,当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件。
其中,应用服务器可以直接获取本地存储的每个合并文件的文件大小,从而判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件。当然,当本地存储有每个合并文件的属性信息时,应用服务器还可以判断本地存储的合并文件的属性信息中是否存在包括第一标识的属性信息时,如果是,则确定本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件,否则,确定本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件。
需要说明的是,在本地创建空白合并文件之后,该应用服务器还可以生成该空白合并文件的属性信息,该空白合并文件的属性信息包括该应用服务器为该空白合并文件分配的文件标识、该空白合并文件的本地存储地址和第一标识,并存储该空白合并文件的属性信息。
其中,该应用服务器可以将该空白合并文件的属性信息存储至第一关系型数据库或者第三关系型数据库。
进一步地,当该应用服务器将该空白合并文件的属性信息存储至第一关系型数据库时,可以将该空白合并文件的属性信息存储至第一关系型数据库包括的第二属性信息存储区。
步骤303:该应用服务器将第一目标文件写入至该合并文件中。
由于第一目标文件为小文件,获取到的合并文件也是较小的文件,因此可以将第一目标文件写入至该合并文件中,即将第一目标文件与获取到的合并文件进行合并,从而避免了分布式存储系统存储的小文件过多而导致该分布式系统出现大量磁盘碎片的问题。
其中,该应用服务器从该合并文件的属性信息中,获取该合并文件的本地存储地址,根据该合并文件的本地存储地址将该第一目标文件写入至该合并文件中。其中,可以直接将第一目标文件写入该合并文件的尾部。
进一步地,为了确保将第一目标文件写入该合并文件之后也能够准确地获取到第一目标文件,提高存储文件的可靠性,该应用服务器将第一目标文件写入至该合并文件之后,可以生成第一目标文件的属性信息,第一目标文件的属性信息包括该应用服务器为第一目标文件分配的文件标识、该应用服务器为该合并文件分配的文件标识和第一目标文件写入在该合并文件中的位置信息,并存储第一目标文件的属性信息。
其中,该应用服务器可以将第一目标文件的属性信息存储在第一关系型数据库中,或者,将第一目标文件的属性信息存储在第二关系型数据库中,第二关系型数据库用于存储小文件的属性信息。
进一步地,当该应用服务器将第一目标文件的属性信息存储至第一关系型数据库中时,该应用服务器可以将第一目标文件的属性信息存储至第一关系型数据库包括的第一属性信息存储区中。
需要说明的是,该应用服务器在生成第一目标文件的属性信息时,还可以在第一目标文件的属性信息中添加小文件标识,该小文件标识用于说明第一目标文件为小文件。该小文件标识可以与合并文件标识的形式相同。当然,第一目标文件的属性信息也可以包括用于说明与该文件有关的信息,比如文件名称、文件大小、该客户端的标识、文件生成时间和文件类型等,且这些信息可以由该客户端确定并由该第一目标文件所携带。
另外,由于将第一目标文件写入该合并文件之后,该合并文件的属性信息可能会发生变化,比如该合并文件的文件大小等,因此,在将第一目标文件写入该合并文件之后,该应用服务器可以对该合并文件的属性信息进行更新。
进一步地,该应用服务器将第一目标文件写入该合并文件之后,还可以该应用服务器为第一目标文件生成的文件标识发送该客户端,以便于该客户端基于该应用服务器为第一目标文件生成的文件标识,通过该应用服务器后续检索第一目标文件。
值得注意的是,基于上述步骤303的描述,当应用服务器在本地创建空白合并文件之后,该应用服务器可以将第一目标文件写入该空白合并文件中。
步骤304:该应用服务器判断写入后的该合并文件的文件大小是否大于或等于第二预设阈值。
由于写入后的合并文件的文件大小可能还是比较小,难以满足存储至该分布式存储系统的需要,因此,为了提高存储文件的可靠性,可以对写入后的合并文件的文件大小进行判断。
进一步地,为了对文件大小大于或等于第二预设阈值的合并文件与文件大小小于第二预设阈值的合并文件进行区分,确保将每个文件大小大于或等于第二预设阈值的合并文件进行存储,并避免将文件大小小于第二预设阈值的合并文件存储至该分布式存储系统,从而提高存储文件的可靠性,当该合并文件的文件大小大于该第二预设阈值时,可以将该合并文件的属性信息包括的第一标识替换为第二标识。
步骤305:当写入后的合并文件的文件大小大于或等于第二预设阈值时,该应用服务器将写入后的合并文件存储至分布式存储系统。
由于写入后的合并文件的文件大小大于或等于第二预设阈值,因此,可以将写入后的合并文件存储至该分布式存储系统。且由于该分布式存储系统只需要为该合并文件生成一个元数据,就可以对该合并文件中包括的多个小文件进行存储,而无需存储该合并文件中的多个小文件的元数据,因此,在进行文件检索时,可以在少量的元数据中检索该文件,从而提高了该分布式存储系统的存储性能。
其中,应用服务器在确定写入后的合并文件的文件大小大于或等于第二预设阈值时,可以直接将写入后的合并文件存储至分布式系统中,即该应用服务器可以向该分布式存储系统发送文件存储请求,该文件存储请求中携带写入后的该合并文件,当该分布式存储系统接收到该文件存储请求时,将写入后的该合并文件存储至该分布式存储系统中。
当然,为了将文件批量地存储至分布式存储系统,减少与分布式存储系统之间的交互次数,该应用服务器确定写入后的合并文件的文件大小大于或等于第二预设阈值时,可以将写入后的该合并文件存储在本地。之后,该应用服务器可以每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息,基于遍历结果,从本地存储的合并文件中,选择属性信息包括该第二标识的合并文件,将选择的合并文件存储至该分布式存储系统。
其中,该应用服务可以从第一关系型数据库中遍历本地存储的每个合并文件的属性信息,或者从第二关系型数据库中遍历本地存储的每个合并文件的属性信息。
需要说明的是,当该应用服务可以从第一关系型数据库中遍历本地存储的每个合并文件的属性信息时,可以对第一关系型属性信息数据库中存储的包括小文件标识的属性信息进行遍历,或者,对第一关系型数据库包括的第一属性信息存储区存储的属性信息进行遍历。
其中,上述先将合并文件存储在本地,之后每隔第一预设时间间隔再存储至分布式存储系统的方式,可以防止因网络异常、节点异常等情况,导致文件丢失的问题,提升分布式存储系统的数据安全性。
需要说明的是,第一预设时间间隔可以由该应用服务器在遍历本地存储的每个合并文件的属性信息之前确定,比如,一种可能的实现方式为,该应用服务器接收用户输入的时长,并将接收到的时长确定为第一预设时间间隔。
例如,该应用服务器对本地存储的每个合并文件进行遍历,得到属性信息1、属性信息2、属性信息3,其中,属性信息3中包括第三标识,因此,该应用服务器根据属性信息3包括的本地存储地址,获取到文件3,将文件3存储至该分布式存储系统。
进一步地,为了避免将同一合并文件重复存储至该分布式存储系统,提高存储文件的可靠性,将合并文件存储至该分布式存储系统之后,该应用服务器可以确定该分布式存储系统为该合并文件分配的文件标识,在该合并文件的属性信息中添加该分布式存储系统为该合并文件分配的文件标识,并将该文件的属性信息包括的第二标识替换为第三标识,第三标识用于标识已存储至该分布式存储系统的文件。
其中,该分布式存储系统可以在存储该合并文件时,为该合并文件分配一个文件标识,并将该文件标识发送给该应用服务器,之后,该应用服务器可以接收该文件标识,从而确定该分布式存储系统为该合并文件分配的文件标识。当然,在实际应用中,该应用服务器还可以通过其它方式来确定该分布式存储系统为该合并文件分配的文件标识。
为了进一步避免将同一合并文件重复存储至该分布式存储系统,并降低该应用服务器的负载压力,从而提高存储文件的可靠性和效率,该应用服务器可以每隔第二预设时间间隔,遍历本地存储中的每个合并文件的属性信息,基于遍历结果,从本地存储的合并文件中,选择属性信息包括第三标识的合并文件,将选择的合并文件删除。当然,实际应用中,应用服务器可以将合并文件存储至分布式存储系统之后,立即将本地存储的该合并文件删除。
需要说明的是,该应用服务器确定第二预设时间间隔的方式可以与确定第一预设时间间隔的方式类似,本发明实施例不再一一赘述。
进一步地,在将本地存储的合并文件删除之后,还可以在该合并文件的属性信息中添加删除标识,以说明已经将本地存储的该文件删除。
步骤306:该应用服务器将第一目标文件存储至该分布式存储系统。
由于第一目标文件是大文件,因此,可以直接将第一目标文件存储至该分布式存储系统。当然,该应用服务器将第一目标文件存储至分布式存储系统之前,还可以将第一目标文件存储至本地,并生成第一目标文件的属性信息,该属性信息中包括第二标识,存储第一目标文件的属性信息。
需要说明的是,由于第一目标文件是大文件,因此,该应用服务器在生成第一目标文件的属性信息时,还可以在第一目标文件的属性信息中携带大文件标识,以说明第一目标文件为大文件,该大文件标识可以与合并文件标识的形式相同。
其中,由于第一目标文件是大文件,因此,该应用服务器在生成第一目标文件的属性信息之后,可以将第一目标文件的属性信息存储至第一关系型数据库中,或者将第一目标文件的属性信息存储至第四关系型数据库中,第四关系型数据库中用于存储大文件的属性信息。
进一步地,当该应用服务器将第一目标文件的属性信息存储至第一关系型数据库中,该应用服务器可以将第一目标文件的属性信息存储至第一关系型数据库包括的第三属性信息存储区中。
当然,为了将文件批量地存储至分布式存储系统,减少与分布式存储系统之间的交互次数,该应用服务器可以通过每隔第一预设时间间隔,遍历本地存储中的每个大文件的属性信息,基于遍历结果,从本地存储的大文件中,选择属性信息包括第二标识的大文件,从而选择第一目标文件,并将第一目标文件存储至该分布式存储系统。
其中,当该应用服务器遍历本地存储中的每个大文件的属性信息时,可以从第一关系型数据库中遍历本地存储的每个大文件的属性信息,或者,从第四关系型数据库中遍历本地存储的每个大文件的属性信息。
需要说明的是,当从第一关系型数据库中遍历本地存储的每个大文件的属性信息时,该应用服务器可以从第一关系型数据库中存储的包括大文件标识的属性信息进行遍历,或者,从第一关系型数据库包括的第三属性信息存储区存储的属性信息进行遍历。
进一步地,在将第一目标文件存储至该分布式存储系统,该应用服务器还可以确定该分布式存储系统为第一目标文件分配的文件标识,在本地存储的第一目标文件的属性信息中添加该分布式存储系统为第一目标文件分配的文件标识,并将第一目标文件的属性信息中包括的第二标识替换为第三标识。
当然,为了将已存储至该分布式存储系统的大文件从本地删除,以节省本地存储空间,该应用服务器可以每隔第二预设时间间隔,遍历本地存储的每个大文件的属性信息,基于遍历结果,从本地存储的大文件中,选择属性信息包括第三标识的合并文件,将所选择的合并文件删除,并在该大文件的属性信息中添加删除标识。
经过上述步骤,该应用服务器已经完成了对客户端发送的第一目标文件进行判断,基于判断结果,对大文件和小文进采取了不同的方式进行存储。且该应用服务器所存储的属性信息可以包括下述两种可能的情况:
第一种可能的情况,该应用服务器中包括第一关系型数据库,第一关系型数据库中存储小文件的属性信息、合并文件的属性信息和大文件的属性信息。
其中,在第一种可能的情况下,第一关系型数据库存储的属性信息中可以携带小文件标识、合并文件标识和大文件标识中的至少一个,以说明该属性信息是小文件的属性信息、合并文件的属性信息或大文件的属性信息。或者,第一关系型数据库包括第一属性信息存储区、第二属性信息存储区和第三属性信息存储区,且第一属性信息存储区用于存储小文件的属性信息,第二属性信息存储区用于存储合并文件的属性信息,第三属性信息存储区用于大文件的属性信息。
第二种可能的情况,该应用服务器中包括第二关系型数据库、第三关系型数据库和第四关系型数据库,其中,第二关系型数据库中存储有小文件的属性信息,第三关系型数据库中存储有合并文件的属性信息,第四关系型数据库中存储有大文件的属性信息。
在本发明实施例中,首先,该应用服务器在接收到待存储的第一目标文件时,不是直接将第一目标文件存储至该分布式存储系统,而是根据第一目标文件的文件大小判断第一目标文件是否为小文件,如果第一目标文件为小文件,将第一目标文件写入至本地存储的文件大小小于第二预设阈值的合并文件中,并在合并文件大于或等于第二预设阈值时,将该合并文件存储至该分布式存储系统,因此,避免了直接将小文件存储至该分布式存储系统而导致该分布式系统出现大量磁盘碎片的问题,提高了分布式存储系统的存储性能。其次,该应用服务器还可以将大文件的属性信息、小文件的属性信息和合并文件的属性信息存储至关系型数据库中,便于基于关系型数据库对存储的文件进行管理,提高了存储文件的存储性能。另外,该应用服务器可以将大文件的属性信息、小文件的属性信息和合并文件的属性信息存储在同一关系型数据库,以提高存储属性信息的效率,或者,分别将大文件的属性信息、小文件的属性信息和合并文件的属性信息存储在不同的关系型数据库,即对不同文件的属性信息进行分类存储,从而进一步提高了存储文件的存储性能。最后,由于该应用服务器在向该分布式存储系统存储文件时,并不是立即将该文件存储至该分布式存储系统,而是先将文件存储在本地,确保了当该分布式存储系统故障时也能够获取到该文件,提高了存储文件的可靠性。
图4是本发明实施例提供的一种文件检索的方法流程图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图3,该方法包括:
步骤401:该应用服务器接收客户端发送的文件检索请求,该文件检索请求携带待检索的第二目标文件的索引信息。
由于该应用服务器能够对客户端发送的文件进行存储,且该存储文件之后,该客户端可能还需要再次获取存储的文件,因此,该客户端可以接收客户端发送的文件检索请求,该应用服务器可以响应该文件检索请求。
其中,由前述可知,应用服务器中存储的文件的属性信息可以包括文件名称、文件大小、该客户端的标识、文件生成时间、文件类型、该应用服务器为该文件分配的文件标识等信息,因此,为了便于该应用服务器能够准确地根据第二目标文件的索引信息检索到第二目标文件,该第二目标文件的索引信息可以包括文件名称、文件大小、该客户端的标识、文件生成时间、文件类型、该应用服务器为该文件分配的文件标识中的至少一个信息。
步骤402:该应用服务器基于该索引信息,对本地存储的属性信息进行遍历,以获取第二目标文件的属性信息。
由于第二目标文件的索引信息为第二目标文件的属性信息中包括的信息,因此,可以基于该索引信息,从本地存储的属性信息中检索第二目标文件的属性信息。
由前述可知,该应用服务器存储的属性信息可能包括两种可能的情况,因此,该应用服务器对基于该索引信息,对本地存储的属性信息进行遍历,也包括两种可能的实现方式:
第一种可能的实现方式,该应用服务器基于该索引信息,对本地存储的第二关系型数据库进行遍历,当第二关系型数据库包括第二目标文件的属性信息时,确定第二目标文件为小文件,从第二关系型数据库中获取第二目标文件的属性信息,当第二关系型数据库不包括第二目标文件的属性信息时,基于该索引信息,对第四关系型数据库进行遍历,当第四关系型数据库包括第二目标文件的属性信息时,确定第二目标文件为大文件,从第四关系型数据库中获取第二目标文件的属性信息。
例如,如果该应用服务器接收到的文件检索请求中携带的第二目标文件的索引信息为ID1,该应用服务器基于ID1,对第二关系型数据库进行遍历,确定第二关系型数据库中不存在包括ID1的属性信息,即确定第二关系型数据库中不包括第二目标文件的属性信息,因此,该应用服务器对第四关系型数据库进行遍历,确定属性信息1包括ID1,即确定第二目标文件为大文件,将属性信息1确定为第二目标文件的属性信息。如果该应用服务器接收到的文件检索请求中携带的第二目标文件标识的索引信息为ID2,该应用服务器基于ID2,对第二关系型数据库进行遍历,确定属性信息2中包括ID2,即确定第二目标文件为小文件,将属性信息2确定为第二目标文件的属性信息。
需要说明的是,在第一种可能的实现方式中,该应用服务器先基于该索引信息,对第二关系型数据库进行遍历,即先确定第二目标文件是否为小文件,当然,在另一种可能的实现方式中,该应用服务器也可以先基于该索引信息,对第四关系型数据库进行遍历,即先确定第二目标文件是否为大文件,当第四关系型数据库中包括第二目标文件的属性信息时,确定第二目标文件为大文件,从第四关系型数据库中获取第二目标文件的属性信息。当第四关系型数据库中不包括第二目标文件的属性信息时,基于该索引信息,对第二关系型数据库进行遍历,当第二关系型数据库包括第二目标文件的属性信息时,确定第二目标文件为小文件,从第二关系型数据库中获取第二目标文件的属性信息。
第二种可能的实现方式,该应用服务器基于该索引信息,对本地存储的第一关系型数据库进行遍历,以获取第二目标文件的属性信息。
其中,在第二种可能的实现方式中,当第一关系型数据库存储的属性信息中包括小文件标识、合成文件标识或大文件标识时,该应用服务器可以基于该索引信息,对包括小文件标识的属性信息进行遍历,当包括小文件标识的属性信息中不存在第二目标文件的属性信息时,对包括大文件的属性信息进行遍历。当第一关系型数据库包括第一属性信息存储区、第二属性信息存储区或第三属性信息存储区时,该应用服务器可以基于该索引信息,对第一属性信息存储区中的属性信息进行遍历,当第一属性信息存储区没有存储第二目标文件的属性信息时,对第三属性信息存储区中的属性信息进行遍历。
另外,如果应用服务器基于该索引信息,对本地存储的属性信息进行遍历,但无法获取到第二目标文件的属性信息,也即是,该应用服器本地没有存储第二目标文件的属性信息时,可以向该客户端发送检索失败信息,以说明该应用服务器和该分布式存储系统没有存储第二目标文件。
步骤403:该应用服务器基于第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取第二目标文件。
由于文件的属性信息中包括与该文件在该应用服务器或该分布式存储系统的存储位置有关的信息,因此,该应用服务器可以基于该目标文件的属性信息获取到第二目标文件。
其中,根据该应用服务器存储属性信息的不同情况,该应用服务器可以通过下述两种可能的实现方式来基于第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取第二目标文件:
第一种可能的实现方式,该应用服务器中包括第二关系型数据库、第三关系型数据库和第四关系型数据库。当第二目标文件为小文件、第二目标文件的属性信息不包括删除标识,但包括第二目标文件所在的合并文件的文件标识和第二目标文件在合并文件中的位置信息时,该应用服务器基于第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取第二目标文件所在的合并文件的属性信息;根据第二目标文件所在的合并文件的属性信息和第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取第二目标文件,当第二目标文件为大文件、且第二目标文件的属性信息中包括该删除标识和该分布式存储系统为该第二目标文件分配的文件标识时,根据该分布式存储系统为该第二目标文件分配的文件标识,从该分布式存储系统中,获取第二目标文件,当第二目标文件为大文件,且第二目标文件的属性信息中不包括该删除标识,但包括第二目标文件的本地存储地址时,根据第二目标文件的本地存储地址,从本地存储中获取第二目标文件。
其中,当该应用服务器根据该分布式存储系统为该第二目标文件分配的文件标识,从该分布式存储系统中获取第二目标文件时,该应用服务器可以向该分布式存储系统发送文件获取请求,该文件获取请求中携带该分布式存储系统为第二目标文件分配的文件标识,当该分布式存储系统接收到该文件获取请求时,根据该分布式存储系统为第二目标文件分配的文件标识,确定第二目标文件的元数据,根据第二目标文件的元数据,获取第二目标文件,将第二目标文件发送给该应用服务器,该应用服务器可以接收该分布式存储系统发送的第二目标文件,并将第二目标文件发送给该客户端。
需要说明的是,第二目标文件的元数据可以由该分布式存储系统在存储该第二目标文件时确定,该元数据中可以包括该分布式存储系统为第二目标文件分配的文件标识、第二目标文件在该分布式存储系统中的存储地址。当然,在实际应用中,该元数据还可以包括其它与该目标数据有关的信息。
例如,第二目标文件为大文件,第二目标文件的属性信息为属性信息。如果属性信息1中包括本地存储地址为ADD1,且不包括删除标识,因此,该应用服务器根据ADD1,从本地存储获取第二目标文件。如果属性信息1中包括删除标识和分布式存储地址add1,因此,该应用服务器根据add1,从该分布式存储系统获取第二目标文件。或者,第二目标文件为小文件,第二目标文件的属性信息为属性信息2。如果属性信息2中不包括删除标识,且包括该应用服务器为第二目标文件所在的合并文件分配的文件标识为ID3,和第二目标文件在合并文件中位置信息为dizhi1,因此,该应用服务器根据该应用服务器为第二目标文件所在的合并文件分配的文件标识为ID3,确定该第二目标文件所在的合并文件的属性信息为属性信息3,该应用服务器根据属性信息3和dizhi1,从本地存储或该分布式存储系统中获取第二目标文件。
进一步地,该应用服务器可以通过下述两种可能的策略根据第二目标文件所在的合并文件的属性信息和第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取第二目标文件:
第一种可能的策略,该应用服务器根据第二目标文件所在的合并文件的属性信息,从本地存储或者该分布式存储系统中获取第二目标文件所在的合并文件,根据该第二目标文件在该合并文件中的位置信息,从该第二目标文件所在的合并文件中获取该第二目标文件。
需要说明的是,该应用服务器根据第二目标文件所在的合并文件的属性信息,从本地存储或分布式存储系统获取第二目标文件所在的合并文件的步骤,可以与该应用服务器根据第二目标文件的属性信息,从本地存储或该分布式存储系统获取第二目标文件的步骤相同,本发明实施例不再一一赘述。
第二种可能的策略,该应用服务器根据第二目标文件所在的合并文件的属性信息,确定该分布式存储系统为第二目标文件所在的合并文件分配的文件标识,向该分布式存储系统发送文件获取请求,该文件获取请求中携带该分布式存储系统为第二目标文件所在的合并文件分配的文件标识,以及第二目标文件在该合并文件中的位置信息,当该分布式存储系统接收到该文件获取请求时,根据该分布式存储系统为第二目标文件所在的合并文件分配的文件标识,从该分布式存储系统中获取第二目标文件所在的合并文件,根据第二目标文件在该合并文件中的位置信息,从该合并文件中获取第二目标文件,将第二目标文件发送给该应用服务器,该应用服务器接收该分布式存储系统发送的第二目标文件,第二目标文件为分布式存储系统基于该文件获取请求获取得到。
第二种可能的实现方式,该应用服务器中包括第一关系型数据库。当第二目标文件的属性信息中包括删除标识和该分布式存储系统为第二目标文件分配的文件标识时,该应用服务器根据分布式存储系统为该第二目标文件分配的文件标识,从该分布式存储系统中,获取该第二目标文件,当第二目标文件的属性信息中不包括该删除标识,但包括该第二目标文件的本地存储地址时,根据第二目标文件的本地存储地址,从本地存储中获取第二目标文件;当第二目标文件的属性信息中不包括该删除标识,但包括第二目标文件所在的合并文件的文件标识和第二目标文件在该合并文件中的位置信息时,基于第二目标文件所在的合并文件的文件标识,对第一关系型数据库进行遍历,以获取第二目标文件所在的合并文件的属性信息;根据第二目标文件所在的合并文件的属性信息和第二目标文件在该合并文件中的位置信息,从本地存储或者该分布式存储系统中获取第二目标文件。
需要说明的是,当该应用服务器基于第二目标文件所在的合并文件的文件标识,对第一关系型数据库进行遍历时,可以对第一关系型数据库中包括合并文件标识的属性信息进行遍历,或者,可以对第一关系型数据库包括的第二属性信息存储区中的属性信息进行遍历。
在本发明实施例中,首先,该应用服务器在接收到文件检索请求时,不是直接从该分布式存储系统中获取待检索的第二目标文件,而是先基于该索引信息,对本地存储的属性信息进行遍历,从而获取到第二目标文件的属性信息,再基于第二目标文件的属性信息,从本地存储或分布式存储系统获取第二目标文件,减少了该分布式存储系统的压力,从而提高了分布式存储系统的存储性能。其次,为了提高在本地遍历属性信息的效率,可以对第一关系型数据库中遍历,从而获取第二目标文件的属性信息,且为了进一步提高在本地遍历属性信息的效率和准确率,该应用服务器可以先对第二关系型数据库或者第四关系型数据库进行遍历,从而先确定第二目标文件是小文件或大文件,如果确定第二目标文件是小文件,可以基于该应用服务器为第二目标文件所在的合并文件分配的文件标识,对第三关系型数据库进行遍历,获取第二目标文件所在的合并文件的属性信息。另外,由于该应用服务器在获取第二目标文件时,只需要在本地未存储第二目标文件或者第二目标文件所在的合并文件时,从该分布式存储系统获取第二目标文件或者第二目标文件所在的合并文件,进一步减少了该分布式存储系统的压力,提高了该分布式存储系统的存储性能。
图5是本发明实施例提供的一种文件存储的装置框图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图5,该装置包括:第一判断模块501,获取模块502,写入模块503和第一存储模块504。
第一判断模块501,用于当接收到客户端发送的待存储的第一目标文件时,判断该第一目标文件是否为小文件,该小文件为文件大小小于第一预设阈值的文件;
获取模块502,用于当该第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,该第二预设阈值大于或等于该第一预设阈值,该合并文件为需要与小文件进行合并的文件;
写入模块503,用于将该第一目标文件写入至该合并文件中,并判断写入后的该合并文件的文件大小是否大于或等于该第二预设阈值;
第一存储模块504,用于当写入后的该合并文件的文件大小大于或等于该第二预设阈值时,将写入后的该合并文件存储至该分布式存储系统。
在本发明实施例中,该应用服务器在接收到待存储的第一目标文件时,不是直接将第一目标文件存储至该分布式存储系统,而是根据第一目标文件的文件大小判断第一目标文件是否为小文件,如果第一目标文件为小文件,将第一目标文件写入至本地存储的文件大小小于第二预设阈值的合并文件中,并在合并文件大于或等于第二预设阈值时,将该合并文件存储至该分布式存储系统,因此,避免了直接将小文件存储至该分布式存储系统而导致该分布式系统出现大量磁盘碎片的问题,提高了分布式存储系统的存储性能。
图6是本发明实施例提供的一种文件检索的装置框图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图6,该装置包括:接收模块601,遍历模块602和获取模块603。
接收模块601,用于接收客户端发送的文件检索请求,该文件检索请求携带待检索的第二目标文件的索引信息;
遍历模块602,用于基于该索引信息,对本地存储的属性信息进行遍历,以获取该第二目标文件的属性信息;
获取模块603,用于基于该第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件。
可选地,该遍历模块602包括:
第一遍历子模块,用于基于该索引信息,对本地存储的第一关系型数据库进行遍历,以获取该第二目标文件的属性信息,该第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,该小文件为文件大小小于第一预设阈值的文件,该合并文件为需要与小文件进行合并的文件,该大文件为文件大小大于或等于该第一预设阈值的文件。
在本发明实施例中,该应用服务器在接收到文件检索请求时,不是直接从该分布式存储系统中获取待检索的第二目标文件,而是先基于该索引信息,对本地存储的属性信息进行遍历,从而获取到第二目标文件的属性信息,再基于第二目标文件的属性信息,从本地存储或分布式存储系统获取第二目标文件,减少了该分布式存储系统的压力,从而提高了分布式存储系统的存储性能。
图7是本发明实施例提供的一种文件存储的装置框图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图7,该装置包括:接收机701,发射机702、处理器703、存储器704和通信总线705。接收机701,发射机702、处理器703和存储器704可以通过通信总线705连接。
接收机701,用于接收客户端发送的目标文件,当然,在实际应用中该接收机701还可以接收其它与存储文件有关的信息。
发射机702,用于将需要存储至该分布式存储系统的文件发送给该分布式存储系统,当然,在实际应用中,发射机702还可以向该客户端或该分布式存储系统发送其它与存储文件有关的信息。
处理器703,用于:
当接收到客户端发送的待存储的第一目标文件时,判断该第一目标文件是否为小文件,该小文件为文件大小小于第一预设阈值的文件;
当该第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,该第二预设阈值大于或等于该第一预设阈值,该合并文件为需要与小文件进行合并的文件;
将该第一目标文件写入至该合并文件中,并判断写入后的该合并文件的文件大小是否大于或等于该第二预设阈值;
当写入后的该合并文件的文件大小大于或等于该第二预设阈值时,将写入后的该合并文件存储至该分布式存储系统。
在本发明实施例中,该应用服务器在接收到待存储的第一目标文件时,不是直接将第一目标文件存储至该分布式存储系统,而是根据第一目标文件的文件大小判断第一目标文件是否为小文件,如果第一目标文件为小文件,将第一目标文件写入至本地存储的文件大小小于第二预设阈值的合并文件中,并在合并文件大于或等于第二预设阈值时,将该合并文件存储至该分布式存储系统,因此,避免了直接将小文件存储至该分布式存储系统而导致该分布式系统出现大量磁盘碎片的问题,提高了分布式存储系统的存储性能。
图8是本发明实施例提供的一种文件检索的装置框图,应用于文件存储系统包括的应用服务器中,该文件存储系统还包括分布式存储系统,参见图8,该装置包括:接收机801,发射机802、处理器803、存储器804和通信总线805。接收机801,发射机802、处理器803和存储器804可以通过通信总线805连接。
发射机802,用于向该分布式存储系统发送文件获取请求,或者向客户端发送第二目标文件,以及其它与文件检索有关的信息;
存储器804,用于存储第二目标文件、第二目标文件所在的合并文件、第二目标文件的属性信息、第二目标文件所在的合并文件的属性信息,以及其它与文件检索有关的信息。
接收机801,用于接收客户端发送的文件检索请求,该文件检索请求携带待检索的第二目标文件的索引信息;
处理器803,用于基于该索引信息,对本地存储的属性信息进行遍历,以获取该第二目标文件的属性信息;
处理器803,还用于基于该第二目标文件的属性信息,从本地存储或者该分布式存储系统中获取该第二目标文件。
在本发明实施例中,该应用服务器在接收到文件检索请求时,不是直接从该分布式存储系统中获取待检索的第二目标文件,而是先基于该索引信息,对本地存储的属性信息进行遍历,从而获取到第二目标文件的属性信息,再基于第二目标文件的属性信息,从本地存储或分布式存储系统获取第二目标文件,减少了该分布式存储系统的压力,从而提高了分布式存储系统的存储性能。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (34)
1.一种文件存储的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,其特征在于,所述方法包括:
当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;
当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;
将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;
当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。
2.如权利要求1所述的方法,其特征在于,所述将所述第一目标文件写入至所述合并文件之后,还包括:
生成所述第一目标文件的属性信息,所述第一目标文件的属性信息包括所述应用服务器为所述第一目标文件分配的文件标识、所述应用服务器为所述合并文件分配的文件标识和所述第一目标文件写入在所述合并文件中的位置信息;
存储所述第一目标文件的属性信息。
3.如权利要求2所述的方法,其特征在于,所述存储所述第一目标文件的属性信息,包括:
将所述第一目标文件的属性信息存储至第一关系型数据库中,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述大文件为文件大小大于或等于所述第一预设阈值的文件;或,
将所述第一目标文件的属性信息存储至第二关系型数据库中,所述第二关系型数据库用于存储小文件的属性信息。
4.如权利要求1所述的方法,其特征在于,所述从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件之前,还包括:
判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;
当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,执行从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件的步骤;
当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中。
5.如权利要求4所述的方法,其特征在于,所述在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中之后,还包括:
生成所述空白合并文件的属性信息,所述空白合并文件的属性信息包括所述应用服务器为所述空白合并文件分配的文件标识、所述空白合并文件的本地存储地址和第一标识,所述第一标识用于标识文件大小小于所述第二预设阈值且未存储至所述分布式存储系统的文件;
存储所述空白合并文件的属性信息。
6.如权利要求5所述的方法,其特征在于,所述存储所述空白合并文件的属性信息,包括:
将所述空白合并文件的属性信息存储至第一关系型数据库中;或,
将所述空白合并文件的属性信息存储至第三关系型数据库中,所述第三关系型数据库用于存储合并文件的属性信息。
7.如权利要求1所述的方法,其特征在于,所述判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值之后,还包括:
当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将所述合并文件的属性信息包括的第一标识替换为第二标识,所述第二标识用于标识文件大小大于或等于所述第二预设阈值且未存储至所述分布式存储系统的文件。
8.如权利要求1-7任一所述的方法,其特征在于,所述将写入后的所述合并文件存储至分布式存储系统,包括:
每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;
将所选择的合并文件存储至所述分布式存储系统。
9.如权利要求8所述的方法,其特征在于,所述将所选择的合并文件存储至所述分布式存储系统之后,还包括:
确定所述分布式存储系统为所选择的合并文件分配的文件标识;
在所选择的合并文件的属性信息中添加所述分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的所述第二标识替换为第三标识,所述第三标识用于标识已存储至所述分布式存储系统的文件。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;
基于遍历结果,从本地存储的合并文件中,选择属性信息包括所述第三标识的合并文件;
将所选择的合并文件删除。
11.一种文件检索的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,其特征在于,所述方法包括:
接收客户端发送的文件检索请求,所述文件检索请求携带待检索的第二目标文件的索引信息;
基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息;
基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
12.如权利要求11所述的方法,其特征在于,所述基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息,包括:
基于所述索引信息,对本地存储的第一关系型数据库进行遍历,以获取所述第二目标文件的属性信息,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述小文件为文件大小小于第一预设阈值的文件,所述合并文件为需要与小文件进行合并的文件,所述大文件为文件大小大于或等于所述第一预设阈值的文件。
13.如权利要求12所述的方法,其特征在于,所述基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
当所述第二目标文件的属性信息中包括删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件,所述删除标识用于标识所述第二目标文件已在本地删除;
当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件;
当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对所述第一关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
14.如权利要求11所述的方法,其特征在于,所述基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息,包括:
基于所述索引信息,对本地存储的第二关系型数据库进行遍历,所述第二关系型数据库用于存储小文件的属性信息;
当所述第二关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为小文件,从所述第二关系型数据库中获取所述第二目标文件的属性信息;
当所述第二关系型数据库不包括所述第二目标文件的属性信息时,基于所述索引信息,对所述第四关系型数据库进行遍历,所述第四关系型数据库用于存储大文件的属性信息;
当所述第四关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为大文件,从所述第四关系型数据库中获取所述第二目标文件的属性信息。
15.如权利要求14所述的方法,其特征在于,所述基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
当所述第二目标文件为小文件、所述第二目标文件的属性信息不包括删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息,所述第三关系型数据库用于存储合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件;
当所述第二目标文件为大文件、且所述第二目标文件的属性信息中包括所述删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件;
当所述第二目标文件为大文件,且所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件。
16.如权利要求13或15所述的方法,其特征在于,所述根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件,包括:
根据所述第二目标文件所在的合并文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件所在的合并文件;
根据所述第二目标文件在所述合并文件中的位置信息,从所述第二目标文件所在的合并文件中获取所述第二目标文件。
17.如权利要求13或15所述的方法,其特征在于,所述根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从所述分布式存储系统中获取所述第二目标文件,包括:
根据所述第二目标文件所在的合并文件的属性信息,确定所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识;
向所述分布式存储系统发送文件获取请求,所述文件获取请求中携带所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识,以及所述第二目标文件在所述合并文件中的位置信息;
接收所述分布式存储系统发送的所述第二目标文件,所述第二目标文件为所述分布式存储系统基于所述文件获取请求获取得到。
18.一种文件存储的装置,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,其特征在于,所述装置包括:
第一判断模块,用于当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;
获取模块,用于当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;
写入模块,用于将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;
第一存储模块,用于当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。
19.如权利要求18所述的装置,其特征在于,所述装置还包括:
第一生成模块,用于生成所述第一目标文件的属性信息,所述第一目标文件的属性信息包括所述应用服务器为所述第一目标文件分配的文件标识、所述应用服务器为所述合并文件分配的文件标识和所述第一目标文件写入在所述合并文件中的位置信息;
第二存储模块,用于存储所述第一目标文件的属性信息。
20.如权利要求19所述的装置,其特征在于,所述第二存储模块包括:
第一存储子模块,用于将所述第一目标文件的属性信息存储至第一关系型数据库中,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述大文件为文件大小大于或等于所述第一预设阈值的文件;或,
第二存储子模块,用于将所述第一目标文件的属性信息存储至第二关系型数据库中,所述第二关系型数据库用于存储小文件的属性信息。
21.如权利要求18所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;
触发模块,用于当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,触发所述获取模块从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件;
创建模块,用于当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中。
22.如权利要求21所述的装置,其特征在于,所述装置还包括:
第二生成模块,用于生成所述空白合并文件的属性信息,所述空白合并文件的属性信息包括所述应用服务器为所述空白合并文件分配的文件标识、所述空白合并文件的本地存储地址和第一标识,所述第一标识用于标识文件大小小于所述第二预设阈值且未存储至所述分布式存储系统的文件;
第三存储模块,用于存储所述空白合并文件的属性信息。
23.如权利要求22所述的装置,其特征在于,所述第三存储模块包括:
第三存储子模块,用于将所述空白合并文件的属性信息存储至第一关系型数据库中;或,
第四存储子模块,用于将所述空白合并文件的属性信息存储至第三关系型数据库中,所述第三关系型数据库用于存储合并文件的属性信息。
24.如权利要求18所述的装置,其特征在于,所述装置还包括:
替换模块,用于当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将所述合并文件的属性信息包括的第一标识替换为第二标识,所述第二标识用于标识文件大小大于或等于所述第二预设阈值且未存储至所述分布式存储系统的文件。
25.如权利要求18-24任一所述的装置,其特征在于,所述第一存储模块包括:
遍历子模块,用于每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;
选择子模块,用于基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;
第五存储子模块,用于将所选择的合并文件存储至所述分布式存储系统。
26.如权利要求25所述的装置,其特征在于,所述第一存储模块还包括:
确定子模块,用于确定所述分布式存储系统为所选择的合并文件分配的文件标识;
添加子模块,用于在所选择的合并文件的属性信息中添加所述分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的所述第二标识替换为第三标识,所述第三标识用于标识已存储至所述分布式存储系统的文件。
27.如权利要求26所述的装置,其特征在于,所述装置还包括:
遍历模块,用于每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;
选择模块,用于基于遍历结果,从本地存储的合并文件中,选择属性信息包括所述第三标识的合并文件;
删除模块,用于将所选择的合并文件删除。
28.一种文件检索的装置,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的文件检索请求,所述文件检索请求携带待检索的第二目标文件的索引信息;
遍历模块,用于基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息;
获取模块,用于基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
29.如权利要求28所述的装置,其特征在于,所述遍历模块包括:
第一遍历子模块,用于基于所述索引信息,对本地存储的第一关系型数据库进行遍历,以获取所述第二目标文件的属性信息,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述小文件为文件大小小于第一预设阈值的文件,所述合并文件为需要与小文件进行合并的文件,所述大文件为文件大小大于或等于所述第一预设阈值的文件。
30.如权利要求29所述的装置,其特征在于,所述获取模块包括:
第一获取子模块,用于当所述第二目标文件的属性信息中包括删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件,所述删除标识用于标识所述第二目标文件已在本地删除;
第二获取子模块,用于当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件;
第三获取子模块,用于当所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对所述第一关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。
31.如权利要求28所述的装置,其特征在于,所述遍历模块包括:
第二遍历子模块,用于基于所述索引信息,对本地存储的第二关系型数据库进行遍历,所述第二关系型数据库用于存储小文件的属性信息;
第四获取子模块,用于当所述第二关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为小文件,从所述第二关系型数据库中获取所述第二目标文件的属性信息;
第三遍历子模块,用于当所述第二关系型数据库不包括所述第二目标文件的属性信息时,基于所述索引信息,对所述第四关系型数据库进行遍历,所述第四关系型数据库用于存储大文件的属性信息;
第五获取子模块,用于当所述第四关系型数据库包括所述第二目标文件的属性信息时,确定所述第二目标文件为大文件,从所述第四关系型数据库中获取所述第二目标文件的属性信息。
32.如权利要求31所述的装置,其特征在于,所述获取模块包括:
第三获取子模块,用于当所述第二目标文件为小文件、所述第二目标文件的属性信息不包括删除标识,但包括所述第二目标文件所在的合并文件的文件标识和所述第二目标文件在所述合并文件中的位置信息时,基于所述第二目标文件所在的合并文件的文件标识,对第三关系型数据库进行遍历,以获取所述第二目标文件所在的合并文件的属性信息,所述第三关系型数据库用于存储合并文件的属性信息;根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件;
第一获取子模块,用于当所述第二目标文件为大文件、且所述第二目标文件的属性信息中包括所述删除标识和所述分布式存储系统为所述第二目标文件分配的文件标识时,根据所述分布式存储系统为所述第二目标文件分配的文件标识,从所述分布式存储系统中,获取所述第二目标文件;
第二获取子模块,用于当所述第二目标文件为大文件,且所述第二目标文件的属性信息中不包括所述删除标识,但包括所述第二目标文件的本地存储地址时,根据所述第二目标文件的本地存储地址,从本地存储中获取所述第二目标文件。
33.如权利要求30或32所述的装置,其特征在于,所述第三获取子模块还用于:
根据所述第二目标文件所在的合并文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件所在的合并文件;
根据所述第二目标文件在所述合并文件中的位置信息,从所述第二目标文件所在的合并文件中获取所述第二目标文件。
34.如权利要求30或32所述的装置,其特征在于,所述第三获取子模块还用于:
根据所述第二目标文件所在的合并文件的属性信息,确定所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识;
向所述分布式存储系统发送文件获取请求,所述文件获取请求中携带所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识,以及所述第二目标文件在所述合并文件中的位置信息;
接收所述分布式存储系统发送的所述第二目标文件,所述第二目标文件为所述分布式存储系统基于所述文件获取请求获取得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146725.7A CN108614837B (zh) | 2016-12-13 | 2016-12-13 | 文件存储和检索的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146725.7A CN108614837B (zh) | 2016-12-13 | 2016-12-13 | 文件存储和检索的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614837A true CN108614837A (zh) | 2018-10-02 |
CN108614837B CN108614837B (zh) | 2020-10-09 |
Family
ID=63643763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611146725.7A Active CN108614837B (zh) | 2016-12-13 | 2016-12-13 | 文件存储和检索的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614837B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542910A (zh) * | 2018-12-03 | 2019-03-29 | 中国电波传播研究所(中国电子科技集团公司第二十二研究所) | 一种海量海杂波数据分类存储方法 |
CN110636122A (zh) * | 2019-09-11 | 2019-12-31 | 中移(杭州)信息技术有限公司 | 分布式存储方法、服务器、系统、电子设备以及存储介质 |
CN110633261A (zh) * | 2019-09-02 | 2019-12-31 | 恩亿科(北京)数据科技有限公司 | 一种图片存储方法、图片查询方法及装置 |
WO2020108568A1 (zh) * | 2018-11-30 | 2020-06-04 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、设备及计算机存储介质 |
CN111262837A (zh) * | 2020-01-09 | 2020-06-09 | 奇安信科技集团股份有限公司 | 一种数据加密方法、数据解密方法、系统、设备和介质 |
CN113010195A (zh) * | 2019-12-19 | 2021-06-22 | 深圳Tcl数字技术有限公司 | 一种系统升级方法、存储介质及终端设备 |
CN114840474A (zh) * | 2022-07-06 | 2022-08-02 | 中汽信息科技(天津)有限公司 | 专利索引数据库的数据迁移方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073522A1 (en) * | 2010-10-27 | 2013-03-21 | Huawei Technologies Co., Ltd. | Method and device for processing files of distributed file system |
CN103856567A (zh) * | 2014-03-26 | 2014-06-11 | 西安电子科技大学 | 基于Hadoop分布式文件系统的小文件存储方法 |
CN104142937A (zh) * | 2013-05-07 | 2014-11-12 | 深圳中兴网信科技有限公司 | 一种分布式数据存取方法、装置和系统 |
CN104978351A (zh) * | 2014-04-09 | 2015-10-14 | 中国电信股份有限公司 | 海量小文件备份方法与云存储网关 |
CN105138571A (zh) * | 2015-07-24 | 2015-12-09 | 四川长虹电器股份有限公司 | 分布式文件系统及其存储海量小文件的方法 |
CN105653592A (zh) * | 2016-01-28 | 2016-06-08 | 浪潮软件集团有限公司 | 一种基于hdfs的小文件合并工具和方法 |
-
2016
- 2016-12-13 CN CN201611146725.7A patent/CN108614837B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130073522A1 (en) * | 2010-10-27 | 2013-03-21 | Huawei Technologies Co., Ltd. | Method and device for processing files of distributed file system |
CN104142937A (zh) * | 2013-05-07 | 2014-11-12 | 深圳中兴网信科技有限公司 | 一种分布式数据存取方法、装置和系统 |
CN103856567A (zh) * | 2014-03-26 | 2014-06-11 | 西安电子科技大学 | 基于Hadoop分布式文件系统的小文件存储方法 |
CN104978351A (zh) * | 2014-04-09 | 2015-10-14 | 中国电信股份有限公司 | 海量小文件备份方法与云存储网关 |
CN105138571A (zh) * | 2015-07-24 | 2015-12-09 | 四川长虹电器股份有限公司 | 分布式文件系统及其存储海量小文件的方法 |
CN105653592A (zh) * | 2016-01-28 | 2016-06-08 | 浪潮软件集团有限公司 | 一种基于hdfs的小文件合并工具和方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020108568A1 (zh) * | 2018-11-30 | 2020-06-04 | 深圳市中兴微电子技术有限公司 | 一种信息处理方法、设备及计算机存储介质 |
CN109542910A (zh) * | 2018-12-03 | 2019-03-29 | 中国电波传播研究所(中国电子科技集团公司第二十二研究所) | 一种海量海杂波数据分类存储方法 |
CN109542910B (zh) * | 2018-12-03 | 2022-10-28 | 中国电波传播研究所(中国电子科技集团公司第二十二研究所) | 一种海量海杂波数据分类存储方法 |
CN110633261A (zh) * | 2019-09-02 | 2019-12-31 | 恩亿科(北京)数据科技有限公司 | 一种图片存储方法、图片查询方法及装置 |
CN110636122A (zh) * | 2019-09-11 | 2019-12-31 | 中移(杭州)信息技术有限公司 | 分布式存储方法、服务器、系统、电子设备以及存储介质 |
CN113010195A (zh) * | 2019-12-19 | 2021-06-22 | 深圳Tcl数字技术有限公司 | 一种系统升级方法、存储介质及终端设备 |
CN113010195B (zh) * | 2019-12-19 | 2023-03-10 | 深圳Tcl数字技术有限公司 | 一种系统升级方法、存储介质及终端设备 |
CN111262837A (zh) * | 2020-01-09 | 2020-06-09 | 奇安信科技集团股份有限公司 | 一种数据加密方法、数据解密方法、系统、设备和介质 |
CN111262837B (zh) * | 2020-01-09 | 2023-04-11 | 奇安信科技集团股份有限公司 | 一种数据加密方法、数据解密方法、系统、设备和介质 |
CN114840474A (zh) * | 2022-07-06 | 2022-08-02 | 中汽信息科技(天津)有限公司 | 专利索引数据库的数据迁移方法和系统 |
CN114840474B (zh) * | 2022-07-06 | 2022-09-20 | 中汽信息科技(天津)有限公司 | 专利索引数据库的数据迁移方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108614837B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614837A (zh) | 文件存储和检索的方法及装置 | |
CN106096023B (zh) | 数据读取方法、数据写入方法及数据服务器 | |
US8762396B2 (en) | Dynamic, hierarchical bloom filters for network data routing | |
CN104516974B (zh) | 一种文件系统目录项的管理方法及装置 | |
CN107045422A (zh) | 分布式存储方法和设备 | |
CN103546380B (zh) | 一种基于策略路由的报文转发方法和装置 | |
CN109391647A (zh) | 存储资源回收方法、装置及系统 | |
WO2020181820A1 (zh) | 数据缓存方法、装置、计算机设备和存储介质 | |
CN105869057A (zh) | 评论存储设备、评论读取、评论写入方法及装置 | |
CN110287201A (zh) | 数据访问方法、装置、设备及存储介质 | |
CN109753360A (zh) | 面向电力系统中边缘节点的轻量级数据管理系统及方法 | |
CN110011830A (zh) | 基于流量数据的通讯拓扑信息建模方法 | |
CN105847062A (zh) | 日志聚合方法及装置 | |
WO2020215580A1 (zh) | 一种分布式全局数据去重方法和装置 | |
CN111435286A (zh) | 一种数据存储方法、装置和系统 | |
US9348847B2 (en) | Data access control apparatus and data access control method | |
CN109947842A (zh) | 分布式存储系统中的数据存储方法、装置及系统 | |
JP3765175B2 (ja) | コミュニケーションシステム | |
CN109710194A (zh) | 上传文件的存储方法及装置 | |
CN116820323A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN112307272B (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
KR102093764B1 (ko) | 서버 및 스토리지 관리 서버 | |
CN109871407A (zh) | 备付金数据实时上报方法、装置、计算机设备和存储介质 | |
CN110008188B (zh) | 一种文件系统级的应用软件外存限额系统 | |
CN108989245A (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 |