一种文件创建方法、装置以及文件查询方法、装置制造方法及图纸

技术编号:18367463 阅读:35 留言:0更新日期:2018-07-05 08:48
本发明专利技术公开了一种文件创建方法,包括:接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。本发明专利技术还同时公开了一种文件创建装置。

File creation method, device and document inquiry method and device

The invention discloses a method for creating a file, including: when a file is received to create a request message, a request message is created according to the file to obtain the storage path and file name of the target file; according to the stored path, the directory file corresponding to the target file is parsed and the document is calculated according to the name of the file. The hash value of the name is stored, and the directory entries of the target file are stored in the directory file according to the hash value and the directory file. The invention also discloses a file creation device at the same time.

【技术实现步骤摘要】
一种文件创建方法、装置以及文件查询方法、装置
本专利技术涉及数据业务领域,尤其涉及一种文件创建方法、装置以及文件查询方法、装置。
技术介绍
随着大数据时代的到来,各种应用飞速发展,使数据存储系统成为社会经济发展中必不可少的一部分,同时给数据存储系统的设计难度带来巨大挑战,如何在海量文件中查找到目标文件,保证文件系统的查询性能变得非常关键。传统的文件系统在查询文件过程中采用了全局遍历的方法,该方法的算法复杂度为O(n),当目录下存在海量文件时,查询效率十分低下。例如EFS分布式文件系统在检索文件时通常由客户端发出请求,服务器端收到请求后,调用本地文件系统的接口对路径进行逐级解析查找,最终找到目标文件,在逐级查找的过程中,都是通过遍历当前目录下所有文件的目录项的方式来搜索目标文件的目录项。该方法在文件数规模不大的情况下,查找速度不会受到影响,但是当目录中存在海量文件时,由于在查找过程中需要频繁访问磁盘,因此会导致检索的速度急剧下降。对于分布式文件系统的文件查询,现有提出了采用哈希和位图检索文件的方法,然而,该方法是对整个文件系统设置一个哈希索引表和位图信息,当查询一个文件时,需要遍历整个目录文件的磁盘空间,时间开销很大。因此,为解决分布式文件系统的文件查询效率低的问题,亟需寻找一种文件创建和查询方法。
技术实现思路
为解决现有存在的问题,本专利技术实施例期望提供一种文件创建方法、装置以及文件查询方法、装置,能够提高文件查询的效率,实现文件的快速查询。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术实施例提供了一种文件创建方法,所述方法包括:接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。上述方案中,所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中包括:将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第一位置;根据预设的位图信息,判断所述第一位置中是否存储有目录项;若是,则查找所述预设的位图信息中与所述第一位置对应的第一位图位置之后第一个标识为未存储有目录项的状态的第二位图位置,根据所述第二位图位置,在目录文件中查找与所述第二位图位置对应的第二位置,将所述目标文件的目录项存储至所述第二位置中,并将所述第二位图位置标识为存储有目录项的状态;若否,则将所述目标文件的目录项存储至所述第一位置中,并将所述预设的位图信息中与所述第一位置对应的第一位图位置标识为存储有目录项的状态。上述方案中,所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中之前,所述方法还包括:遍历所述预设的位图信息中标识为存储有目录项的状态的位图位置;判断所述目录文件与所述位图位置对应的位置中存储的目录项中的文件名与目标文件的文件名是否都不一致;若是,则执行所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中的步骤;若否,则返回创建失败。本专利技术实施例还提供了一种文件创建装置,所述装置包括:第一获取模块、第一运算模块和存储模块;其中,所述第一获取模块,用于接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;所述第一运算模块,用于根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;所述存储模块,用于根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。上述方案中,所述存储模块包括:第一运算单元、第一判断单元和第一处理单元;其中,所述第一运算单元,用于将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第一位置;所述第一判断单元,用于根据预设的位图信息,判断所述第一位置中是否存储有目录项;所述第一处理单元,用于当所述第一位置存储有目录项时,查找所述预设的位图信息中与所述第一位置对应的第一位图位置之后第一个标识为未存储有目录项的状态的第二位图位置,根据所述第二位图位置,在目录文件中查找与所述第二位图位置对应的第二位置,将所述目标文件的目录项存储至所述第二位置中,并将所述第二位图位置标识为存储有目录项的状态;当所述第一位置未存储有目录项时,将所述目标文件的目录项存储至所述第一位置中,并将所述预设的位图信息中与所述第一位置对应的第一位图位置标识为存储有目录项的状态。上述方案中,所述装置还包括:遍历模块和判断模块;其中,所述遍历模块,用于遍历所述预设的位图信息中标识为存储有目录项的状态的位图位置;所述判断模块,用于判断所述目录文件与所述位图位置对应的位置中存储的目录项中的文件名与目标文件的文件名是否都不一致;若是,则根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中;若否,则返回创建失败。本专利技术实施例还提供了一种文件查询方法,所述方法包括:接收到文件查询请求消息时,根据所述文件查询请求消息获取目标文件的存储路径和文件名;根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;根据所述哈希值和所述目录文件,查询所述目录文件中存储的目录项中的文件名是否与所述目标文件的文件名一致,并返回查询结果。上述方案中,所述根据所述哈希值和所述目录文件,查询所述目录文件中存储的目录项中的文件名是否与所述目标文件的文件名一致,并返回查询结果包括:将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第三位置;判断所述第三位置中存储的目录项中的文件名与所述目标文件的文件名是否一致;若是,则返回查询成功;若否,则遍历预设的位图信息中与所述第三位置对应的第三位图位置之后标识为存储有目录项的状态的位图位置,判断所述目录文件与所述位图位置对应的位置中存储的目录项中的文件名与所述目标文件的文件名是否存在一致,若是,则返回查询成功;若否,则返回查询失败。本专利技术实施例还提供了一种文件查询装置,所述装置包括:第二获取模块、第二运算模块和查询模块;其中,所述第二获取模块,用于接收到文件查询请求消息时,根据所述文件查询请求消息获取目标文件的存储路径和文件名;所述第二运算模块,用于根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;所述查询模块,用于根据所述哈希值和所述目录文件,查询所述目录文件中存储的目录项中的文件名是否与所述目标文件的文件名一致,并返回查询结果。上述方案中,所述查询模块包括:第二运算单元、第二判断单元和第二处理单元;其中,所述第二运算单元,用于将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第三位置;所述第二判断单元,用于判断所述第三位置中存储的目录项中的文件名与所述目标文件的文件名是否一致;所述第二处理单元,用于当所述第三位置中存储的目录项中的文件名与所述目标文件的文件名一致时,返回查询成功;当所述第三位置中存储的目录项中的文件名与所述目标文件的文件名不一致时,遍历预设的位图信息中与所述第三位置对应的第三本文档来自技高网...
一种文件创建方法、装置以及文件查询方法、装置

