CN103064906A - 文件管理方法及装置 - Google Patents
文件管理方法及装置 Download PDFInfo
- Publication number
- CN103064906A CN103064906A CN2012105519241A CN201210551924A CN103064906A CN 103064906 A CN103064906 A CN 103064906A CN 2012105519241 A CN2012105519241 A CN 2012105519241A CN 201210551924 A CN201210551924 A CN 201210551924A CN 103064906 A CN103064906 A CN 103064906A
- Authority
- CN
- China
- Prior art keywords
- hash bucket
- hash
- file destination
- bucket
- records information
- 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
Images
Abstract
本发明提供了一种文件管理方法及装置,涉及存储技术领域。该方法包括:接收对目标文件的访问请求;根据所述目标文件的文件名查找所述目标文件对应的目录;使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息。本发明实施例的方法及装置把目录元数据中顺序组织的列表记录信息改为多级分层结构组织,每级结构对应不同数量的哈希桶,访问目标文件时,对目标文件的文件名做哈希运算,根据哈希运算的计算结果进行对目标文件相应的访问操作,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度,从而提高系统的适应性。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种文件管理方法及装置。
背景技术
随着大数据时代的到来,客户的应用越来越多样化,数据量也越来越大,选用分布式文件系统保存不同应用的数据成为主流趋势。单一系统支持的客户应用越来越多,对分布式文件系统需要支持的文件数量也就提出了更大的需求,因而导致单个目录下的文件也越来越多。目前一般的文件系统都采用传统的目录树形式组织元数据,如图1所示。目录下顺序保存各文件的列表信息(entry信息),包括文件名和文件元数据信息的保存位置,图2就是一个目录dir1的元数据信息示例。如图2所示,目录的元数据信息首先是目录的各种属性,然后是该目录下各文件的列表记录信息,该信息一般包括文件名和文件元数据信息在磁盘上的保存位置。在目录下新增一个文件,要求遍历该目录的列表,检查同名的文件是否已经存在,如果不存在,则创建该文件,在磁盘上记录文件的元数据信息;然后,把文件的列表记录信息插入到其父目录元数据列表中。访问目录下的某个文件时,也要遍历目录的元数据列表,找到相对应的列表记录信息,进而获得该文件元数据信息在磁盘上的存储位置,才能查到该文件的属性信息。如图2所示,如果要访问是“列表记录1n”对应的文件,首先要遍历目录dir1的列表,在列表的最后找到该文件的列表记录信息,在列表中获得文件列表记录1n元数据的存储位置,从而查得该文件的元数据信息。
在现有的这种顺序保存目录列表信息的方式下,查询文件属性时必须遍历元数据列表,随着目录下文件越来越多,查询的时间也越来越长。在当前一般的文件系统中,一个目录下文件数量达到上万时,就能明显感觉到操作延迟,当目录下文件数量达到千万时,操作延迟就不能接受了。所以目前这种列表信息顺序组织形式,单目录下支持的文件数不能太大,因而也就不能满足日益增大的文件系统的要求。由于单目录下支持大量文件会逐渐增大文件的访问延迟,因而限制了目前分布式文件系统的规模,或者为了保证访问速度,要求系统管理员必须规划系统的目录结构,限制单目录下文件的个数,这样会影响系统的适应性,限制系统的应用场景。
发明内容
有鉴于此,本发明所要解决的问题是提供一种文件管理方法及装置,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度。
为了解决上述问题,第一方面,本发明实施例提供了一种文件管理方法,包括:
接收对目标文件的访问请求;
根据所述目标文件的文件名查找所述目标文件对应的目录;
使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述散列值所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。
结合第一方面,在第一种可能的实现方式中,每个哈希桶包括属性字段,所述属性字段用于标识所述哈希桶对应的散列值、级数、以及上级哈希桶的存储位置,且除最后一级哈希桶外,每级哈希桶的每个哈希桶的属性字段还包括下级各哈希桶的存储位置。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,使用每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,查找所述目标文件对应的列表记录信息具体包括:
根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值;
根据所述散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
若所述目标文件对应的列表记录信息在所述目标哈希桶中,则返回查询到的所述目标文件的列表记录信息,否则,判断当前级哈希桶是否为最后一级哈希桶;
若当前级哈希桶为最后一级哈希桶,则结束,否则,查找所述目标哈希桶的下一级哈希桶。
结合第一方面或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述访问请求为插入目标文件的请求,所述方法还包括:
在未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级哈希桶中的目标哈希桶中。
结合第一方面或第一方面的第一至第三种可能的实现方式中的任一种,在第四种可能的实现方式中,所述访问请求为删除目标文件,所述方法还包括:
在查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
结合第一方面或第一方面的第一至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,每一级哈希桶中所包括的哈希桶的个数大于其前一级哈希桶中所包含的哈希桶的个数,且除最后一级哈希桶外,每级哈希桶中的每个哈希桶用于保存预设数量的列表记录信息。
第二方面,本发明实施例提供了一种文件管理装置,包括:
接收单元,用于接收对目标文件的访问请求;
查找单元,用于根据所述目标文件的文件名查找所述目标文件对应的目录;还用于使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。
结合第二方面,在第一种可能的实现方式中,所述查找单元包括:
哈希运算模块,用于根据当前级哈希桶的哈希函数对所述目标文件做哈希运算,得到对应的散列值;
查找模块,用于根据所述哈希运算模块计算得到的散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
判断模块,用于根据查找模块查找的结果,返回查询到的所述目标文件的列表记录信息,或返回所述查找模块查找所述目标哈希桶的下一级哈希桶。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括记录单元,用于在所述查找单元未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录插入至未满的下一级哈希桶中的目标哈希桶中。
结合第二方面或第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,还包括:删除单元,用于在所述查找单元查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
本发明实施例的方法把目录元数据中顺序组织的列表信息改为多级分层结构组织,每级结构对应不同数量的哈希桶,访问目标文件时,对目标文件的文件名做哈希运算,根据哈希运算的计算结果进行对目标文件相应的访问操作,能够在不限制单目录下文件的个数的前提下,提高文件的访问速度,从而提高系统的适应性。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的说明书附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1为传统的目录树形式组织元数据的示意图;
图2为目录dir1的元数据信息示意图;
图3为本发明实施例的文件管理方法流程图;
图4为本发明实施例的文件管理方法中所使用的多级哈希桶结构示意图;
图5为图4所示的多级哈希桶结构中的第二级哈希桶中的一个哈希桶的结构示例;
图6为本发明实施例的文件管理方法的详细流程图;
图7为本发明实施例的文件管理方法中访问请求为插入目标文件的请求是的流程示意图;
图8为本发明实施例的文件管理装置的结构示意图;
图9为本发明实施例的另一种文件管理装置的结构示意图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
如图3所示,本发明实施例的文件管理方法包括:
S1.接收对目标文件的访问请求;
S2.根据所述目标文件的文件名查找所述目标文件对应的目录;
S3.使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值,根据散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,第一级哈希桶包括至少两个哈希桶。
具言之,在步骤S3中,使用每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,查找所述目标文件对应的列表记录信息的步骤具体包括:
根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值;
根据所述散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
若所述目标文件对应的列表记录信息在所述目标哈希桶中,则返回查询到的所述目标文件的列表记录信息,否则,判断当前级哈希桶是否为最后一级哈希桶;
若当前级哈希桶为最后一级哈希桶,则结束,否则,查找所述目标哈希桶的下一级哈希桶。
本发明实施例的方法把目录元数据中顺序组织的列表记录信息改为多级分层结构组织,每级结构对应不同数量的哈希桶,访问目标文件时,对目标文件的文件名做哈希运算,根据哈希运算的计算结果进行对目标文件相应的访问操作。
需要说明的是,在本发明实施例的方法中,为了避免哈希桶太大影响查找时间,根据文件系统的规模限制除最后一级哈希桶外其他哈希桶的列表记录信息的个数,且每一级哈希桶中所包括的哈希桶的个数大于其前一级哈希桶中所包含的哈希桶的个数。
如图4所示,为本发明实施例的方法中所使用的多级哈希桶结构,以目录dir1的列表信息为例,该目录项采用三级哈希桶结构,前两级哈希桶限制其中的每个哈希桶保存1000个列表记录信息。第一级哈希桶包括两个哈希桶,第一级哈希桶满了后,每个第一级哈希桶中的哈希桶再扩展出五个哈希桶;这五个哈希桶满了之后再从该级哈希桶中的每个扩展出十个新的哈希桶。假设第三级哈希桶中的每个哈希桶也保存1000个列表记录信息,那么该文件系统可以支持单目录下112000(1000*2+1000*5*2+1000*10*5*2)个文件的快速查找。
假设一个目录项下有100000文件,理论上采用上述分层结构,第三级哈希桶中的文件数不超过1000。在传统的顺序存储结构下,查找一个文件的列表记录信息平均需要50000次比较,最坏情况下需要100000次比较。而采用本发明实施例的方法平均需要进行2500(1000+1000+500)次比较,最坏情况下也只需要做3000(1000+1000+1000)次比较,比较速度提高了95%,可见本发明实施例的方法采用多级哈希桶结构能够在大目录下快速定位到要查找的文件。
如果扩大哈希桶的级数,并适当调整每个哈希桶保存的列表记录信息的数量及每级哈希桶的个数,可以支持更大规模的目录的快速查找。如仍采用三级哈希桶组织,第一级哈希桶中有两个哈希桶,第二级哈希桶扩展包含10个哈希桶,第三级哈希桶包含100个哈希桶,如果每个哈希桶保存10000个列表记录信息,这样单目录下就可以支持千万级目录项的快速查找。
此外,在本发明实施例的方法中,每个哈希桶包括属性字段,这个属性字段是哈希桶本身的属性,用于标识所述哈希桶对应的散列值、级数及上级哈希桶的存储位置,且除最后一级哈希桶外,每级哈希桶的每个哈希桶的属性字段还包括下级各哈希桶的存储位置。如图5所示,为图4所示的多级哈希桶结构中的第二级哈希桶中的一个哈希桶的结构示例。该哈希桶有一个类似元数据的字段,记录了该哈希桶的属性信息(未示出,且该属性信息包含该哈希桶对应的散列值),包括一个字段用来标识自己处于哪个级别,上级哈希桶的存储位置(F),及其下级各哈希桶的存储位置(E0…E8、E9),保存上下级哈希桶的位置便于更快速地定位到文件列表记录信息的位置。除上述属性信息外,各哈希桶的主要内容就是保存列表记录信息,图5中的二级哈希桶保存1000个列表记录信息,如果是最后一个级别的哈希桶,则它存储的列表记录信息的个数不限,而且也没有下级哈希桶的信息。
另外,属于不同级哈希桶的哈希桶所保存的列表记录信息的数量全部相同或不全相同。
仍以图4所示的三级哈希桶结构来进一步说明本发明实施例的方法,在步骤S1中接收到的访问请求为查找目标文件,则如图6所示,本发明实施例的方法包括步骤:
S601.接收对目标文件的访问请求;
S602.根据所述目标文件的文件名查找所述目标文件对应的目录;
S603.使用第一级哈希桶对应的哈希函数对目标文件的文件名进行哈希运算,得到第一散列值,具言之,每一级哈希桶中的每个哈希桶对应一个散列值,根据每级哈希桶对应的哈希函数对目标文件的文件名进行哈希运算可得到一个散列值,该散列值可能与该级哈希桶中的某一哈希桶对应,该对应的哈希桶即为根据第一散列值找到的目标哈希桶;
S604.若目标文件的列表记录信息在该目标哈希桶中,此时,根据目标文件的文件名查询该目标的哈希桶,并返回查询到的列表记录信息,否则,执行步骤S605;
S605.判断该目标文件对应的目录是否包含第二级哈希桶(即,判断该目标哈希桶是否存在下一级哈希桶,具体参考图4),若是,则执行步骤S606,否则,返回没有查询到目标文件的信息,结束查找;
S606.使用第二级哈希桶对应的哈希函数对目标文件的文件名进行哈希运算,得到第二散列值,同理,该第二散列值可能与该第二级哈希桶中的某一哈希桶对应,该对应的哈希桶即为根据第二散列值找到的目标哈希桶;
S607.若目标文件的列表记录信息在该目标哈希桶中,此时,根据目标文件的文件名查询该目标哈希桶,并返回查询到的列表记录信息,否则,执行步骤S608;
S608.判断该目标文件对应的目录是否包含第三级哈希桶,若是,则执行步骤S609,否则,返回没有查询到目标文件对应的列表记录信息的信息,结束查找;
S609.使用第三级哈希桶的哈希函数对目标文件的文件名进行哈希运算,得到第三散列值,同理,该第三散列值可能与该第三级哈希桶中的某一哈希桶对应,该对应的哈希桶即为根据该第三散列值找到的目标哈希桶;
S610.若目标文件的列表记录信息在该目标哈希桶中,此时,根据目标文件的文件名查询该目标哈希桶,并返回查询到的列表记录信息,否则,返回没有查询到目标文件对应的列表记录信息的信息,结束查找。
若在步骤S1中,访问请求为删除目标文件,则本发明实施例的方法还包括:
在按照图6所示的各步骤查找到所述目标文件对应的列表记录信息时,删除所述目标文件的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
若在步骤S1中,该访问请求为插入目标文件的请求,则本发明实施例的方法还包括:
在未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件所进行的哈希运算所得到的散列值对应的哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级对应的哈希桶中,否则,将其插入该对应的哈希桶中。具言之,仍以图4所示的3级哈希桶结构为例,如图7所示,该步骤进一步包括:
S701.若查询到目标文件,则插入失败,该目标文件的列表记录已经在该目录下存在,否则,执行步骤S702;
S702.使用当前级哈希桶对应的哈希函数对目标文件的文件名进行哈希运算,得到该目标文件所对应的散列值,称为当前散列值,通过该当前散列值,可以得到该目标文件所应该记录在当前级哈希桶中的哪一个哈希桶;
S703.若当前散列值对应的哈希桶已满,则执行步骤S704,否则,将目标文件的列表记录信息插入当前哈希桶;
S704.若当前级哈希桶具有下级哈希桶,则返回执行步骤S702,使用下一级哈希桶对应的哈希函数对目标文件的文件名进行哈希运算,否则,执行步骤S705;
S705.判断是否已经查询到第三级哈希桶,若是,则将目标文件的列表记录信息插入当前哈希桶,否则,执行步骤S706;
S706.创建下一级哈希桶并返回执行步骤S702。
在查找到所述目标文件对应的列表记录信息时,删除所述目标文件的列表记录信息,并在所述目标文件对应的列表记录信息位置处进行标注。
需要说明的是,在步骤S703、S705中,在插入目标文件的列表记录信息之前,查询该哈希桶中是否存在删除标记,如果有,则优选将目标文件的列表记录信息插入当前哈希桶中标注该删除标记的位置,否则,顺序将该目标文件的列表记录信息记录在当前哈希桶的最后的位置。
如图8所示,为本发明实施例的一种文件管理装置800的结构框图,该文件管理装置800依照图3至图6所示的方法实施例的方法进行文件管理。该文件管理装置800包括:
接收单元810,用于接收对目标文件的访问请求;
查找单元820,用于根据所述目标文件的文件名查找所述目标文件对应的目录;还用于使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。
其中,查找单元820包括:
哈希运算模块821,用于根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值;
查找模块822,用于根据所述哈希运算模块计算得到的散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
判断模块823,用于根据查找模块822查找的结果,返回查询到的所述目标文件的列表记录信息,或返回所述查找模块进行下一级哈希桶的查找。
此外,本发明实施例的该文件管理装置800还可包括记录单元830,用于在所述查找单元820未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级哈希桶中的目标哈希桶中,否则,直接将所述文件的列表记录信息插入至对应的哈希桶中。
该文件管理装置800还可包括:删除单元840,用于在所述查找单元820查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
如图9为本发明实施例提供的又一种文件管理装置900的结构示意图,本发明具体实施例并不对文件管理装置的具体实现做限定。如图9所示,该文件管理装置900可以包括:
处理器(processor)910、通信接口(CommunicationsInterface)920、存储器(memory)930、以及通信总线940。其中:
处理器910、通信接口920、以及存储器930通过通信总线940完成相互间的通信。
通信接口920,用于与比如客户端等的网元通信。
处理器910,用于执行程序932,具体可以执行上述图3至图7所示的方法实施例中的相关步骤。
具体地,程序932可以包括程序代码,所述程序代码包括计算机操作指令。
处理器910可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器930,用于存放程序932。存储器930可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序932具体可以包括:
接收单元,用于接收对目标文件的访问请求;
查找单元,用于根据所述目标文件的文件名查找所述目标文件对应的目录;还用于使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息。
程序932中各单元的具体实现可以参见图8所示实施例中的相应单元,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory、)随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种文件管理方法,其特征在于,包括:
接收对目标文件的访问请求;
根据所述目标文件的文件名查找所述目标文件对应的目录;
使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。
2.根据权利要求1所述的方法,其特征在于,每个哈希桶包括属性字段,所述属性字段用于标识所述哈希桶对应的散列值、级数、以及上级哈希桶的存储位置,且除最后一级哈希桶外,每级哈希桶的每个哈希桶的属性字段还包括下级各哈希桶的存储位置。
3.根据权利要求1或2所述的方法,其特征在于,使用每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,查找所述目标文件对应的列表记录信息具体包括:
根据当前级哈希桶的哈希函数对所述目标文件的文件名做哈希运算,得到对应的散列值;
根据所述散列值找到目标哈希桶,并遍历所述目标哈希桶查找所述目标文件对应的列表记录信息;
若所述目标文件对应的列表记录信息在所述目标哈希桶中,则返回查询到的所述目标文件的列表记录信息,否则,判断当前级哈希桶是否为最后一级哈希桶;
若当前级哈希桶为最后一级哈希桶,则结束,否则,查找所述目标哈希桶的下一级哈希桶。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述访问请求为插入目标文件的请求,所述方法还包括:
在未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录信息插入至未满的下一级哈希桶中的目标哈希桶中。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述访问请求为删除目标文件,所述方法还包括:
在查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
6.根据权利要求1至5中任一项所述的方法,其特征在于,每一级哈希桶中所包括的哈希桶的个数大于其前一级哈希桶中所包含的哈希桶的个数,且除最后一级哈希桶外,每级哈希桶中的每个哈希桶用于保存预设数量的列表记录信息。
7.一种文件管理装置,其特征在于,包括:
接收单元,用于接收对目标文件的访问请求;
查找单元,用于根据所述目标文件的文件名查找所述目标文件对应的目录;还用于使用所述目录下每级哈希桶对应的哈希函数对所述目标文件的文件名做哈希运算,并根据所得的散列值找到目标哈希桶,遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
其中,所述多级哈希桶用于保存目录下各文件的列表记录信息,每个目录下包括至少一级哈希桶,每级哈希桶对应一个哈希函数,且第一级哈希桶包括至少两个哈希桶。
8.根据权利要求7所述的装置,其特征在于,所述查找单元包括:
哈希运算模块,用于根据当前级哈希桶的哈希函数对所述目标文件做哈希运算,得到对应的散列值;
查找模块,用于根据所述哈希运算模块计算得到的散列值找到目标哈希桶,并遍历所述目标哈希桶,查找所述目标文件对应的列表记录信息;
判断模块,用于根据查找模块查找的结果返回查询到的所述目标文件的列表记录信息,或返回所述查找模块查找所述目标哈希桶的下一级哈希桶。
9.根据权利要求7或8所述的装置,其特征在于,还包括记录单元,用于在所述查找单元未查找到所述目标文件的列表记录信息的情况下,依次判断使用每级哈希桶对应的哈希函数对所述目标文件的文件名进行哈希运算得到的目标哈希桶是否已满,若已满,则将所述目标文件的列表记录插入至未满的下一级哈希桶中的目标哈希桶中。
10.根据权利要求7至9中任一项所述的装置,其特征在于,还包括:删除单元,用于在所述查找单元查找到所述目标文件对应的列表记录信息时,删除所述目标文件对应的列表记录信息,并在所述目标文件对应的列表记录信息位置处标注删除标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551924.1A CN103064906B (zh) | 2012-12-18 | 2012-12-18 | 文件管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551924.1A CN103064906B (zh) | 2012-12-18 | 2012-12-18 | 文件管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064906A true CN103064906A (zh) | 2013-04-24 |
CN103064906B CN103064906B (zh) | 2016-08-03 |
Family
ID=48107536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210551924.1A Active CN103064906B (zh) | 2012-12-18 | 2012-12-18 | 文件管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064906B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182409A (zh) * | 2013-05-24 | 2014-12-03 | 腾讯科技(深圳)有限公司 | 一种对多阶哈希进行优化的方法及装置 |
CN104239316A (zh) * | 2013-06-13 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 查找对象的方法及装置 |
CN104424224A (zh) * | 2013-08-26 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 一种文件索引存储方法及装置 |
CN105338073A (zh) * | 2015-10-20 | 2016-02-17 | 浪潮集团有限公司 | 一种文件目录的处理方法、服务器和系统 |
CN106201351A (zh) * | 2016-07-07 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种基于对象存储的存储方法和服务器 |
CN106845216A (zh) * | 2016-12-30 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境的查杀方法及装置 |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
CN110309143A (zh) * | 2018-03-21 | 2019-10-08 | 华为技术有限公司 | 数据相似度确定方法、装置及处理设备 |
CN110413215A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于获取访问权限的方法、设备和计算机程序产品 |
CN112199333A (zh) * | 2020-09-24 | 2021-01-08 | 武汉绿色网络信息服务有限责任公司 | 一种支持多值索引文件的存储方法和装置 |
WO2022205544A1 (zh) * | 2021-04-01 | 2022-10-06 | 中山大学 | 基于Cuckoo哈希的文件系统目录管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464901A (zh) * | 2009-01-16 | 2009-06-24 | 华中科技大学 | 一种对象存储设备中的对象查找方法 |
US20100011011A1 (en) * | 2006-12-22 | 2010-01-14 | Lemar Eric M | Systems and methods of directory entry encodings |
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
-
2012
- 2012-12-18 CN CN201210551924.1A patent/CN103064906B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100011011A1 (en) * | 2006-12-22 | 2010-01-14 | Lemar Eric M | Systems and methods of directory entry encodings |
CN101464901A (zh) * | 2009-01-16 | 2009-06-24 | 华中科技大学 | 一种对象存储设备中的对象查找方法 |
CN101719141A (zh) * | 2009-12-24 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于目录对象的文件处理方法和系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182409B (zh) * | 2013-05-24 | 2018-01-19 | 腾讯科技(深圳)有限公司 | 一种对多阶哈希进行优化的方法及装置 |
CN104182409A (zh) * | 2013-05-24 | 2014-12-03 | 腾讯科技(深圳)有限公司 | 一种对多阶哈希进行优化的方法及装置 |
CN104239316A (zh) * | 2013-06-13 | 2014-12-24 | 深圳市腾讯计算机系统有限公司 | 查找对象的方法及装置 |
CN104239316B (zh) * | 2013-06-13 | 2018-09-07 | 深圳市腾讯计算机系统有限公司 | 查找对象的方法及装置 |
CN104424224A (zh) * | 2013-08-26 | 2015-03-18 | 深圳市腾讯计算机系统有限公司 | 一种文件索引存储方法及装置 |
CN105338073A (zh) * | 2015-10-20 | 2016-02-17 | 浪潮集团有限公司 | 一种文件目录的处理方法、服务器和系统 |
CN106201351A (zh) * | 2016-07-07 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种基于对象存储的存储方法和服务器 |
CN106845216A (zh) * | 2016-12-30 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境的查杀方法及装置 |
CN110309143A (zh) * | 2018-03-21 | 2019-10-08 | 华为技术有限公司 | 数据相似度确定方法、装置及处理设备 |
CN110309143B (zh) * | 2018-03-21 | 2021-10-22 | 华为技术有限公司 | 数据相似度确定方法、装置及处理设备 |
CN108491549A (zh) * | 2018-04-09 | 2018-09-04 | 深圳市茁壮网络股份有限公司 | 一种分布式存储系统中文件目录的创建方法及装置 |
CN110413215A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 用于获取访问权限的方法、设备和计算机程序产品 |
CN110413215B (zh) * | 2018-04-28 | 2023-11-07 | 伊姆西Ip控股有限责任公司 | 用于获取访问权限的方法、设备和计算机程序产品 |
CN112199333A (zh) * | 2020-09-24 | 2021-01-08 | 武汉绿色网络信息服务有限责任公司 | 一种支持多值索引文件的存储方法和装置 |
CN112199333B (zh) * | 2020-09-24 | 2022-11-22 | 武汉绿色网络信息服务有限责任公司 | 一种支持多值索引文件的存储方法和装置 |
WO2022205544A1 (zh) * | 2021-04-01 | 2022-10-06 | 中山大学 | 基于Cuckoo哈希的文件系统目录管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103064906B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064906A (zh) | 文件管理方法及装置 | |
CN101719141B (zh) | 基于目录对象的文件处理方法和系统 | |
CN103902623B (zh) | 用于在存储系统上存取文件的方法和系统 | |
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
KR101972645B1 (ko) | 클러스터링 저장 방법 및 장치 | |
CN103605758B (zh) | 一种移动终端文件查找的方法及装置 | |
US10552378B2 (en) | Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset | |
CN102930060B (zh) | 一种数据库快速索引的方法及装置 | |
US20100312749A1 (en) | Scalable lookup service for distributed database | |
CN103064639A (zh) | 数据存储方法及装置 | |
US20080201302A1 (en) | Using promotion algorithms to support spatial searches | |
EP2199935A2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US20070234005A1 (en) | Hash tables | |
CN1979469A (zh) | 索引及其扩展和查询方法 | |
CN103136228A (zh) | 一种图片搜索方法以及图片搜索装置 | |
US9529908B2 (en) | Tiering of posting lists in search engine index | |
CN103019887A (zh) | 数据备份方法及装置 | |
CN104731896A (zh) | 一种数据处理方法及系统 | |
CN106326475A (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
CN102819601A (zh) | 信息检索方法和信息检索设备 | |
CN102024019A (zh) | 一种分布式文件系统中基于后缀树的目录组织方法 | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
CN105183391B (zh) | 一种分布式数据平台下数据存储的方法和装置 | |
CN102609531B (zh) | 一种根据关键字反查文件的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |