CN104537016B - 一种确定文件所在分区的方法及装置 - Google Patents
一种确定文件所在分区的方法及装置 Download PDFInfo
- Publication number
- CN104537016B CN104537016B CN201410795852.4A CN201410795852A CN104537016B CN 104537016 B CN104537016 B CN 104537016B CN 201410795852 A CN201410795852 A CN 201410795852A CN 104537016 B CN104537016 B CN 104537016B
- Authority
- CN
- China
- Prior art keywords
- path
- subregion
- partition
- file
- determining
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Abstract
本发明公开了一种确定文件所在分区的方法及装置,用以解决现有技术中的路径分区映射表规模庞大,占用的存储空间较大,文件搜索性能下降的问题。该方法为:根据本地所有文件的目录树的分区,构建保存有每个父分区以及对应的关键路径的对应关系的分区的索引信息表,根据待查询文件的路径在该分区的索引信息表中遍历,得到一个是待查询文件的路径的前缀路径的关键路径,并根据该关键路径确定待查询文件所归属的分区。这样,用于确定文件所归属的分区的分区的索引信息表中的数据项数较少,极大的节省了存储空间,同时提高了文件检索性能,以及分区的索引信息表的查询更新效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种确定文件所在分区的方法及装置。
背景技术
传统的文件系统是基于目录树的元数据管理结构,通过对文件系统中的所有文件构造目录树,参阅图1所示,通过检索目录树进行文件管理,基于目录树结构的管理方式适用于文件系统中的文件和目录规模不大的场景。
在当今的海量文件系统中,管理的文件规模达到上百万乃至上亿级别,显然,传统的基于目录树结构的管理方式已远远无法满足海量文件的文件检索的性能要求。为了解决这一问题,通常将海量文件系统按目录树进行分区,参阅图2所示,每个分区包含一定数量的文件或目录个数(比如1万个目录或10万个文件),根据查询时输入的文件路径来筛选出一个或少数几个分区,然后在这些分区中利用其它文件属性进行更细致的搜索,从而加速元数据搜索。
为了实现在所有分区中通过输入路径筛选出一个或几个分区,现有技术通常按照目录进行分区(比如一个分区包含1万个目录),然后维持一个包括所有目录路径到分区的映射表(简称路径分区映射表),参阅表1所示。查询时,根据用户输入的路径在路径分区映射表中找到相应的分区,然后,在这些筛选出的分区内进行搜索需要的文件。
表1针对图2中的目录树分区构建的路径分区映射表
现有技术采用路径分区映射表的方式实现输入路径到分区的筛选,是一种简单直观的方法。然而,在一个海量文件系统中,目录的数非常庞大,若将所有路径都添加至路径分区映射表,会导致路径分区映射表的规模庞大,占用的存储空间较大,并且导致路径分区映射表的查询更新效率较慢和文件的搜索性能急剧下降等问题。
发明内容
本发明实施例提供一种确定文件所在分区的方法及装置,用以解决现有技术中存在的路径分区映射表规模庞大,占用的存储空间较大,并且导致路径分区映射表的查询更新效率较慢和文件的搜索性能急剧下降的问题。
本发明实施例提供的具体技术方案如下:
第一方面,一种确定文件所在分区的方法,包括:
获取待查询文件的路径;
根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应所述任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
根据待查询文件的路径在所述分区的索引信息表中遍历,确定所述分区的索引信息表中一个父分区对应的一个关键路径为所述待查询文件的路径的前缀路径时,将确定的所述关键路径作为第一目标关键路径;
在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
将确定的子分区确定为所述待查询文件所归属的分区。
结合第一方面,在第一种可能的实现方式中,获得本地所有文件的目录树的分区,包括:
针对本地保存的所有文件构造目录树;
将所述目录树进行分区,生成多个分区,所述多个分区包括多个父分区以及与每个父分区对应的不同子分区。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据待查询文件的路径在分区的索引信息表中遍历,包括:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对所述分区的索引信息表进行遍历。
结合第一方面或第一方面的以上任一种可能的实现方式,在第三种可能的实现方式中,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区,包括:
所述分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与所述任意一个关键路径相同的字典序最小的绝对路径的子分区;
在所述分区的索引信息表中确定所述第一目标关键路径对应的分区指针,根据确定的所述分区指针,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
结合第一方面或第一方面的以上任一种可能的实现方式,在第四种可能的实现方式中,将确定的子分区确定为所述待查询文件所归属的分区,包括:
将确定的子分区作为一个父分区,在所述分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为所述待查询文件的路径的前缀路径时,将确定的子分区确定为所述待查询文件所归属的分区。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
若索引到的至少一个关键路径中存在一个关键路径为所述待查询文件的路径的前缀路径时,返回在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作。
第二方面,一种确定文件所在分区的装置,包括:
获取单元,用于获取待查询文件的路径;
第一处理单元,用于根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应所述任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
第二处理单元,用于根据待查询文件的路径在所述分区的索引信息表中遍历,确定所述分区的索引信息表中一个父分区对应的一个关键路径为所述待查询文件的路径的前缀路径时,将确定的所述关键路径作为第一目标关键路径;
确定单元,用于在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
运行单元,用于将确定的子分区确定为所述待查询文件所归属的分区。
结合第二方面,在第一种可能的实现方式中,所述第一处理单元在获得本地所有文件的目录树的分区时,具体用于:
针对本地保存的所有文件构造目录树;
将所述目录树进行分区,生成多个分区,所述多个分区包括多个父分区以及与每个父分区对应的不同子分区。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二处理单元在根据待查询文件的路径在分区的索引信息表中遍历时,具体用于:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对所述分区的索引信息表进行遍历。
结合第二方面或第二方面的以上任一种可能的实现方式,在第三种可能的实现方式中,所述确定单元,具体用于:
所述分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与所述任意一个关键路径相同的字典序最小的绝对路径的子分区;
在所述分区的索引信息表中确定所述第一目标关键路径对应的分区指针,根据确定的所述分区指针,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
结合第二方面或第二方面的以上任一种可能的实现方式,在第四种可能的实现方式中,所述运行单元,具体用于:
将确定的子分区作为一个父分区,在所述分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为所述待查询文件的路径的前缀路径时,将确定的子分区确定为所述待查询文件所归属的分区。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述运行单元,还用于:
若索引到的至少一个关键路径中存在一个关键路径为所述待查询文件的路径的前缀路径时,返回在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作。
采用本发明技术方案,通过构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径;根据待查询文件的路径在分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为该待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径;在一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;将确定的子分区确定为待查询文件所归属的分区。这样,可以在规模较大的文件存储系统中找到待查询文件所在的分区,且分区的索引信息表中的数据项数与父分区的数量相同,相对于现有技术中的路径分区映射表,极大的节省了存储空间,同时提高了文件检索性能,以及路径分区映射表的查询更新效率。
附图说明
图1为现有技术中的一种基于目录树的文件管理结构示意图;
图2为现有技术中的一种基于目录树的分区结构示意图;
图3为本发明实施例提供的一种确定文件所在分区的方法的具体流程图;
图4为本发明实施例提供的一种分区结构中父分区对应的关键路径的示意图;
图5为本发明实施例提供的一种确定文件所在分区的装置的结构示意图;
图6为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
采用本发明提供的确定文件所在分区的方法,通过获取待查询文件的路径,并根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应该任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;根据待查询文件的路径在分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为该待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径;在一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;将确定的子分区确定为待查询文件所归属的分区。这样,可以在规模较大的文件存储系统中找到待查询文件所在的分区,且分区的索引信息表中的数据项数与父分区的数量相同,相对于现有技术中的路径分区映射表,极大的节省了存储空间,同时提高了文件检索性能,以及路径分区映射表的查询更新效率。
本发明实施例提供了一种确定文件所在分区的方法,应用于保存有大量文件的终端设备,如计算机、服务器等,下面结合附图对本发明优选的实施方式进行详细说明。
参阅图3所示,本发明实施例提供的一种确定文件所在分区的方法,该方法的具体处理流程包括:
步骤301:获取待查询文件的路径。
步骤302:根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应该任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件。
具体的,获得本地所有文件的目录树的分区,包括:
针对本地保存的所有文件构造目录树;
将该目录树进行分区,生成多个分区,其中,多个分区包括多个父分区以及与每个父分区对应的不同子分区,如图2所示。
其中,该如图2所示的分区,在任意一个分区中,除字典序最小的绝对路径以外的其它任意一个绝对路径对应的至少一个前缀路径中,包括该字典序最小的绝对路径,例如,在分区P3中,字典序最小的绝对路径为文件d1对应的绝对路径“/a1/b1/c1/d1”,该分区P3中的其它绝对路径为“/a1/b1/c1/d1/e1”和“/a1/b1/c1/d1/e2”,且绝对路径“/a1/b1/c1/d1/e1”以及绝对路径“/a1/b1/c1/d1/e2”对应的前缀路径均包括:“/a1”、“/a1/b1”、“/a1/b1/c1”以及“/a1/b1/c1/d1”,显然,包括字典序最小的绝对路径d1的对应的绝对路径“/a1/b1/c1/d1”。
在任意一个父分区中,如分区P1,该分区P1中任意一个的绝对路径是其子分区(分区P2和分区P5)中任意一个绝对路径的前缀路径。
仍以图2为例,任意一个父分区对应的关键路径为该任意一个父分区中的一个子分区中字典序最小的绝对路径,例如,最高一级的父分区P1的关键路径为分区P2中文件a1的绝对路径以及分区P5中文件c5的绝对路径;下一级的父分区的关键路径为分区P3中文件d1的绝对路径以及分区P4中文件d2的绝对路径,如图4所示,父分区对应的至少一个关键路径为该父分区对应的子分区中具有阴影背景的文件的绝对路径。
针对图4所示的分区,构建的分区的索引信息表,参阅表2所示,保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径:
表2针对图4所示的分区构建的分区的索引信息表
父分区 | 关键路径 |
P1 | /a1,/a2/b5/c5 |
P2 | /a1/b1/c1/d1,/a1/b2//c3/d2 |
步骤303:根据待查询文件的路径在分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为该待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径。
具体的,根据待查询文件的路径在分区的索引信息表中遍历,包括:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对该分区的索引信息表进行遍历,即按照从较高级别的父分区到到较低级别的父分区的顺序对该分区的索引信息表,其中,任意一个父分区对应的子分区的级别低于该任意一个父分区。以表2为例,即以从上到下的顺序遍历该分区的索引信息表。
步骤304:在一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
具体的,在执行步骤304时,可以包括但不限于以下步骤:
该分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与该任意一个关键路径相同的字典序最小的绝对路径的子分区;
在该分区的索引信息表中确定该第一目标关键路径对应的分区指针,根据确定的所述分区指针,在该一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
具体的,继续以表2为例,将该分区的索引信息表中任意一个关键路径对应一个分区指针,该分区指针指示与具有与该任意一个关键路径相同的字典序最小的绝对路径的子分区,该表2可以转换为表3的形式:
表3添加分区指针的分区的索引信息表
父分区 | 关键路径 |
P1 | </a1,P2>,</a2/b5/c5,P5> |
P2 | </a1/b1/c1/d1,P3>,</a1/b2//c3/d2,P4> |
在该索引信息表中添加每个父分区的每个关键路径指示的子分区,该子分区即对应的关键路径的文件所在的子分区。因此,在执行步骤304时,确定第一目标关键路径后,查询该添加了分区指针的分区的索引信息表,通过该第一目标关键路径对应的分区指针,即可确定具有与第一目标关键路径相同的字典序最小的绝对路径的子分区。
步骤305:将确定的子分区确定为待查询文件所归属的分区。
具体的,执行步骤305可以包括以下步骤:
将确定的子分区作为一个父分区,在该分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为待查询文件的路径的前缀路径时,将确定的子分区确定为待查询文件所归属的分区。
该方法还包括:
若索引到的至少一个关键路径中存在一个关键路径为待查询文件的路径的前缀路径时,继续将存在的关键路径作为第二目标关键路径,返回在该一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作,确定具有与第二目标关键路径相同的字典序最小的绝对路径的子分区。
基于以上实施例,本发明实施例提供的一种确定文件所在的分区的具体流程,该流程包括:
首先,将目录树进行分区,生成多个父分区以及每个父分区对应的不同子分区;
然后,构建分区的索引信息表,一般的,该分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,如表2所示;
为了提高工作效率,快速确定文件所在的分区,较佳地,每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与该任意一个关键路径相同的字典序最小的绝对路径的子分区,该添加了分区指针的分区的索引信息表如表3所示;
将待查询文件的路径input-path输入终端设备,从根目录所在的父分区开始,以级别从上到下的顺序遍历该分区的索引信息表,继续以表3为例,即按照从上到下的顺序遍历该分区的索引信息表;
遍历父分区P1中的索引关键路径,判断父分区P1中的所有关键路径中是否有一个关键路径为input-path的前缀路径;
若遍历该最高级的父分区P1所有关键路径,不存在一个关键路径为input-path的前缀路径,则返回P1,将P1作为待查询文件所归属的分区;
若该父分区P1中存在一个关键路径为input-path的前缀路径,则根据该关键路径的对应的分区指针,确定该父分区P1的一个子分区,如P2,将该子分区P2作为父分区,继续在分区的索引信息表中,遍历该父分区P2中的索引关键路径,判断父分区P2中的所有关键路径中是否有一个关键路径为input-path的前缀路径;
若遍历该父分区P2所有关键路径,不存在一个关键路径为input-path的前缀路径,则返回P2,将P2作为待查询文件所归属的分区;
若该父分区P2中存在一个关键路径为input-path的前缀路径,则根据该关键路径的对应的分区指针,确定该父分区P2的一个子分区,如P3,判断在分区的索引信息表中是否存在以分区P3作为父分区时的对应关系,若没有,说明该分区P3不存在子分区,则将该子分区P3作为待查询文件所归属的分区;
否则,继续遍历分区P3的所有关键路径,直至确定一个分区Pn的所有关键路径均不存在一个关键路径为input-path的前缀路径,或一个分区Pn不存在子分区时,将该子分区Pn作为待查询文件所归属的分区。
例1,仍以图2中的对目录树进行分区为例,以对应的分区的索引信息表为表3所示,若输入路径input-path=“/a1/b2/c3”,则从表3中的第一行开始遍历该分区的索引信息表:从父分区P1的第一个关键路径开始依次判断,确定关键路径“/a1”是input-path“/a1/b2/c3”的前缀路径,通过关键路径“/a1”对应的分区指针P2,确定下一个父分区P2;继续从父分区P2第一个关键路径开始判断,直到遍历完其所有关键路径,未发现有一个关键路径是input-path的前缀路径,则返回父分区P2,将分区P2作为待查询文件所归属的分区。
例2,继续图2中的对目录树进行分区为例,以对应的分区的索引信息表为表3所示,若输入路径input-path=“/a2/b5/c5/d3”,则从表3中的第一行开始遍历该分区的索引信息表:从父分区P1的第一个关键路径开始依次判断,确定关键路径“/a2/b5/c5”是input-path“/a2/b5/c5/d3”的前缀路径,通过关键路径“/a2/b5/c5”对应的分区指针P5,确定下一个父分区P5,然而在表3中不存在父分区P5,则返回分区P5,将分区P5作为待查询文件所归属的分区。
基于以上实施例,本发明还提供了一种确定文件所在分区的装置,参阅图5所示,该装置包括:
获取单元501,用于获取待查询文件的路径;
第一处理单元502,用于根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应该任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
第二处理单元503,用于根据待查询文件的路径在该分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径;
确定单元504,用于在该一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
运行单元505,用于将确定的子分区确定为待查询文件所归属的分区。
第一处理单元502在获得本地所有文件的目录树的分区时,具体用于:
针对本地保存的所有文件构造目录树;
将目录树进行分区,生成多个分区,多个分区包括多个父分区以及与每个父分区对应的不同子分区。
第二处理单元503在根据待查询文件的路径在分区的索引信息表中遍历时,具体用于:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对该分区的索引信息表进行遍历。
确定单元504,具体用于:
该分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与该任意一个关键路径相同的字典序最小的绝对路径的子分区;
在该分区的索引信息表中确定第一目标关键路径对应的分区指针,根据确定的分区指针,在一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
运行单元505,具体用于:
将确定的子分区作为一个父分区,在分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为待查询文件的路径的前缀路径时,将确定的子分区确定为待查询文件所归属的分区。
运行单元505,还用于:
若索引到的至少一个关键路径中存在一个关键路径为待查询文件的路径的前缀路径时,返回在该一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作。
基于以上实施例,本发明还提供了一种终端设备600,例如,计算机等,参阅图6,该设备包括:收发器601、处理器602、总线603以及存储器604,其中:
收发器601和处理器602通过总线603相互连接;总线603可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器601用于获取待查询文件的路径。
处理器602用于实现本发明实施例图3所示的确定文件按所在分区的方法,包括:
获取待查询文件的路径;
根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应该任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
根据待查询文件的路径在该分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径;
在该一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
将确定的子分区确定为该待查询文件所归属的分区。
该终端设备600还包括存储器604,用于存放程序,以及构建的分区的索引信息表。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器604可能包含随机存取存储器(random access memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器602执行存储器604所存放的应用程序,实现如上确定文件按所在分区的方法。
综上所述,通过本发明实施例中提供的一种确定文件所在分区的方法及装置,该方法通过获取待查询文件的路径,并根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应该任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;根据待查询文件的路径在分区的索引信息表中遍历,确定该分区的索引信息表中一个父分区对应的一个关键路径为该待查询文件的路径的前缀路径时,将确定的该关键路径作为第一目标关键路径;在一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;将确定的子分区确定为待查询文件所归属的分区。这样,可以在规模较大的文件存储系统中找到待查询文件所在的分区,且分区的索引信息表中的数据项数与父分区的数量相同,相对于现有技术中的路径分区映射表,极大的节省了存储空间,同时提高了文件检索性能,以及路径分区映射表的查询更新效率。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种确定文件所在分区的方法,其特征在于,包括:
获取待查询文件的路径;
根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应所述任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
根据待查询文件的路径在所述分区的索引信息表中遍历,确定所述分区的索引信息表中一个父分区对应的一个关键路径为所述待查询文件的路径的前缀路径时,将确定的所述关键路径作为第一目标关键路径;
在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
将确定的子分区确定为所述待查询文件所归属的分区。
2.如权利要求1所述的方法,其特征在于,获得本地所有文件的目录树的分区,包括:
针对本地保存的所有文件构造目录树;
将所述目录树进行分区,生成多个分区,所述多个分区包括多个父分区以及与每个父分区对应的不同子分区。
3.如权利要求1或2所述的方法,其特征在于,根据待查询文件的路径在分区的索引信息表中遍历,包括:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对所述分区的索引信息表进行遍历。
4.如权利要求1所述的方法,其特征在于,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区,包括:
所述分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与所述任意一个关键路径相同的字典序最小的绝对路径的子分区;
在所述分区的索引信息表中确定所述第一目标关键路径对应的分区指针,根据确定的所述分区指针,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
5.如权利要求1,2,4中任一项所述的方法,其特征在于,将确定的子分区确定为所述待查询文件所归属的分区,包括:
将确定的子分区作为一个父分区,在所述分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为所述待查询文件的路径的前缀路径时,将确定的子分区确定为所述待查询文件所归属的分区。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
若索引到的至少一个关键路径中存在一个关键路径为所述待查询文件的路径的前缀路径时,返回在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作。
7.一种确定文件所在分区的装置,其特征在于,包括:
获取单元,用于获取待查询文件的路径;
第一处理单元,用于根据本地所有文件的目录树的分区,构建分区的索引信息表,其中,分区的索引信息表中保存有每个父分区以及每个父分区对应的至少一个关键路径的对应关系,任意一个父分区的一个关键路径为任意一个父分区的一个子分区中字典序最小的绝对路径,任意一个父分区的一个子分区对应所述任意一个父分区中的一个文件,且该文件中包含对应于该文件的子分区中的所有文件;
第二处理单元,用于根据待查询文件的路径在所述分区的索引信息表中遍历,确定所述分区的索引信息表中一个父分区对应的一个关键路径为所述待查询文件的路径的前缀路径时,将确定的所述关键路径作为第一目标关键路径;
确定单元,用于在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区;
运行单元,用于将确定的子分区确定为所述待查询文件所归属的分区。
8.如权利要求7所述的装置,其特征在于,所述第一处理单元在获得本地所有文件的目录树的分区时,具体用于:
针对本地保存的所有文件构造目录树;
将所述目录树进行分区,生成多个分区,所述多个分区包括多个父分区以及与每个父分区对应的不同子分区。
9.如权利要求7或8所述的装置,其特征在于,所述第二处理单元在根据待查询文件的路径在分区的索引信息表中遍历时,具体用于:
按照每个父分区分别对应的子分区的字典序最小的绝对路径中的字典序从小到大的顺序,对所述分区的索引信息表进行遍历。
10.如权利要求7所述的装置,其特征在于,所述确定单元,具体用于:
所述分区的索引信息表中每个父分区对应的任意一个关键路径对应一个分区指针,该分区指针指示与具有与所述任意一个关键路径相同的字典序最小的绝对路径的子分区;
在所述分区的索引信息表中确定所述第一目标关键路径对应的分区指针,根据确定的所述分区指针,在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区。
11.如权利要求7,8,10中任一项所述的装置,其特征在于,所述运行单元,具体用于:
将确定的子分区作为一个父分区,在所述分区的索引信息表中索引与该父分区对应的至少一个关键路径;
若索引到的至少一个关键路径中的每个关键路径均不为所述待查询文件的路径的前缀路径时,将确定的子分区确定为所述待查询文件所归属的分区。
12.如权利要求11所述的装置,其特征在于,所述运行单元,还用于:
若索引到的至少一个关键路径中存在一个关键路径为所述待查询文件的路径的前缀路径时,返回在所述一个父分区的各个子分区中,确定具有与确定的第一目标关键路径相同的字典序最小的绝对路径的子分区的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410795852.4A CN104537016B (zh) | 2014-12-18 | 2014-12-18 | 一种确定文件所在分区的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410795852.4A CN104537016B (zh) | 2014-12-18 | 2014-12-18 | 一种确定文件所在分区的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104537016A CN104537016A (zh) | 2015-04-22 |
CN104537016B true CN104537016B (zh) | 2018-11-20 |
Family
ID=52852544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410795852.4A Active CN104537016B (zh) | 2014-12-18 | 2014-12-18 | 一种确定文件所在分区的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104537016B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335463B (zh) * | 2015-09-23 | 2018-09-25 | 广州市中崎商业机器股份有限公司 | 一种用于收款机的数据存储方法和快速读取方法 |
CN110709824B (zh) * | 2018-02-05 | 2022-01-14 | 华为技术有限公司 | 一种数据查询方法及装置 |
CN110427341A (zh) * | 2019-06-11 | 2019-11-08 | 福建奇点时空数字科技有限公司 | 一种基于路径排序的知识图谱实体关系挖掘方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1211610A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
CN101339570A (zh) * | 2008-08-12 | 2009-01-07 | 北京航空航天大学 | 一种高效的海量遥感数据分布式组织管理方法 |
CN101937377A (zh) * | 2009-06-29 | 2011-01-05 | 百度在线网络技术(北京)有限公司 | 数据恢复方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7287033B2 (en) * | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
-
2014
- 2014-12-18 CN CN201410795852.4A patent/CN104537016B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1211610A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
CN101339570A (zh) * | 2008-08-12 | 2009-01-07 | 北京航空航天大学 | 一种高效的海量遥感数据分布式组织管理方法 |
CN101937377A (zh) * | 2009-06-29 | 2011-01-05 | 百度在线网络技术(北京)有限公司 | 数据恢复方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104537016A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
Dayan et al. | Monkey: Optimal navigable key-value store | |
JP4669067B2 (ja) | 動的フラグメントマッピング | |
JP5342958B2 (ja) | 圧縮データの構造を問い合わせる方法 | |
CN110291518A (zh) | 合并树无用单元指标 | |
CN109255055B (zh) | 一种基于分组关联表的图数据存取方法和装置 | |
CN110383261A (zh) | 用于多流存储装置的流选择 | |
CN104281701B (zh) | 分布式多尺度空间数据查询方法及系统 | |
CN110268394A (zh) | Kvs树 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
CN110268399A (zh) | 用于维护操作的合并树修改 | |
EP2199935A2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
CN108897761A (zh) | 一种聚簇存储方法及装置 | |
EP3217296A1 (en) | Data query method and apparatus | |
CN103902702A (zh) | 一种数据存储系统和存储方法 | |
CN104537016B (zh) | 一种确定文件所在分区的方法及装置 | |
CN113468080B (zh) | 一种全闪元数据的缓存方法、系统及相关装置 | |
CN104598652B (zh) | 一种数据库查询方法及装置 | |
CN107807793B (zh) | 分布式计算机存储系统中数据副本异构存储与访问方法 | |
CN111858607A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN106503260A (zh) | 一种提高数据库的有效存储空间的方法和装置 | |
CN109684418A (zh) | 基于电网图数据库的数据存储方法及装置 | |
CN109597807A (zh) | 数仓表处理方法和装置 | |
CN112527824B (zh) | 分页查询方法、装置、电子设备和计算机可读存储介质 | |
CN104537017B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |