文件存储和检索的方法及装置制造方法及图纸

技术编号:19098618 阅读:19 留言:0更新日期:2018-10-03 02:40
本发明专利技术公开了一种文件存储和检索的方法及装置,属于数据存储技术领域。应用于文件存储系统包括的应用服务器中,文件存储系统还包括客户端和分布式存储系统,所述方法包括:当接收到客户端发送的待存储的第一目标文件时,判断第一目标文件是否为小文件,当第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,将第一目标文件写入至所述合并文件中,并判断写入后的合并文件的文件大小是否大于或等于所述第二预设阈值;当写入后的合并文件的文件大小大于或等于第二预设阈值时,将写入后的合并文件存储至分布式存储系统。本发明专利技术提高了分布式存储系统的存储性能。

【技术实现步骤摘要】
文件存储和检索的方法及装置
本专利技术涉及数据存储
,特别涉及一种文件存储和检索的方法及装置。
技术介绍
随着互联网的普及,越来越多的用户开始通过互联网来享受生活的便利。随着互联网中的用户日益增多,互联网所产生的数据也越来越多,这些数据可以以文件的形式存储,比如,音频、视频、图片等数据均可以通过文件的形式存储。因此,亟需一种文件存储和检索的方法。现有技术中,通常可以由客户端获取文件,并通过分布式存储系统存储文件,即,客户端可以获取待存储的目标文件,并将目标文件发送给分布式存储系统,当该分布式存储系统接收到目标文件时,可以将目标文件进行存储。为了便于在存储该目标文件之后,对该目标文件进行检索,该分布式存储系统还可以生成并存储该目标文件的元数据,该元数据用于记录目标文件的文件标识和目标文件在该分布式存储系统中的存储地址等信息。由于在分布式存储系统中存储的文件可能会包括小文件,即文件大小在几MB(MByte,兆)以下的文件,因此,当该分布式存储系统中存储了海量的小文件时,可能会导致该分布式存储系统出现大量的磁盘碎片。另外,由于该分布式存储系统需要为每个文件生成并存储元数据,当需要对存储的某个文件进行检索时,该分布式存储系统需要耗费大量的时间来在存储的海量的元数据中检索该文件,从而降低了该分布式存储系统的存储性能。
技术实现思路
为了解决提高分布式存储系统的存储性能,本专利技术实施例提供了一种文件存储和检索的方法及装置。所述技术方案如下:第一方面,提供了一种文件存储的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述方法包括:当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。结合第一方面,在上述第一方面的第一种可能的实现方式中,所述将所述第一目标文件写入至所述合并文件之后,还包括:生成所述第一目标文件的属性信息,所述第一目标文件的属性信息包括所述应用服务器为所述第一目标文件分配的文件标识、所述应用服务器为所述合并文件分配的文件标识和所述第一目标文件写入在所述合并文件中的位置信息;存储所述第一目标文件的属性信息。结合第一方面的第一种可能的实现方式,在上述第一方面的第二种可能的实现方式中,所述存储所述第一目标文件的属性信息,包括:将所述第一目标文件的属性信息存储至第一关系型数据库中,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述大文件为文件大小大于或等于所述第一预设阈值的文件;或,将所述第一目标文件的属性信息存储至第二关系型数据库中,所述第二关系型数据库用于存储小文件的属性信息。结合第一方面,在上述第一方面的第三种可能的实现方式中,所述从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件之前,还包括:判断本地存储的合并文件中是否包括文件大小小于第二预设阈值的合并文件;当本地存储的合并文件中包括文件大小小于第二预设阈值的合并文件时,执行从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件的步骤;当本地存储的合并文件中不包括文件大小小于第二预设阈值的合并文件时,在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中。结合第一方面的第三种可能的实现方式,在上述第一方面的第四种可能的实现方式中,所述在本地创建空白合并文件,并将所述第一目标文件写入至所述空白合并文件中之后,还包括:生成所述空白合并文件的属性信息,所述空白合并文件的属性信息包括所述应用服务器为所述空白合并文件分配的文件标识、所述空白合并文件的本地存储地址和第一标识,所述第一标识用于标识文件大小小于所述第二预设阈值且未存储至所述分布式存储系统的文件;存储所述空白合并文件的属性信息。结合第一方面的第四种可能的实现方式,在上述第一方面的第五种可能的实现方式中,所述存储所述空白合并文件的属性信息,包括:将所述空白合并文件的属性信息存储至第一关系型数据库中;或,将所述空白合并文件的属性信息存储至第三关系型数据库中,所述第三关系型数据库用于存储合并文件的属性信息。结合第一方面,在上述第一方面的第六种可能的实现方式中,所述判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值之后,还包括:当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将所述合并文件的属性信息包括的第一标识替换为第二标识,所述第二标识用于标识文件大小大于或等于所述第二预设阈值且未存储至所述分布式存储系统的文件。结合第一方面至第一方面的第六种可能的实现方式中任一种可能的实现方式,在上述第一方面的第七种可能的实现方式中,所述将写入后的所述合并文件存储至分布式存储系统,包括:每隔第一预设时间间隔,遍历本地存储的每个合并文件的属性信息;基于遍历结果,从本地存储的合并文件中,选择属性信息包括第二标识的合并文件;将所选择的合并文件存储至所述分布式存储系统。结合第一方面的第七种可能的实现方式,在上述第一方面的第八种可能的实现方式中,所述将所选择的合并文件存储至所述分布式存储系统之后,还包括:确定所述分布式存储系统为所选择的合并文件分配的文件标识;在所选择的合并文件的属性信息中添加所述分布式存储系统为所选择的合并文件分配的文件标识,并将所选择的合并文件的属性信息包括的所述第二标识替换为第三标识,所述第三标识用于标识已存储至所述分布式存储系统的文件。结合第一方面的第八种可能的实现方式,在上述第一方面的第九种可能的实现方式中,所述方法还包括:每隔第二预设时间间隔,遍历本地存储的每个合并文件的属性信息;基于遍历结果,从本地存储的合并文件中,选择属性信息包括所述第三标识的合并文件;将所选择的合并文件删除。第二方面,提供了一种文件检索的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,所述方法包括:接收客户端发送的文件检索请求,所述文件检索请求携带待检索的第二目标文件的索引信息;基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息;基于所述第二目标文件的属性信息,从本地存储或者所述分布式存储系统中获取所述第二目标文件。结合第二方面,在上述第二方面的第一种可能的实现方式中,所述基于所述索引信息,对本地存储的属性信息进行遍历,以获取所述第二目标文件的属性信息,包括:基于所述索引信息,对本地存储的第一关系型数据库进行遍历,以获取所述第二目标文件的属性信息,所述第一关系型数据库用于存储小文件的属性信息、合并文件的属性信息和大文件的属性信息,所述小文件为文件大小小于第一预设阈值的文件,所述合并文件为需要与小文件进行合并的文件,所述大文件为文件大小大于或等于所述第一预设阈值的文件。本文档来自技高网...

【技术保护点】
1.一种文件存储的方法,应用于文件存储系统包括的应用服务器中,所述文件存储系统还包括分布式存储系统,其特征在于,所述方法包括:当接收到客户端发送的待存储的第一目标文件时,判断所述第一目标文件是否为小文件,所述小文件为文件大小小于第一预设阈值的文件;当所述第一目标文件为小文件时,从本地存储的合并文件中,获取文件大小小于第二预设阈值的合并文件,所述第二预设阈值大于或等于所述第一预设阈值,所述合并文件为需要与小文件进行合并的文件;将所述第一目标文件写入至所述合并文件中,并判断写入后的所述合并文件的文件大小是否大于或等于所述第二预设阈值;当写入后的所述合并文件的文件大小大于或等于所述第二预设阈值时,将写入后的所述合并文件存储至所述分布式存储系统。

【技术特征摘要】
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所述的方法,其特征在于,所述根据所述第二目标文件所在的合并文件的属性信息和所述第二目标文件在所述合并文件中的位置信息,从所述分布式存储系统中获取所述第二目标文件,包括:根据所述第二目标文件所在的合并文件的属性信息,确定所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识;向所述分布式存储系统发送文件获取请求,所述文件获取请求中携带所述分布式存储系统为所述第二目标文件所在的合并文件分配的文件标识,以及所述第二目标文件在所述合并文件中的位置信息;接收所述分布式...

【专利技术属性】
技术研发人员:陈广薛成刚汪渭春
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1