【技术保护点】
1.一种文件创建方法,其特征在于,所述方法包括:接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。

【技术特征摘要】
1.一种文件创建方法,其特征在于,所述方法包括:接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。2.根据权利要求1所述的方法,其特征在于,所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中包括:将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第一位置;根据预设的位图信息,判断所述第一位置中是否存储有目录项;若是,则查找所述预设的位图信息中与所述第一位置对应的第一位图位置之后第一个标识为未存储有目录项的状态的第二位图位置,根据所述第二位图位置,在目录文件中查找与所述第二位图位置对应的第二位置,将所述目标文件的目录项存储至所述第二位置中,并将所述第二位图位置标识为存储有目录项的状态;若否,则将所述目标文件的目录项存储至所述第一位置中,并将所述预设的位图信息中与所述第一位置对应的第一位图位置标识为存储有目录项的状态。3.根据权利要求2所述的方法,其特征在于,所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中之前,所述方法还包括:遍历所述预设的位图信息中标识为存储有目录项的状态的位图位置;判断所述目录文件与所述位图位置对应的位置中存储的目录项中的文件名与目标文件的文件名是否都不一致;若是,则执行所述根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中的步骤;若否,则返回创建失败。4.一种文件创建装置,其特征在于,所述装置包括:第一获取模块、第一运算模块和存储模块;其中,所述第一获取模块,用于接收到文件创建请求消息时,根据所述文件创建请求消息获取目标文件的存储路径和文件名;所述第一运算模块,用于根据所述存储路径,解析与所述目标文件对应的目录文件,并根据所述文件名,计算所述文件名的哈希值;所述存储模块,用于根据所述哈希值和所述目录文件,将所述目标文件的目录项存储至所述目录文件中。5.根据权利要求4所述的装置,其特征在于,所述存储模块包括:第一运算单元、第一判断单元和第一处理单元;其中,所述第一运算单元,用于将所述哈希值与所述目录文件中已分配空间的目录项数相除,计算得到所述目录文件中的第一位置;所述第一判断单元,用于根据预设的位图信息,判断所述第一位置中是否存储有目录项;所述第一处理单元,用于当所述第一位置存储有目录项时,查找所述预设的位图信息中与所述第一位置对应的第一位图位置之后第一个标识为未存储有目录项的状态的第二位图位置,根据所述第二位图位置,在目录文件中查找与所述第二位图位置对应的第二位置,将所述目标文件的目录项存储至所述第二位置中,并将所述第二位图位置标识为存储有目录项的状态;当所述第一位置未存储有目录项时,将所述目标文件的目录项存储至所述第一位置中,并将所述预设的位图信息中与所述第一位置对...

【专利技术属性】
技术研发人员:舒友村
申请(专利权)人:中移苏州软件技术有限公司中国移动通信集团公司
类型:发明
国别省市:江苏,32

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

1